diff options
author | Henrik Rentz-Reichert | 2013-11-11 10:24:17 +0000 |
---|---|---|
committer | Henrik Rentz-Reichert | 2013-11-11 10:45:17 +0000 |
commit | 84019328ba4574f6202de4282adc76a446aa85e2 (patch) | |
tree | 5877d6cfdbd420b39897cbd59cf91fd64f7fd62d /plugins/org.eclipse.etrice.generator.java.mvn/src | |
parent | df2dd35d34db44a530a4c651ac7d3c288c2cc23f (diff) | |
download | org.eclipse.etrice-84019328ba4574f6202de4282adc76a446aa85e2.tar.gz org.eclipse.etrice-84019328ba4574f6202de4282adc76a446aa85e2.tar.xz org.eclipse.etrice-84019328ba4574f6202de4282adc76a446aa85e2.zip |
[generator.java.mvn] Bug 421434: create a Maven Mojo that wraps the Java generator
https://bugs.eclipse.org/421434
Diffstat (limited to 'plugins/org.eclipse.etrice.generator.java.mvn/src')
6 files changed, 192 insertions, 0 deletions
diff --git a/plugins/org.eclipse.etrice.generator.java.mvn/src/main/java/org/eclipse/etrice/generator/java/mvn/JavaGeneratorWrapper.java b/plugins/org.eclipse.etrice.generator.java.mvn/src/main/java/org/eclipse/etrice/generator/java/mvn/JavaGeneratorWrapper.java new file mode 100644 index 000000000..831cdaafc --- /dev/null +++ b/plugins/org.eclipse.etrice.generator.java.mvn/src/main/java/org/eclipse/etrice/generator/java/mvn/JavaGeneratorWrapper.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * Copyright (c) 2013 protos software gmbh (http://www.protos.de). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * CONTRIBUTORS: + * Henrik Rentz-Reichert (initial contribution) + * + *******************************************************************************/ + +package org.eclipse.etrice.generator.java.mvn; + +import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.MojoFailureException; +import org.apache.maven.plugins.annotations.LifecyclePhase; +import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; +import org.eclipse.etrice.generator.base.ILineOutput; +import org.eclipse.etrice.generator.java.Main; + +/** + * @author Henrik Rentz-Reichert + * + * + */ +@Mojo(name = "eTriceJavaGenerator", defaultPhase = LifecyclePhase.GENERATE_SOURCES) +public class JavaGeneratorWrapper extends AbstractMojo { + + class GeneratorOutput implements ILineOutput { + + /* (non-Javadoc) + * @see org.eclipse.etrice.generator.base.ILineOutput#println(java.lang.String) + */ + @Override + public void println(String txt) { + getLog().info(txt); + } + + } + /** + * + */ + @Parameter(required=true) + String[] arguments; + + /** + * + */ + public JavaGeneratorWrapper() { + } + + /* (non-Javadoc) + * @see org.apache.maven.plugin.Mojo#execute() + */ + @Override + public void execute() throws MojoExecutionException, MojoFailureException { + Main.setOutput(new GeneratorOutput()); + Main.main(arguments); + } + +} diff --git a/plugins/org.eclipse.etrice.generator.java.mvn/src/test/java/org/eclipse/etrice/generator/java/mvn/JavaGeneratorWrapperTest.java b/plugins/org.eclipse.etrice.generator.java.mvn/src/test/java/org/eclipse/etrice/generator/java/mvn/JavaGeneratorWrapperTest.java new file mode 100644 index 000000000..0f41bddbf --- /dev/null +++ b/plugins/org.eclipse.etrice.generator.java.mvn/src/test/java/org/eclipse/etrice/generator/java/mvn/JavaGeneratorWrapperTest.java @@ -0,0 +1,47 @@ +/******************************************************************************* + * Copyright (c) 2013 protos software gmbh (http://www.protos.de). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * CONTRIBUTORS: + * Henrik Rentz-Reichert (initial contribution) + * + *******************************************************************************/ + +package org.eclipse.etrice.generator.java.mvn; + +import java.io.File; + +import org.apache.maven.plugin.testing.AbstractMojoTestCase; + +/** + * @author Henrik Rentz-Reichert + * + */ +public class JavaGeneratorWrapperTest extends AbstractMojoTestCase { + + + /** + * @throws Exception + * + */ + public void testGenerator() throws Exception { + File pom = getTestFile("src/test/resources/unit/project-to-test/pom.xml"); + assertNotNull(pom); + assertTrue(pom.exists()); + + JavaGeneratorWrapper gen = (JavaGeneratorWrapper) lookupMojo("eTriceJavaGenerator", pom); + assertNotNull(gen); + + System.out.print("arguments: "); + for (String arg : gen.arguments) { + System.out.print(arg+" "); + } + System.out.println(""); + + gen.execute(); + } + +} diff --git a/plugins/org.eclipse.etrice.generator.java.mvn/src/test/resources/unit/project-to-test/model/MojoTest.etmap b/plugins/org.eclipse.etrice.generator.java.mvn/src/test/resources/unit/project-to-test/model/MojoTest.etmap new file mode 100644 index 000000000..bdce99ede --- /dev/null +++ b/plugins/org.eclipse.etrice.generator.java.mvn/src/test/resources/unit/project-to-test/model/MojoTest.etmap @@ -0,0 +1,9 @@ +MappingModel MojoTest { + import MojoTest.* from "MojoTest.room" + import MojoTest.* from "MojoTest.etphys" + Mapping LogSys1 -> PhysSys1 { + SubSystemMapping subSysRef1 -> nodeRef1 { + ThreadMapping defaultThread -> PhysicalThread1 + } + } +} diff --git a/plugins/org.eclipse.etrice.generator.java.mvn/src/test/resources/unit/project-to-test/model/MojoTest.etphys b/plugins/org.eclipse.etrice.generator.java.mvn/src/test/resources/unit/project-to-test/model/MojoTest.etphys new file mode 100644 index 000000000..37c9b12f8 --- /dev/null +++ b/plugins/org.eclipse.etrice.generator.java.mvn/src/test/resources/unit/project-to-test/model/MojoTest.etphys @@ -0,0 +1,25 @@ +PhysicalModel MojoTest { + + PhysicalSystem PhysSys1 { + NodeRef nodeRef1 : NodeClass1 + } + + NodeClass NodeClass1 { + runtime = RuntimeClass1 + priomin = -10 + priomax = 10 + + DefaultThread PhysicalThread1 { + execmode = mixed + interval = 100ms + prio = 0 + stacksize = 1024 + msgblocksize = 32 + msgpoolsize = 10 + } + } + + RuntimeClass RuntimeClass1 { + model = multiThreaded + } +} diff --git a/plugins/org.eclipse.etrice.generator.java.mvn/src/test/resources/unit/project-to-test/model/MojoTest.room b/plugins/org.eclipse.etrice.generator.java.mvn/src/test/resources/unit/project-to-test/model/MojoTest.room new file mode 100644 index 000000000..84ac99048 --- /dev/null +++ b/plugins/org.eclipse.etrice.generator.java.mvn/src/test/resources/unit/project-to-test/model/MojoTest.room @@ -0,0 +1,11 @@ +RoomModel MojoTest { + LogicalSystem LogSys1 { + SubSystemRef subSysRef1:SubSysClass1 + } + SubSystemClass SubSysClass1 { + ActorRef actorRef1:ActorClass1 + LogicalThread defaultThread + } + ActorClass ActorClass1 { + } +} diff --git a/plugins/org.eclipse.etrice.generator.java.mvn/src/test/resources/unit/project-to-test/pom.xml b/plugins/org.eclipse.etrice.generator.java.mvn/src/test/resources/unit/project-to-test/pom.xml new file mode 100644 index 000000000..d642846b9 --- /dev/null +++ b/plugins/org.eclipse.etrice.generator.java.mvn/src/test/resources/unit/project-to-test/pom.xml @@ -0,0 +1,36 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>org.apache.maven.plugin.my.unit</groupId> + <artifactId>project-to-test</artifactId> + <version>1.0-SNAPSHOT</version> + <packaging>jar</packaging> + <name>Test MyMojo</name> + + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>org.eclipse.etrice.generator.java.mvn</artifactId> + <configuration> + <!-- Specify the MyMojo parameter --> + <arguments> + <param>-msc_instr</param> + <param>src/test/resources/unit/project-to-test/model/MojoTest.etmap</param> + </arguments> + </configuration> + </plugin> + </plugins> + </build> +</project>
\ No newline at end of file |