Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Rentz-Reichert2013-11-11 10:24:17 +0000
committerHenrik Rentz-Reichert2013-11-11 10:45:17 +0000
commit84019328ba4574f6202de4282adc76a446aa85e2 (patch)
tree5877d6cfdbd420b39897cbd59cf91fd64f7fd62d /plugins/org.eclipse.etrice.generator.java.mvn/src
parentdf2dd35d34db44a530a4c651ac7d3c288c2cc23f (diff)
downloadorg.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')
-rw-r--r--plugins/org.eclipse.etrice.generator.java.mvn/src/main/java/org/eclipse/etrice/generator/java/mvn/JavaGeneratorWrapper.java64
-rw-r--r--plugins/org.eclipse.etrice.generator.java.mvn/src/test/java/org/eclipse/etrice/generator/java/mvn/JavaGeneratorWrapperTest.java47
-rw-r--r--plugins/org.eclipse.etrice.generator.java.mvn/src/test/resources/unit/project-to-test/model/MojoTest.etmap9
-rw-r--r--plugins/org.eclipse.etrice.generator.java.mvn/src/test/resources/unit/project-to-test/model/MojoTest.etphys25
-rw-r--r--plugins/org.eclipse.etrice.generator.java.mvn/src/test/resources/unit/project-to-test/model/MojoTest.room11
-rw-r--r--plugins/org.eclipse.etrice.generator.java.mvn/src/test/resources/unit/project-to-test/pom.xml36
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

Back to the top