Author: mattes3 Date: 2007-03-17 18:27:39 +0100 (Sat, 17 Mar 2007) New Revision: 365 Added: andromda4/trunk/framework/transformers/mofscript/pom.xml Modified: andromda4/trunk/framework/transformers/atl/src/main/java/org/andromda/transformers/atl/AtlTransformer.java andromda4/trunk/framework/transformers/mofscript-compiler/pom.xml andromda4/trunk/framework/transformers/mofscript-compiler/src/main/java/org/andromda/transformers/mofscript/MofScriptCompilerMojo.java andromda4/trunk/framework/transformers/mofscript-compiler/src/test/java/org/andromda/transformers/mofscript/MofScriptCompilerMojoTest.java andromda4/trunk/framework/transformers/pom.xml andromda4/trunk/framework/transformers/trafo-registry/src/main/java/org/andromda/transformers/traforegistry/ITransformationRegistry.java andromda4/trunk/framework/transformers/trafo-registry/src/main/java/org/andromda/transformers/traforegistry/internal/TransformationRegistryImpl.java Log: Making it work for the first time from model to code! Modified: andromda4/trunk/framework/transformers/atl/src/main/java/org/andromda/transformers/atl/AtlTransformer.java =================================================================== --- andromda4/trunk/framework/transformers/atl/src/main/java/org/andromda/transformers/atl/AtlTransformer.java 2007-03-17 17:26:02 UTC (rev 364) +++ andromda4/trunk/framework/transformers/atl/src/main/java/org/andromda/transformers/atl/AtlTransformer.java 2007-03-17 17:27:39 UTC (rev 365) @@ -61,7 +61,7 @@ setupModelMap(modelMap, inputModels, false); setupModelMap(modelMap, outputModels, true); - ModelTransformationDefinition modelTransformationDefinition = TransformationRegistry.instance().lookupTransformation( + ModelTransformationDefinition modelTransformationDefinition = TransformationRegistry.instance().lookupModelTransformation( description.getName()); List<String> helperScriptNames = modelTransformationDefinition.getHelperScriptNames(); @@ -86,7 +86,7 @@ for (String helperScriptName : helperScriptNames) { ModelTransformationHelperDefinition modelTransformationHelperDefinition = TransformationRegistry.instance() - .lookupTransformationHelper(helperScriptName); + .lookupModelTransformationHelper(helperScriptName); URL classpathURL = ResourceFinder.normalizeURL(modelTransformationHelperDefinition.getScriptURL()); libraryMap.put(helperScriptName, classpathURL); } Added: andromda4/trunk/framework/transformers/mofscript/pom.xml =================================================================== --- andromda4/trunk/framework/transformers/mofscript/pom.xml (rev 0) +++ andromda4/trunk/framework/transformers/mofscript/pom.xml 2007-03-17 17:27:39 UTC (rev 365) @@ -0,0 +1,91 @@ +<?xml version="1.0"?> +<project> + <parent> + <artifactId>andromda-transformers</artifactId> + <groupId>org.andromda.transformers</groupId> + <version>4.0-M1-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <groupId>org.andromda.transformers</groupId> + <artifactId>andromda-transformers-mofscript</artifactId> + <name>AndroMDA transformer plugin for MOFScript</name> + <description>This is a plugin that adapts the MOFScript transformation engine to AndroMDA.</description> + <build> + <resources> + <resource> + <filtering>true</filtering> + <directory>src/main/java</directory> + <includes> + <include>**/*</include> + </includes> + </resource> + <resource> + <filtering>true</filtering> + <directory>src/main/resources</directory> + <includes> + <include>META-INF/**/*</include> + <include>**/*.groovy</include> + </includes> + </resource> + </resources> + <testResources> + <testResource> + <directory>src/test/resources</directory> + </testResource> + <testResource> + <filtering>true</filtering> + <directory>src/test/java</directory> + <includes> + <include>**/*.xml</include> + </includes> + </testResource> + </testResources> + <plugins> + <plugin> + <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <source>1.5</source> + <target>1.5</target> + <debug>true</debug> + </configuration> + </plugin> + </plugins> + </build> + <dependencies> + <dependency> + <groupId>org.andromda.metadata</groupId> + <artifactId>andromda-metadata-emf-xmireader</artifactId> + <version>4.0-M1-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.andromda.cartridges</groupId> + <artifactId>andromda-enterpriseapp-cartridge</artifactId> + <version>4.0-M1-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.andromda.technology</groupId> + <artifactId>andromda-extension-registry</artifactId> + <version>4.0-M1-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.andromda.metadata</groupId> + <artifactId>andromda-metadata-emf-repository</artifactId> + <version>4.0-M1-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.andromda.modelmanagement</groupId> + <artifactId>andromda-model-registry</artifactId> + <version>4.0-M1-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.sintef.mofscript</groupId> + <artifactId>mofscript-parser</artifactId> + <version>1.1.11-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.andromda.utils</groupId> + <artifactId>andromda-utils</artifactId> + <version>4.0-M1-SNAPSHOT</version> + </dependency> + </dependencies> +</project> \ No newline at end of file Modified: andromda4/trunk/framework/transformers/mofscript-compiler/pom.xml =================================================================== --- andromda4/trunk/framework/transformers/mofscript-compiler/pom.xml 2007-03-17 17:26:02 UTC (rev 364) +++ andromda4/trunk/framework/transformers/mofscript-compiler/pom.xml 2007-03-17 17:27:39 UTC (rev 365) @@ -43,6 +43,11 @@ <version>2.0.4</version> </dependency> <dependency> + <groupId>org.andromda.utils</groupId> + <artifactId>andromda-utils</artifactId> + <version>4.0-M1-SNAPSHOT</version> + </dependency> + <dependency> <groupId>org.sintef.mofscript</groupId> <artifactId>mofscript-parser</artifactId> <version>1.1.11-SNAPSHOT</version> Modified: andromda4/trunk/framework/transformers/mofscript-compiler/src/main/java/org/andromda/transformers/mofscript/MofScriptCompilerMojo.java =================================================================== --- andromda4/trunk/framework/transformers/mofscript-compiler/src/main/java/org/andromda/transformers/mofscript/MofScriptCompilerMojo.java 2007-03-17 17:26:02 UTC (rev 364) +++ andromda4/trunk/framework/transformers/mofscript-compiler/src/main/java/org/andromda/transformers/mofscript/MofScriptCompilerMojo.java 2007-03-17 17:27:39 UTC (rev 365) @@ -7,6 +7,7 @@ import java.util.Collections; import java.util.Iterator; +import org.andromda.utils.ResourceFinder; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; @@ -25,7 +26,7 @@ * Mojo which invokes the MOFScript compiler. * * @goal compile - * @phase compile + * @phase generate-sources * @description MOFScript compiler plugin * @author Matthias Bohlen */ @@ -43,8 +44,11 @@ * The place where the input metamodels of the transformation can be found * so that the MOFScript compiler can check the script against these * metamodels. + * + * @parameter expression="${andromda.mofscriptcompiler.metamodelURL}" + * @required */ - private URL metamodelURL; + private String metamodelURL; /** * The file name of the compiled *.model.mofscript file. @@ -62,6 +66,7 @@ public void execute() throws MojoExecutionException, MojoFailureException { getLog().info("inputFileURL=" + inputFileURL); + getLog().info("metamodelURL=" + metamodelURL); getLog().info("outputFileName=" + outputFileName); loadMetamodels(); @@ -91,7 +96,7 @@ { ResourceSet rSet = new ResourceSetImpl(); rSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); - Resource metamodel = rSet.getResource(URI.createURI(metamodelURL.toString()), true); + Resource metamodel = rSet.getResource(URI.createURI(ResourceFinder.normalizeURL(metamodelURL).toString()), true); EPackage topLevelPackage = (EPackage)metamodel.getContents().get(0); EPackage.Registry.INSTANCE.put(topLevelPackage.getNsURI(), topLevelPackage); } @@ -177,12 +182,12 @@ this.outputFileName = outputFileName; } - public URL getMetamodelURL() + public String getMetamodelURL() { return metamodelURL; } - public void setMetamodelURL(URL metamodelURL) + public void setMetamodelURL(String metamodelURL) { this.metamodelURL = metamodelURL; } Modified: andromda4/trunk/framework/transformers/mofscript-compiler/src/test/java/org/andromda/transformers/mofscript/MofScriptCompilerMojoTest.java =================================================================== --- andromda4/trunk/framework/transformers/mofscript-compiler/src/test/java/org/andromda/transformers/mofscript/MofScriptCompilerMojoTest.java 2007-03-17 17:26:02 UTC (rev 364) +++ andromda4/trunk/framework/transformers/mofscript-compiler/src/test/java/org/andromda/transformers/mofscript/MofScriptCompilerMojoTest.java 2007-03-17 17:27:39 UTC (rev 365) @@ -12,7 +12,7 @@ final String OUTPUT_FILE_NAME = "target/test-classes/Something2Java.model.mofscript"; MofScriptCompilerMojo mojo = new MofScriptCompilerMojo(); mojo.setInputFileURL(MofScriptCompilerMojoTest.class.getResource("Something2Java.m2test")); - mojo.setMetamodelURL(MofScriptCompilerMojoTest.class.getResource("SomeTestMetamodel.ecore")); + mojo.setMetamodelURL(MofScriptCompilerMojoTest.class.getResource("SomeTestMetamodel.ecore").toString()); mojo.setOutputFileName(OUTPUT_FILE_NAME); mojo.execute(); assertTrue("Output file must be there.", new File(OUTPUT_FILE_NAME).length() > 500); Modified: andromda4/trunk/framework/transformers/pom.xml =================================================================== --- andromda4/trunk/framework/transformers/pom.xml 2007-03-17 17:26:02 UTC (rev 364) +++ andromda4/trunk/framework/transformers/pom.xml 2007-03-17 17:27:39 UTC (rev 365) @@ -21,9 +21,10 @@ <build> </build> <modules> + <module>atlcompiler</module> <module>atl</module> - <module>atlcompiler</module> <module>mofscript-compiler</module> + <module>mofscript</module> <module>trafo-registry</module> </modules> <properties> Modified: andromda4/trunk/framework/transformers/trafo-registry/src/main/java/org/andromda/transformers/traforegistry/ITransformationRegistry.java =================================================================== --- andromda4/trunk/framework/transformers/trafo-registry/src/main/java/org/andromda/transformers/traforegistry/ITransformationRegistry.java 2007-03-17 17:26:02 UTC (rev 364) +++ andromda4/trunk/framework/transformers/trafo-registry/src/main/java/org/andromda/transformers/traforegistry/ITransformationRegistry.java 2007-03-17 17:27:39 UTC (rev 365) @@ -16,7 +16,7 @@ * name of the transformation * @return the transformation definition */ - public ModelTransformationDefinition lookupTransformation(String transformationName); + public ModelTransformationDefinition lookupModelTransformation(String transformationName); /** * Looks up a transformation helper in the registry. @@ -25,5 +25,12 @@ * name of the transformation helper * @return the transformation helper definition */ - public ModelTransformationHelperDefinition lookupTransformationHelper(String transformationHelperName); + public ModelTransformationHelperDefinition lookupModelTransformationHelper(String transformationHelperName); + + /** + * Looks up a model-to-text transformation in the registry. + * @param transformationName name of the model-to-text transformation + * @return the transformation definition + */ + public TextTransformationDefinition lookupTextTransformation(String transformationName); } Modified: andromda4/trunk/framework/transformers/trafo-registry/src/main/java/org/andromda/transformers/traforegistry/internal/TransformationRegistryImpl.java =================================================================== --- andromda4/trunk/framework/transformers/trafo-registry/src/main/java/org/andromda/transformers/traforegistry/internal/TransformationRegistryImpl.java 2007-03-17 17:26:02 UTC (rev 364) +++ andromda4/trunk/framework/transformers/trafo-registry/src/main/java/org/andromda/transformers/traforegistry/internal/TransformationRegistryImpl.java 2007-03-17 17:27:39 UTC (rev 365) @@ -9,6 +9,7 @@ import org.andromda.transformers.traforegistry.ITransformationRegistry; import org.andromda.transformers.traforegistry.ModelTransformationDefinition; import org.andromda.transformers.traforegistry.ModelTransformationHelperDefinition; +import org.andromda.transformers.traforegistry.TextTransformationDefinition; import org.andromda.transformers.traforegistry.TransformationRegistryException; /** @@ -28,23 +29,29 @@ } /** - * Map of registered transformations. + * Map of registered model-to-model transformations. */ - private Map<String, ModelTransformationDefinition> registeredTransformations = new HashMap<String, ModelTransformationDefinition>(); + private Map<String, ModelTransformationDefinition> registeredModelTransformations = new HashMap<String, ModelTransformationDefinition>(); /** - * Map of registered transformations. + * Map of registered model-to-text transformations. */ - private Map<String, ModelTransformationHelperDefinition> registeredTransformationHelpers = new HashMap<String, ModelTransformationHelperDefinition>(); + private Map<String, TextTransformationDefinition> registeredTextTransformations = new HashMap<String, TextTransformationDefinition>(); + /** + * Map of registered model-to-model transformation helpers. + */ + private Map<String, ModelTransformationHelperDefinition> registeredModelTransformationHelpers = new HashMap<String, ModelTransformationHelperDefinition>(); + /* * (non-Javadoc) * * @see org.andromda.transformers.traforegistry.ITransformationRegistry#lookupTransformation(java.lang.String) */ - public ModelTransformationDefinition lookupTransformation(String transformationName) + public ModelTransformationDefinition lookupModelTransformation(String transformationName) { - ModelTransformationDefinition modelTransformationDefinition = this.registeredTransformations.get(transformationName); + ModelTransformationDefinition modelTransformationDefinition = this.registeredModelTransformations + .get(transformationName); if (modelTransformationDefinition == null) { throw new TransformationRegistryException("transformation '" + transformationName @@ -58,9 +65,9 @@ * * @see org.andromda.transformers.traforegistry.ITransformationRegistry#lookupTransformationHelper(java.lang.String) */ - public ModelTransformationHelperDefinition lookupTransformationHelper(String transformationHelperName) + public ModelTransformationHelperDefinition lookupModelTransformationHelper(String transformationHelperName) { - ModelTransformationHelperDefinition modelTransformationHelperDefinition = this.registeredTransformationHelpers + ModelTransformationHelperDefinition modelTransformationHelperDefinition = this.registeredModelTransformationHelpers .get(transformationHelperName); if (modelTransformationHelperDefinition == null) { @@ -73,7 +80,7 @@ /** * Add all transformations that have been contributed to this plugin. */ - private void addContributedTransformations() + private void addContributedModelTransformations() { IExtensionPoint extensionPoint = ExtensionRegistry.instance().getExtensionPoint( "org.andromda.transformers.traforegistry", "ModelTransformationDefinitions"); @@ -88,7 +95,8 @@ { Object implementation = ext.getImplementation(); ModelTransformationDefinition modelTransformationDefinition = (ModelTransformationDefinition) implementation; - this.registeredTransformations.put(modelTransformationDefinition.getName(), modelTransformationDefinition); + this.registeredModelTransformations.put(modelTransformationDefinition.getName(), + modelTransformationDefinition); } } @@ -97,15 +105,40 @@ */ private void init() { - this.addContributedTransformations(); - this.addContributedTransformationHelpers(); + this.addContributedModelTransformations(); + this.addContributedModelTransformationHelpers(); + this.addContributedTextTransformations(); } /** + * Add all the model-to-text transformations that have been contributed to + * this plugin. + */ + private void addContributedTextTransformations() + { + IExtensionPoint extensionPoint = ExtensionRegistry.instance().getExtensionPoint( + "org.andromda.transformers.traforegistry", "TextTransformationDefinitions"); + if (extensionPoint == null) + { + throw new TransformationRegistryException( + "Invalid plugin configuration! Cannot find my own extension point: TextTransformationDefinitions"); + } + + IExtension[] extensions = extensionPoint.getExtensions(); + for (IExtension ext : extensions) + { + Object implementation = ext.getImplementation(); + TextTransformationDefinition textTransformationDefinition = (TextTransformationDefinition) implementation; + this.registeredTextTransformations.put(textTransformationDefinition.getName(), + textTransformationDefinition); + } + } + + /** * Add all the transformation helpers that have been contributed to this * plugin. */ - private void addContributedTransformationHelpers() + private void addContributedModelTransformationHelpers() { IExtensionPoint extensionPoint = ExtensionRegistry.instance().getExtensionPoint( "org.andromda.transformers.traforegistry", "ModelTransformationHelperDefinitions"); @@ -120,9 +153,26 @@ { Object implementation = ext.getImplementation(); ModelTransformationHelperDefinition modelTransformationHelperDefinition = (ModelTransformationHelperDefinition) implementation; - this.registeredTransformationHelpers.put(modelTransformationHelperDefinition.getName(), + this.registeredModelTransformationHelpers.put(modelTransformationHelperDefinition.getName(), modelTransformationHelperDefinition); } } + /* + * (non-Javadoc) + * + * @see org.andromda.transformers.traforegistry.ITransformationRegistry#lookupTextTransformation(java.lang.String) + */ + public TextTransformationDefinition lookupTextTransformation(String transformationName) + { + TextTransformationDefinition textTransformationDefinition = this.registeredTextTransformations + .get(transformationName); + if (textTransformationDefinition == null) + { + throw new TransformationRegistryException("transformation '" + transformationName + + "' not found in transformation registry."); + } + return textTransformationDefinition; + } + } |