Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Rentz-Reichert2011-09-22 07:38:04 +0000
committerHenrik Rentz-Reichert2011-09-22 07:38:04 +0000
commit5913885d5381aa202862b5f6de669e3ae35fa2ed (patch)
treea4ebf41e62841e03c08fe93b4c5e5872dfe15cb8 /plugins
parent620e431a025ad21876c0164da7684e2df3ca819b (diff)
downloadorg.eclipse.etrice-5913885d5381aa202862b5f6de669e3ae35fa2ed.tar.gz
org.eclipse.etrice-5913885d5381aa202862b5f6de669e3ae35fa2ed.tar.xz
org.eclipse.etrice-5913885d5381aa202862b5f6de669e3ae35fa2ed.zip
[generator, generator.java, generator.launch] some re-factoring
- moved generic stuff to generator - new wizard simplified (simple Java project, no plug-in)
Diffstat (limited to 'plugins')
-rw-r--r--plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/RoomModelValidator.java2
-rw-r--r--plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/newwizard/ProjectCreator.java49
-rw-r--r--plugins/org.eclipse.etrice.generator.java/META-INF/MANIFEST.MF1
-rw-r--r--plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/Main.java26
-rw-r--r--plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/ActorClassGen.xtend2
-rw-r--r--plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/DataClassGen.xtend2
-rw-r--r--plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/InstanceDiagramGen.xtend2
-rw-r--r--plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/PrepareFileSystem.xtend2
-rw-r--r--plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/ProtocolClassGen.xtend2
-rw-r--r--plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/SubSystemClassGen.xtend2
-rw-r--r--plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/newwizard/EmptyProjectWizard.java16
-rw-r--r--plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/setup/GeneratorModule.java6
-rw-r--r--plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/ActorClassGen.java2
-rw-r--r--plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/DataClassGen.java2
-rw-r--r--plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/InstanceDiagramGen.java2
-rw-r--r--plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/PrepareFileSystem.java2
-rw-r--r--plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/ProtocolClassGen.java2
-rw-r--r--plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/SubSystemClassGen.java2
-rw-r--r--plugins/org.eclipse.etrice.generator.launch.java/META-INF/MANIFEST.MF6
-rw-r--r--plugins/org.eclipse.etrice.generator.launch.java/src/org/eclipse/etrice/generator/launch/java/JavaGeneratorLaunchConfigurationDelegate.java55
-rw-r--r--plugins/org.eclipse.etrice.generator.launch/META-INF/MANIFEST.MF4
-rw-r--r--plugins/org.eclipse.etrice.generator.launch/src/org/eclipse/etrice/generator/launch/GeneratorLaunchConfigurationDelegate.java173
-rw-r--r--plugins/org.eclipse.etrice.generator.launch/src/org/eclipse/etrice/generator/launch/GeneratorMainTab.java113
-rw-r--r--plugins/org.eclipse.etrice.generator/META-INF/MANIFEST.MF1
-rw-r--r--plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/Diagnostician.java (renamed from plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/setup/Diagnostician.java)2
-rw-r--r--plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/ILineOutput.java6
-rw-r--r--plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/ILineOutputLogger.java28
-rw-r--r--plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/ILogger.java (renamed from plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/builder/ILogger.java)16
-rw-r--r--plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/Logger.java54
-rw-r--r--plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/StdLineOutput.java (renamed from plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/setup/Logger.java)24
-rw-r--r--plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/builder/GeneratorModelBuilder.java1
-rw-r--r--plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/workflow/WorkflowDiagnostician.java2
-rw-r--r--plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/workflow/XtendStdlibLogger.java2
33 files changed, 272 insertions, 339 deletions
diff --git a/plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/RoomModelValidator.java b/plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/RoomModelValidator.java
index 98a7e7de9..9e1df1031 100644
--- a/plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/RoomModelValidator.java
+++ b/plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/RoomModelValidator.java
@@ -21,7 +21,7 @@ import org.eclipse.xtext.validation.Check;
import org.eclipse.xtext.validation.CheckMode;
import org.eclipse.etrice.core.room.RoomModel;
-import org.eclipse.etrice.generator.builder.ILogger;
+import org.eclipse.etrice.generator.base.ILogger;
import org.eclipse.etrice.generator.builder.GeneratorModelBuilder;
import org.eclipse.etrice.generator.etricegen.IDiagnostician;
diff --git a/plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/newwizard/ProjectCreator.java b/plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/newwizard/ProjectCreator.java
index eccdaca5a..01e42c0ef 100644
--- a/plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/newwizard/ProjectCreator.java
+++ b/plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/newwizard/ProjectCreator.java
@@ -52,31 +52,12 @@ public class ProjectCreator {
private static final String[] commonNatureIDs = {
JavaCore.NATURE_ID,
- "org.eclipse.xtend.shared.ui.xtendXPandNature",
- "org.eclipse.xtext.ui.shared.xtextNature",
- "org.eclipse.pde.PluginNature"
+ "org.eclipse.xtext.ui.shared.xtextNature"
};
private static final String[] commonBuilderIDs = {
- "org.eclipse.pde.ManifestBuilder",
- "org.eclipse.pde.SchemaBuilder",
"org.eclipse.xtext.ui.shared.xtextBuilder",
- "org.eclipse.xtend.shared.ui.xtendBuilder"
};
- private static final String[] commonRequiredBundles = {
- "org.eclipse.etrice.core.room;bundle-version=\"0.1.0\"",
- "org.eclipse.etrice.generator;bundle-version=\"0.1.0\"",
- "org.eclipse.emf.mwe2.launch;bundle-version=\"1.0.1\";resolution:=optional",
- "org.eclipse.emf.mwe.utils;bundle-version=\"1.0.0\";visibility:=reexport",
- "org.apache.log4j;bundle-version=\"1.2.15\"",
- "org.apache.commons.logging;bundle-version=\"1.0.4\"",
- "org.eclipse.jface.text;bundle-version=\"3.6.0\"",
- "org.eclipse.jdt.core;bundle-version=\"3.6.0\"",
- "org.eclipse.xtend.util.stdlib;bundle-version=\"1.0.0\"",
- "org.eclipse.core.runtime;bundle-version=\"3.6.0\"",
- "org.eclipse.xtext.generator;bundle-version=\"1.0.0\""
- };
-
public static List<String> getCommonNatureIDs() {
return Arrays.asList(commonNatureIDs);
}
@@ -196,8 +177,7 @@ public class ProjectCreator {
JavaRuntime.JRELIB_VARIABLE), new Path(
JavaRuntime.JRESRC_VARIABLE), new Path(
JavaRuntime.JRESRCROOT_VARIABLE));
- for (Iterator<IClasspathEntry> i = classpathEntries
- .iterator(); i.hasNext();) {
+ for (Iterator<IClasspathEntry> i = classpathEntries.iterator(); i.hasNext();) {
IClasspathEntry classpathEntry = i.next();
if (classpathEntry.getPath().isPrefixOf(
jreClasspathEntry.getPath())) {
@@ -221,24 +201,6 @@ public class ProjectCreator {
new Path("/" + javaSource.segment(0) + "/bin"),
new SubProgressMonitor(progressMonitor, 1));
}
-
- classpathEntries.add(JavaCore.newContainerEntry(new Path("org.eclipse.pde.core.requiredPlugins")));
-
- // Remove variables since the plugin.xml should provide the complete path information.
- //
- /*
- * hrr: this would remove the runtime project which we need of course
- for (Iterator<IClasspathEntry> i = classpathEntries.iterator(); i.hasNext(); )
- {
- IClasspathEntry classpathEntry = i.next();
- if (classpathEntry.getEntryKind() == IClasspathEntry.CPE_VARIABLE &&
- !JavaRuntime.JRELIB_VARIABLE.equals(classpathEntry.getPath().toString()) ||
- classpathEntry.getEntryKind() == IClasspathEntry.CPE_PROJECT)
- {
- i.remove();
- }
- }
- */
javaProject.setRawClasspath
(classpathEntries.toArray(new IClasspathEntry[classpathEntries.size()]),
@@ -476,10 +438,6 @@ public class ProjectCreator {
}
}
- public static List<String> getCommonRequiredBundles() {
- return Arrays.asList(commonRequiredBundles);
- }
-
public static void createModel(URI uri, String baseName) {
try {
PrintStream model = new PrintStream(
@@ -505,8 +463,6 @@ public class ProjectCreator {
"UTF-8");
prop.println("source.. = src/,\\");
prop.println("src-gen/");
- prop.println("bin.includes = META-INF/,\\");
- prop.println(" .");
prop.close();
} catch (UnsupportedEncodingException e) {
Logger.getLogger(ProjectCreator.class).error(e.getMessage(), e);
@@ -529,7 +485,6 @@ public class ProjectCreator {
launch.println("<listAttribute key=\"org.eclipse.debug.ui.favoriteGroups\">");
launch.println("<listEntry value=\"org.eclipse.debug.ui.launchGroup.run\"/>");
launch.println("</listAttribute>");
- launch.println("<stringAttribute key=\"org.eclipse.jdt.launching.PROJECT_ATTR\" value=\""+baseName+"\"/>");
for (String line : addLines) {
launch.println(line);
}
diff --git a/plugins/org.eclipse.etrice.generator.java/META-INF/MANIFEST.MF b/plugins/org.eclipse.etrice.generator.java/META-INF/MANIFEST.MF
index 680c141b8..5a2c6f4d6 100644
--- a/plugins/org.eclipse.etrice.generator.java/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.etrice.generator.java/META-INF/MANIFEST.MF
@@ -16,3 +16,4 @@ Require-Bundle: org.eclipse.etrice.core.room.ui;bundle-version="0.1.0",
org.eclipse.xtend;bundle-version="1.1.0"
Import-Package: org.apache.log4j
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.etrice.generator.java
diff --git a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/Main.java b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/Main.java
index 0bfae6831..5e6bde046 100644
--- a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/Main.java
+++ b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/Main.java
@@ -23,8 +23,10 @@ import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.etrice.core.room.RoomModel;
+import org.eclipse.etrice.generator.base.ILineOutput;
+import org.eclipse.etrice.generator.base.ILineOutputLogger;
+import org.eclipse.etrice.generator.base.StdLineOutput;
import org.eclipse.etrice.generator.builder.GeneratorModelBuilder;
-import org.eclipse.etrice.generator.builder.ILogger;
import org.eclipse.etrice.generator.etricegen.IDiagnostician;
import org.eclipse.etrice.generator.etricegen.Root;
import org.eclipse.etrice.generator.java.gen.InstanceDiagramGen;
@@ -43,20 +45,27 @@ import com.google.inject.Provider;
public class Main {
+ private static ILineOutput output = new StdLineOutput();
+
+ public static void setOutput(ILineOutput out) {
+ if (out!=null)
+ output = out;
+ }
+
/**
* print usage message to stderr
*/
private static void printUsage() {
- System.err.println(Main.class.getName()+" [-saveGenModel <genmodel path>] [-genInstDiag] <list of model file paths>");
- System.err.println(" <list of model file paths> # model file paths may be specified as");
- System.err.println(" # e.g. C:\\path\\to\\model\\mymodel.room");
- System.err.println(" -saveGenModel <genmodel path> # if specified the generator model will be saved to this location");
- System.err.println(" -genInstDiag # if specified an instance diagram is created for each subsystem");
+ output.println(Main.class.getName()+" [-saveGenModel <genmodel path>] [-genInstDiag] <list of model file paths>");
+ output.println(" <list of model file paths> # model file paths may be specified as");
+ output.println(" # e.g. C:\\path\\to\\model\\mymodel.room");
+ output.println(" -saveGenModel <genmodel path> # if specified the generator model will be saved to this location");
+ output.println(" -genInstDiag # if specified an instance diagram is created for each subsystem");
}
public static void main(String[] args) {
if (args.length == 0) {
- System.err.println(Main.class.getName()+" - aborting: no arguments!");
+ output.println(Main.class.getName()+" - aborting: no arguments!");
printUsage();
return;
}
@@ -86,6 +95,7 @@ public class Main {
Injector injector = new StandaloneSetup().createInjectorAndDoEMFRegistration();
Main main = injector.getInstance(Main.class);
+ main.logger.setOutput(output);
main.runGenerator(uriList, genModelPath, genInstDiag, validator);
}
@@ -102,7 +112,7 @@ public class Main {
private Provider<ResourceSet> resourceSetProvider;
@Inject
- private ILogger logger;
+ private ILineOutputLogger logger;
@Inject
private IDiagnostician diagnostician;
diff --git a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/ActorClassGen.xtend b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/ActorClassGen.xtend
index f111a913d..d23fc9c7f 100644
--- a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/ActorClassGen.xtend
+++ b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/ActorClassGen.xtend
@@ -21,7 +21,7 @@ import static extension org.eclipse.xtext.xtend2.lib.*
import org.eclipse.etrice.core.room.*
import org.eclipse.etrice.generator.etricegen.*
-import org.eclipse.etrice.generator.java.setup.Logger
+import org.eclipse.etrice.generator.base.Logger
class ActorClassGen {
diff --git a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/DataClassGen.xtend b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/DataClassGen.xtend
index 6f391f87d..ef136f1e7 100644
--- a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/DataClassGen.xtend
+++ b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/DataClassGen.xtend
@@ -21,7 +21,7 @@ import static extension org.eclipse.xtext.xtend2.lib.*
import org.eclipse.etrice.core.room.*
import org.eclipse.etrice.generator.etricegen.*
-import org.eclipse.etrice.generator.java.setup.Logger
+import org.eclipse.etrice.generator.base.Logger
class DataClassGen {
diff --git a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/InstanceDiagramGen.xtend b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/InstanceDiagramGen.xtend
index 3ba0823d4..69fbc11b1 100644
--- a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/InstanceDiagramGen.xtend
+++ b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/InstanceDiagramGen.xtend
@@ -21,7 +21,7 @@ import static extension org.eclipse.xtext.xtend2.lib.*
import org.eclipse.etrice.core.room.*
import org.eclipse.etrice.generator.etricegen.*
-import org.eclipse.etrice.generator.java.setup.Logger
+import org.eclipse.etrice.generator.base.Logger
class InstanceDiagramGen {
diff --git a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/PrepareFileSystem.xtend b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/PrepareFileSystem.xtend
index 2f87d8476..7245801dc 100644
--- a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/PrepareFileSystem.xtend
+++ b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/PrepareFileSystem.xtend
@@ -24,7 +24,7 @@ import org.eclipse.emf.ecore.*
import org.eclipse.etrice.core.room.*
import org.eclipse.etrice.generator.etricegen.*
-import org.eclipse.etrice.generator.java.setup.Logger
+import org.eclipse.etrice.generator.base.Logger
class PrepareFileSystem {
diff --git a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/ProtocolClassGen.xtend b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/ProtocolClassGen.xtend
index 2d0ec7a5f..558a2ffed 100644
--- a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/ProtocolClassGen.xtend
+++ b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/ProtocolClassGen.xtend
@@ -21,7 +21,7 @@ import static extension org.eclipse.xtext.xtend2.lib.*
import org.eclipse.etrice.core.room.*
import org.eclipse.etrice.generator.etricegen.*
-import org.eclipse.etrice.generator.java.setup.Logger
+import org.eclipse.etrice.generator.base.Logger
class ProtocolClassGen {
diff --git a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/SubSystemClassGen.xtend b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/SubSystemClassGen.xtend
index 45957b2f9..d9274de5e 100644
--- a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/SubSystemClassGen.xtend
+++ b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/SubSystemClassGen.xtend
@@ -21,7 +21,7 @@ import static extension org.eclipse.xtext.xtend2.lib.*
import org.eclipse.etrice.core.room.*
import org.eclipse.etrice.generator.etricegen.*
-import org.eclipse.etrice.generator.java.setup.Logger
+import org.eclipse.etrice.generator.base.Logger
class SubSystemClassGen {
diff --git a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/newwizard/EmptyProjectWizard.java b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/newwizard/EmptyProjectWizard.java
index 685e53fa6..3359f3d38 100644
--- a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/newwizard/EmptyProjectWizard.java
+++ b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/newwizard/EmptyProjectWizard.java
@@ -7,9 +7,6 @@
*******************************************************************************/
package org.eclipse.etrice.generator.java.newwizard;
-import java.util.ArrayList;
-import java.util.List;
-
import org.apache.log4j.Logger;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IWorkspace;
@@ -89,13 +86,6 @@ public class EmptyProjectWizard extends Wizard implements INewWizard {
.setDescription("Create an empty Java plug-in project with eTrice dependencies");
addPage(newProjectCreationPage);
}
-
- private List<String> getRequiredBundles() {
- List<String> requiredBundles = new ArrayList<String>(ProjectCreator.getCommonRequiredBundles());
- requiredBundles.add("org.eclipse.etrice.generator.java;bundle-version=\"0.1.0\"");
- requiredBundles.add("org.eclipse.etrice.modellib;bundle-version=\"0.1.0\"");
- return requiredBundles;
- }
@Override
public boolean performFinish() {
@@ -124,12 +114,6 @@ public class EmptyProjectWizard extends Wizard implements INewWizard {
+ "/model/"+baseName+".room", true),
baseName);
- ProjectCreator.createManifest(URI.createPlatformResourceURI("/"
- + baseName
- + "/META-INF/MANIFEST.MF", true),
- baseName,
- getRequiredBundles());
-
ProjectCreator.createBuildProperties(URI.createPlatformResourceURI("/"
+baseName+"/build.properties", true),
baseName);
diff --git a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/setup/GeneratorModule.java b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/setup/GeneratorModule.java
index 82a5133c2..04b96fe98 100644
--- a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/setup/GeneratorModule.java
+++ b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/setup/GeneratorModule.java
@@ -14,7 +14,9 @@ package org.eclipse.etrice.generator.java.setup;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.etrice.generator.builder.ILogger;
+import org.eclipse.etrice.generator.base.Diagnostician;
+import org.eclipse.etrice.generator.base.ILineOutputLogger;
+import org.eclipse.etrice.generator.base.Logger;
import org.eclipse.etrice.generator.etricegen.IDiagnostician;
import org.eclipse.etrice.generator.java.gen.MainGen;
import org.eclipse.xtext.generator.IGenerator;
@@ -31,7 +33,7 @@ public class GeneratorModule implements Module {
binder.bind(ResourceSet.class).to(ResourceSetImpl.class);
binder.bind(Logger.class).in(Singleton.class);
- binder.bind(ILogger.class).to(Logger.class);
+ binder.bind(ILineOutputLogger.class).to(Logger.class);
binder.bind(Diagnostician.class).in(Singleton.class);
binder.bind(IDiagnostician.class).to(Diagnostician.class);
diff --git a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/ActorClassGen.java b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/ActorClassGen.java
index 7517808d0..d1db05588 100644
--- a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/ActorClassGen.java
+++ b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/ActorClassGen.java
@@ -18,12 +18,12 @@ import org.eclipse.etrice.core.room.ServiceImplementation;
import org.eclipse.etrice.core.room.StateMachine;
import org.eclipse.etrice.core.room.Type;
import org.eclipse.etrice.core.room.TypedID;
+import org.eclipse.etrice.generator.base.Logger;
import org.eclipse.etrice.generator.etricegen.ExpandedActorClass;
import org.eclipse.etrice.generator.etricegen.Root;
import org.eclipse.etrice.generator.java.gen.ProcedureHelpers;
import org.eclipse.etrice.generator.java.gen.StateMachineGen;
import org.eclipse.etrice.generator.java.gen.StdExtensions;
-import org.eclipse.etrice.generator.java.setup.Logger;
import org.eclipse.xtext.generator.JavaIoFileSystemAccess;
import org.eclipse.xtext.xbase.lib.BooleanExtensions;
import org.eclipse.xtext.xbase.lib.IntegerExtensions;
diff --git a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/DataClassGen.java b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/DataClassGen.java
index fcb6a6633..ab8197bdd 100644
--- a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/DataClassGen.java
+++ b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/DataClassGen.java
@@ -8,10 +8,10 @@ import org.eclipse.etrice.core.room.Import;
import org.eclipse.etrice.core.room.Operation;
import org.eclipse.etrice.core.room.RoomModel;
import org.eclipse.etrice.core.room.Type;
+import org.eclipse.etrice.generator.base.Logger;
import org.eclipse.etrice.generator.etricegen.Root;
import org.eclipse.etrice.generator.java.gen.ProcedureHelpers;
import org.eclipse.etrice.generator.java.gen.StdExtensions;
-import org.eclipse.etrice.generator.java.setup.Logger;
import org.eclipse.xtext.generator.JavaIoFileSystemAccess;
import org.eclipse.xtext.xbase.lib.ComparableExtensions;
import org.eclipse.xtext.xbase.lib.ObjectExtensions;
diff --git a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/InstanceDiagramGen.java b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/InstanceDiagramGen.java
index 5c7ad104f..f33407bc7 100644
--- a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/InstanceDiagramGen.java
+++ b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/InstanceDiagramGen.java
@@ -5,12 +5,12 @@ import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.etrice.core.room.ActorClass;
import org.eclipse.etrice.core.room.SubSystemClass;
+import org.eclipse.etrice.generator.base.Logger;
import org.eclipse.etrice.generator.etricegen.ActorInstance;
import org.eclipse.etrice.generator.etricegen.Root;
import org.eclipse.etrice.generator.etricegen.StructureInstance;
import org.eclipse.etrice.generator.etricegen.SubSystemInstance;
import org.eclipse.etrice.generator.java.gen.StdExtensions;
-import org.eclipse.etrice.generator.java.setup.Logger;
import org.eclipse.xtext.generator.JavaIoFileSystemAccess;
import org.eclipse.xtext.xbase.lib.StringExtensions;
import org.eclipse.xtext.xtend2.lib.StringConcatenation;
diff --git a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/PrepareFileSystem.java b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/PrepareFileSystem.java
index 6389cdcb7..4715cddf6 100644
--- a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/PrepareFileSystem.java
+++ b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/PrepareFileSystem.java
@@ -8,9 +8,9 @@ import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.etrice.core.room.RoomModel;
+import org.eclipse.etrice.generator.base.Logger;
import org.eclipse.etrice.generator.etricegen.Root;
import org.eclipse.etrice.generator.java.gen.StdExtensions;
-import org.eclipse.etrice.generator.java.setup.Logger;
import org.eclipse.xtext.generator.JavaIoFileSystemAccess;
import org.eclipse.xtext.xbase.lib.StringExtensions;
import org.eclipse.xtext.xtend2.lib.StringConcatenation;
diff --git a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/ProtocolClassGen.java b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/ProtocolClassGen.java
index 1522a7daf..1b97494f5 100644
--- a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/ProtocolClassGen.java
+++ b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/ProtocolClassGen.java
@@ -14,10 +14,10 @@ import org.eclipse.etrice.core.room.ProtocolClass;
import org.eclipse.etrice.core.room.RoomModel;
import org.eclipse.etrice.core.room.Type;
import org.eclipse.etrice.core.room.TypedID;
+import org.eclipse.etrice.generator.base.Logger;
import org.eclipse.etrice.generator.etricegen.Root;
import org.eclipse.etrice.generator.java.gen.ProcedureHelpers;
import org.eclipse.etrice.generator.java.gen.StdExtensions;
-import org.eclipse.etrice.generator.java.setup.Logger;
import org.eclipse.xtext.generator.JavaIoFileSystemAccess;
import org.eclipse.xtext.xbase.lib.BooleanExtensions;
import org.eclipse.xtext.xbase.lib.IntegerExtensions;
diff --git a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/SubSystemClassGen.java b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/SubSystemClassGen.java
index 30cae1ad1..9849edb4e 100644
--- a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/SubSystemClassGen.java
+++ b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/SubSystemClassGen.java
@@ -8,6 +8,7 @@ import org.eclipse.etrice.core.room.DetailCode;
import org.eclipse.etrice.core.room.LogicalThread;
import org.eclipse.etrice.core.room.RoomModel;
import org.eclipse.etrice.core.room.SubSystemClass;
+import org.eclipse.etrice.generator.base.Logger;
import org.eclipse.etrice.generator.etricegen.ActorInstance;
import org.eclipse.etrice.generator.etricegen.Counter;
import org.eclipse.etrice.generator.etricegen.InterfaceItemInstance;
@@ -15,7 +16,6 @@ import org.eclipse.etrice.generator.etricegen.Root;
import org.eclipse.etrice.generator.etricegen.SubSystemInstance;
import org.eclipse.etrice.generator.java.gen.ProcedureHelpers;
import org.eclipse.etrice.generator.java.gen.StdExtensions;
-import org.eclipse.etrice.generator.java.setup.Logger;
import org.eclipse.xtext.generator.JavaIoFileSystemAccess;
import org.eclipse.xtext.xbase.lib.BooleanExtensions;
import org.eclipse.xtext.xbase.lib.ComparableExtensions;
diff --git a/plugins/org.eclipse.etrice.generator.launch.java/META-INF/MANIFEST.MF b/plugins/org.eclipse.etrice.generator.launch.java/META-INF/MANIFEST.MF
index f77f6ba22..9771ddcb8 100644
--- a/plugins/org.eclipse.etrice.generator.launch.java/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.etrice.generator.launch.java/META-INF/MANIFEST.MF
@@ -4,13 +4,15 @@ Bundle-Name: eTrice Java Generator Launch
Bundle-SymbolicName: org.eclipse.etrice.generator.launch.java;singleton:=true
Bundle-Version: 0.1.0.qualifier
Bundle-Activator: org.eclipse.etrice.generator.launch.java.Activator
-Require-Bundle: org.eclipse.ui,
+Require-Bundle: org.eclipse.etrice.generator;bundle-version="0.1.0",
+ org.eclipse.etrice.generator.java;bundle-version="0.1.0",
+ org.eclipse.etrice.generator.launch;bundle-version="0.1.0",
+ org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.debug.core,
org.eclipse.debug.ui,
org.eclipse.jdt.ui;bundle-version="3.7.0",
org.eclipse.jdt.core;bundle-version="3.7.0",
- org.eclipse.etrice.generator.launch;bundle-version="0.1.0",
org.eclipse.core.variables;bundle-version="3.2.500"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/plugins/org.eclipse.etrice.generator.launch.java/src/org/eclipse/etrice/generator/launch/java/JavaGeneratorLaunchConfigurationDelegate.java b/plugins/org.eclipse.etrice.generator.launch.java/src/org/eclipse/etrice/generator/launch/java/JavaGeneratorLaunchConfigurationDelegate.java
index c7335937f..f793fbae3 100644
--- a/plugins/org.eclipse.etrice.generator.launch.java/src/org/eclipse/etrice/generator/launch/java/JavaGeneratorLaunchConfigurationDelegate.java
+++ b/plugins/org.eclipse.etrice.generator.launch.java/src/org/eclipse/etrice/generator/launch/java/JavaGeneratorLaunchConfigurationDelegate.java
@@ -13,17 +13,8 @@
package org.eclipse.etrice.generator.launch.java;
import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IDebugEventSetListener;
-import org.eclipse.debug.core.ILaunch;
import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.ui.RefreshTab;
+import org.eclipse.etrice.generator.base.ILineOutput;
import org.eclipse.etrice.generator.launch.GeneratorLaunchConfigurationDelegate;
/**
@@ -33,14 +24,6 @@ import org.eclipse.etrice.generator.launch.GeneratorLaunchConfigurationDelegate;
public class JavaGeneratorLaunchConfigurationDelegate extends GeneratorLaunchConfigurationDelegate {
/* (non-Javadoc)
- * @see org.eclipse.etrice.generator.launch.GeneratorLaunchConfigurationDelegate#getMainTypeName()
- */
- @Override
- protected String getMainTypeName() {
- return "org.eclipse.etrice.generator.java.Main";
- }
-
- /* (non-Javadoc)
* @see org.eclipse.etrice.generator.launch.GeneratorLaunchConfigurationDelegate#addArguments(org.eclipse.debug.core.ILaunchConfiguration, java.lang.StringBuffer)
*/
@Override
@@ -54,38 +37,12 @@ public class JavaGeneratorLaunchConfigurationDelegate extends GeneratorLaunchCon
}
/* (non-Javadoc)
- * @see org.eclipse.etrice.generator.launch.GeneratorLaunchConfigurationDelegate#launch(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.debug.core.ILaunch, org.eclipse.core.runtime.IProgressMonitor)
+ * @see org.eclipse.etrice.generator.launch.GeneratorLaunchConfigurationDelegate#runGenerator(java.lang.String[], org.eclipse.etrice.generator.launch.ILineOutput)
*/
@Override
- public void launch(final ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException {
- if (RefreshTab.getRefreshScope(configuration) != null) {
- DebugPlugin.getDefault().addDebugEventListener(new IDebugEventSetListener() {
- public void handleDebugEvents(DebugEvent[] events) {
- for (int i = 0; i < events.length; i++) {
- DebugEvent event = events[i];
- if (event.getSource() instanceof IProcess && event.getKind() == DebugEvent.TERMINATE) {
- IProcess process = (IProcess) event.getSource();
- if (configuration == process.getLaunch().getLaunchConfiguration()) {
- DebugPlugin.getDefault().removeDebugEventListener(this);
- Job job = new Job("refresh resources after code generation") {
- public IStatus run(IProgressMonitor monitor) {
- try {
- RefreshTab.refreshResources(configuration, monitor);
- } catch (CoreException e) {
- e.printStackTrace();
- return e.getStatus();
- }
- return Status.OK_STATUS;
- }
- };
- job.schedule();
- return;
- }
- }
- }
- }
- });
- }
- super.launch(configuration, mode, launch, monitor);
+ protected void runGenerator(String[] args, ILineOutput out) {
+ org.eclipse.etrice.generator.java.Main.setOutput(out);
+ org.eclipse.etrice.generator.java.Main.main(args);
}
+
}
diff --git a/plugins/org.eclipse.etrice.generator.launch/META-INF/MANIFEST.MF b/plugins/org.eclipse.etrice.generator.launch/META-INF/MANIFEST.MF
index e223ff36b..7dbbdbb7c 100644
--- a/plugins/org.eclipse.etrice.generator.launch/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.etrice.generator.launch/META-INF/MANIFEST.MF
@@ -4,8 +4,10 @@ Bundle-Name: eTrice Generator Launch Base Classes
Bundle-SymbolicName: org.eclipse.etrice.generator.launch;singleton:=true
Bundle-Version: 0.1.0.qualifier
Bundle-Activator: org.eclipse.etrice.generator.launch.Activator
-Require-Bundle: org.eclipse.ui,
+Require-Bundle: org.eclipse.etrice.generator;bundle-version="0.1.0",
org.eclipse.core.runtime,
+ org.eclipse.ui,
+ org.eclipse.ui.console;bundle-version="3.5.100",
org.eclipse.debug.ui,
org.eclipse.jdt.ui;bundle-version="3.7.0",
org.eclipse.jdt.core;bundle-version="3.7.0",
diff --git a/plugins/org.eclipse.etrice.generator.launch/src/org/eclipse/etrice/generator/launch/GeneratorLaunchConfigurationDelegate.java b/plugins/org.eclipse.etrice.generator.launch/src/org/eclipse/etrice/generator/launch/GeneratorLaunchConfigurationDelegate.java
index fb3a15020..d9334f793 100644
--- a/plugins/org.eclipse.etrice.generator.launch/src/org/eclipse/etrice/generator/launch/GeneratorLaunchConfigurationDelegate.java
+++ b/plugins/org.eclipse.etrice.generator.launch/src/org/eclipse/etrice/generator/launch/GeneratorLaunchConfigurationDelegate.java
@@ -12,21 +12,34 @@
package org.eclipse.etrice.generator.launch;
-import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Map;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.core.variables.VariablesPlugin;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.ui.RefreshTab;
+import org.eclipse.etrice.generator.base.ILineOutput;
import org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate;
-import org.eclipse.jdt.launching.ExecutionArguments;
-import org.eclipse.jdt.launching.IVMRunner;
-import org.eclipse.jdt.launching.VMRunnerConfiguration;
-import org.eclipse.core.variables.VariablesPlugin;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.console.ConsolePlugin;
+import org.eclipse.ui.console.IConsole;
+import org.eclipse.ui.console.IConsoleConstants;
+import org.eclipse.ui.console.IConsoleManager;
+import org.eclipse.ui.console.IConsoleView;
+import org.eclipse.ui.console.MessageConsole;
+import org.eclipse.ui.console.MessageConsoleStream;
/**
* @author Henrik Rentz-Reichert (initial contribution)
@@ -34,6 +47,20 @@ import org.eclipse.core.variables.VariablesPlugin;
*/
public abstract class GeneratorLaunchConfigurationDelegate extends AbstractJavaLaunchConfigurationDelegate{
+ protected static class ConsoleLineOutput implements ILineOutput {
+
+ private MessageConsoleStream stream;
+
+ public ConsoleLineOutput(MessageConsoleStream stream) {
+ this.stream = stream;
+ }
+
+ @Override
+ public void println(String txt) {
+ stream.println(txt);
+ }
+ }
+
@Override
public void launch(ILaunchConfiguration configuration, String mode,
ILaunch launch, IProgressMonitor monitor) throws CoreException {
@@ -53,72 +80,71 @@ public abstract class GeneratorLaunchConfigurationDelegate extends AbstractJavaL
// constructing program arguments
addModels(configuration, argString);
addArguments(configuration, argString);
-
- monitor.subTask("launching generator");
-
- String mainTypeName = getMainTypeName();
- IVMRunner runner = getVMRunner(configuration, mode);
-
- File workingDir = verifyWorkingDirectory(configuration);
- String workingDirName = null;
- if (workingDir != null) {
- workingDirName = workingDir.getAbsolutePath();
- }
-
- // Environment variables
- String[] envp= getEnvironment(configuration);
-
- // Program & VM arguments
- String pgmArgs = argString.toString();
- pgmArgs = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(pgmArgs);
- String vmArgs = getVMArguments(configuration);
- ExecutionArguments execArgs = new ExecutionArguments(vmArgs, pgmArgs);
-
- // VM-specific attributes
- @SuppressWarnings("rawtypes")
- Map vmAttributesMap = getVMSpecificAttributesMap(configuration);
-
- // Classpath
- String[] classpath = getClasspath(configuration);
-
- // Create VM config
- VMRunnerConfiguration runConfig = new VMRunnerConfiguration(mainTypeName, classpath);
- runConfig.setProgramArguments(execArgs.getProgramArgumentsArray());
- runConfig.setEnvironment(envp);
- runConfig.setVMArguments(execArgs.getVMArgumentsArray());
- runConfig.setWorkingDirectory(workingDirName);
- runConfig.setVMSpecificAttributesMap(vmAttributesMap);
-
- // Bootpath
- runConfig.setBootClassPath(getBootpath(configuration));
-
- // check for cancellation
- if (monitor.isCanceled()) {
- return;
- }
-
- // stop in main
- prepareStopInMain(configuration);
-
- // done the verification phase
- monitor.worked(1);
-
- monitor.subTask("locating sources");
- // set the default source locator if required
- setDefaultSourceLocator(launch, configuration);
- monitor.worked(1);
-
- // Launch the configuration - 1 unit of work
- runner.run(runConfig, launch, monitor);
-
+
+ String pgmArgs = argString.toString().trim();
+ pgmArgs = VariablesPlugin.getDefault().getStringVariableManager()
+ .performStringSubstitution(pgmArgs);
+
+ String[] args = pgmArgs.split("[ \t]");
+
+ final MessageConsole myConsole = findConsole("EM Generator Output");
+ Display.getDefault().syncExec(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ IWorkbench wb = PlatformUI.getWorkbench();
+ IWorkbenchWindow win = wb.getActiveWorkbenchWindow();
+ IWorkbenchPage page = win.getActivePage();
+ String id = IConsoleConstants.ID_CONSOLE_VIEW;
+ IConsoleView view = (IConsoleView) page.showView(id);
+ view.display(myConsole);
+ } catch (PartInitException e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ MessageConsoleStream out = myConsole.newMessageStream();
+ out.getConsole().clearConsole();
+ ConsoleLineOutput output = new ConsoleLineOutput(out);
+ runGenerator(args, output);
+
// check for cancellation
if (monitor.isCanceled()) {
return;
- }
- }
- finally {
+ }
+ } finally {
monitor.done();
}
+
+ launchRefreshJob(configuration);
+ }
+
+ private void launchRefreshJob(final ILaunchConfiguration configuration) {
+ Job job = new Job("refresh resources after code generation") {
+ public IStatus run(IProgressMonitor monitor) {
+ try {
+ RefreshTab.refreshResources(configuration, monitor);
+ } catch (CoreException e) {
+ e.printStackTrace();
+ return e.getStatus();
+ }
+ return Status.OK_STATUS;
+ }
+ };
+ job.schedule();
+ }
+
+ private MessageConsole findConsole(String name) {
+ ConsolePlugin plugin = ConsolePlugin.getDefault();
+ IConsoleManager conMan = plugin.getConsoleManager();
+ IConsole[] existing = conMan.getConsoles();
+ for (int i = 0; i < existing.length; i++)
+ if (name.equals(existing[i].getName()))
+ return (MessageConsole) existing[i];
+ // no console found, so create a new one
+ MessageConsole myConsole = new MessageConsole(name, null);
+ conMan.addConsoles(new IConsole[] { myConsole });
+ return myConsole;
}
protected void addModels(ILaunchConfiguration configuration, StringBuffer argString) throws CoreException {
@@ -128,11 +154,6 @@ public abstract class GeneratorLaunchConfigurationDelegate extends AbstractJavaL
argString.append(" file://"+model);
}
}
-
- /**
- * @return the main type of the generator as fully qualified name
- */
- protected abstract String getMainTypeName();
/**
* assemble the command line by adding further parameters
@@ -142,4 +163,12 @@ public abstract class GeneratorLaunchConfigurationDelegate extends AbstractJavaL
* @throws CoreException
*/
protected abstract void addArguments(ILaunchConfiguration configuration, StringBuffer argString) throws CoreException;
+
+ /**
+ * call the generator main method
+ *
+ * @param args the command line arguments
+ * @param out line wise output to console
+ */
+ protected abstract void runGenerator(String[] args, ILineOutput out);
}
diff --git a/plugins/org.eclipse.etrice.generator.launch/src/org/eclipse/etrice/generator/launch/GeneratorMainTab.java b/plugins/org.eclipse.etrice.generator.launch/src/org/eclipse/etrice/generator/launch/GeneratorMainTab.java
index fa139d932..09b1455a3 100644
--- a/plugins/org.eclipse.etrice.generator.launch/src/org/eclipse/etrice/generator/launch/GeneratorMainTab.java
+++ b/plugins/org.eclipse.etrice.generator.launch/src/org/eclipse/etrice/generator/launch/GeneratorMainTab.java
@@ -15,27 +15,15 @@ package org.eclipse.etrice.generator.launch;
import java.util.ArrayList;
import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.variables.VariablesPlugin;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
-import org.eclipse.jdt.core.IJavaModel;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
-import org.eclipse.jdt.ui.JavaElementLabelProvider;
import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
@@ -46,7 +34,6 @@ import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.dialogs.ElementListSelectionDialog;
import org.eclipse.ui.dialogs.ResourceListSelectionDialog;
import org.eclipse.ui.dialogs.ResourceSelectionDialog;
@@ -58,7 +45,6 @@ public abstract class GeneratorMainTab extends AbstractLaunchConfigurationTab {
private List modelList;
private Text projectText;
- private Button browseProject;
@Override
public void createControl(Composite parent) {
@@ -69,12 +55,10 @@ public abstract class GeneratorMainTab extends AbstractLaunchConfigurationTab {
GridLayout layout= new GridLayout();
layout.numColumns = 2;
- layout.marginHeight = 10;
+ layout.marginHeight = 0;
layout.marginWidth = 10;
mainComposite.setLayout(layout);
- createProjectEditor(mainComposite);
-
createModelsEditor(mainComposite);
Dialog.applyDialogFont(mainComposite);
@@ -118,7 +102,7 @@ public abstract class GeneratorMainTab extends AbstractLaunchConfigurationTab {
*/
private void createModelList(Composite parent) {
Label label = new Label(parent, SWT.NONE);
- label.setText("ROOM Models:");
+ label.setText("Models to generate:");
GridData gd = new GridData(SWT.BEGINNING, SWT.BEGINNING, true, false, 2, 1);
gd.verticalIndent = 20;
label.setLayoutData(gd);
@@ -148,97 +132,6 @@ public abstract class GeneratorMainTab extends AbstractLaunchConfigurationTab {
addBtn.addListener(SWT.Selection,listener);
return gd;
}
-
- protected void createProjectEditor(Composite parent) {
- Label label = new Label(parent, SWT.NONE);
- label.setText("Project:");
- GridData gd = new GridData(SWT.BEGINNING, SWT.BEGINNING, true, false, 2, 1);
- label.setLayoutData(gd);
-
- projectText = createSingleText(parent, 1);
- projectText.addModifyListener(new ModifyListener() {
- @Override
- public void modifyText(ModifyEvent e) {
- updateLaunchConfigurationDialog();
- }
- });
- browseProject = createPushButton(parent, "Browse...", null);
- browseProject.addSelectionListener(new SelectionListener( ) {
- @Override
- public void widgetSelected(SelectionEvent e) {
- handleProjectButtonSelected();
- }
- @Override
- public void widgetDefaultSelected(SelectionEvent e) {
- handleProjectButtonSelected();
- }
- });
- }
-
- private void updateProjectFromConfig(ILaunchConfiguration config) {
- String projectName = "";
- try {
- projectName = config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, "");
- }
- catch (CoreException ce) {
- setErrorMessage(ce.getStatus().getMessage());
- }
- projectText.setText(projectName);
- }
-
- private void handleProjectButtonSelected() {
- IJavaProject project = chooseJavaProject();
- if (project == null) {
- return;
- }
- String projectName = project.getElementName();
- projectText.setText(projectName);
- updateLaunchConfigurationDialog();
- }
-
- private IJavaProject chooseJavaProject() {
- ILabelProvider labelProvider= new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT);
- ElementListSelectionDialog dialog= new ElementListSelectionDialog(getShell(), labelProvider);
- dialog.setTitle("Project Selection");
- dialog.setMessage("Select a project to constrain your search");
- try {
- dialog.setElements(JavaCore.create(getWorkspaceRoot()).getJavaProjects());
- }
- catch (JavaModelException jme) {Activator.getDefault().log(jme);}
- IJavaProject javaProject= getJavaProject();
- if (javaProject != null) {
- dialog.setInitialSelections(new Object[] { javaProject });
- }
- if (dialog.open() == Window.OK) {
- return (IJavaProject) dialog.getFirstResult();
- }
- return null;
- }
-
- private IJavaModel getJavaModel() {
- return JavaCore.create(getWorkspaceRoot());
- }
-
- private IJavaProject getJavaProject() {
- String projectName = projectText.getText().trim();
- if (projectName.length() < 1) {
- return null;
- }
- return getJavaModel().getJavaProject(projectName);
- }
-
- private IWorkspaceRoot getWorkspaceRoot() {
- return ResourcesPlugin.getWorkspace().getRoot();
- }
-
- private static Text createSingleText(Composite parent, int hspan) {
- Text t = new Text(parent, SWT.SINGLE | SWT.BORDER);
- t.setFont(parent.getFont());
- GridData gd = new GridData(GridData.FILL_HORIZONTAL);
- gd.horizontalSpan = hspan;
- t.setLayoutData(gd);
- return t;
- }
@Override
public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
@@ -248,8 +141,6 @@ public abstract class GeneratorMainTab extends AbstractLaunchConfigurationTab {
@Override
public void initializeFrom(ILaunchConfiguration configuration) {
try {
- updateProjectFromConfig(configuration);
-
modelList.removeAll();
ArrayList<String> param = new ArrayList<String>();
param = (ArrayList<String>) configuration.getAttribute("ModelFiles", param);
diff --git a/plugins/org.eclipse.etrice.generator/META-INF/MANIFEST.MF b/plugins/org.eclipse.etrice.generator/META-INF/MANIFEST.MF
index 39a7f2ba4..f1acaee86 100644
--- a/plugins/org.eclipse.etrice.generator/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.etrice.generator/META-INF/MANIFEST.MF
@@ -8,6 +8,7 @@ Bundle-Vendor: eTrice (Incubation)
Bundle-RequiredExecutionEnvironment: JavaSE-1.6,
J2SE-1.5
Export-Package: org.eclipse.etrice.generator,
+ org.eclipse.etrice.generator.base,
org.eclipse.etrice.generator.builder;uses:="org.eclipse.emf.ecore,org.eclipse.etrice.generator.etricegen",
org.eclipse.etrice.generator.etricegen;uses:="org.eclipse.emf.ecore,org.eclipse.emf.common.util,org.eclipse.etrice.core.room",
org.eclipse.etrice.generator.etricegen.impl;
diff --git a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/setup/Diagnostician.java b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/Diagnostician.java
index 70292bd01..e9c5c0ce3 100644
--- a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/setup/Diagnostician.java
+++ b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/Diagnostician.java
@@ -10,7 +10,7 @@
*
*******************************************************************************/
-package org.eclipse.etrice.generator.java.setup;
+package org.eclipse.etrice.generator.base;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
diff --git a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/ILineOutput.java b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/ILineOutput.java
new file mode 100644
index 000000000..555444ce9
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/ILineOutput.java
@@ -0,0 +1,6 @@
+package org.eclipse.etrice.generator.base;
+
+public interface ILineOutput {
+
+ void println(String txt);
+}
diff --git a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/ILineOutputLogger.java b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/ILineOutputLogger.java
new file mode 100644
index 000000000..560e8213c
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/ILineOutputLogger.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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:
+ * Thomas Schuetz and Henrik Rentz-Reichert (initial contribution)
+ *
+ *******************************************************************************/
+
+package org.eclipse.etrice.generator.base;
+
+
+/**
+ * An ILineOutputLogger will send its output to the specified {@link org.eclipse.etrice.generator.base.ILogger ILogger} if one is set.
+ *
+ * @author hrentz
+ *
+ */
+public interface ILineOutputLogger extends ILogger {
+
+ /**
+ * @param lo a line output to be used by the logger
+ */
+ void setOutput(ILineOutput lo);
+}
diff --git a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/builder/ILogger.java b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/ILogger.java
index e0e233161..856cbc17b 100644
--- a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/builder/ILogger.java
+++ b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/ILogger.java
@@ -10,12 +10,26 @@
*
*******************************************************************************/
-package org.eclipse.etrice.generator.builder;
+package org.eclipse.etrice.generator.base;
import org.eclipse.emf.ecore.EObject;
+/**
+ * A simple logger interface for error messages during model validation and code generation.
+ *
+ * @author hrentz
+ *
+ */
public interface ILogger {
+ /**
+ * @param text informational text
+ */
void logInfo(String text);
+
+ /**
+ * @param text error text
+ * @param obj {@link org.eclipse.emf.ecore.EObject EObject} (if available) where the error occurred
+ */
void logError(String text, EObject obj);
}
diff --git a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/Logger.java b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/Logger.java
new file mode 100644
index 000000000..2295c840c
--- /dev/null
+++ b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/Logger.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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:
+ * Thomas Schuetz and Henrik Rentz-Reichert (initial contribution)
+ *
+ *******************************************************************************/
+
+package org.eclipse.etrice.generator.base;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * a simple logger class implementing the {@link org.eclipse.etrice.generator.base.ILineOutputLogger ILineOutputLogger} interface.
+ * If no ILineOutputLogger is set then output is sent to {@link java.lang.System#out System.out}.
+ *
+ * @author hrentz
+ *
+ */
+public class Logger implements ILineOutputLogger {
+
+ ILineOutput output = null;
+
+ public void logInfo(String text) {
+ println("Info: " + text);
+ }
+
+ public void logError(String text, EObject obj) {
+ if (obj == null)
+ println("Error: " + text);
+ else
+ println("Error: " + text + " " + obj.toString());
+ }
+
+ private void println(String txt) {
+ if (output!=null)
+ output.println(txt);
+ else
+ System.out.println(txt);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.etrice.generator.ILineOutputLogger#setOutput(org.eclipse.etrice.generator.ILineOutput)
+ */
+ @Override
+ public void setOutput(ILineOutput lo) {
+ output = lo;
+ }
+
+}
diff --git a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/setup/Logger.java b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/StdLineOutput.java
index 76a034436..c9d333855 100644
--- a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/setup/Logger.java
+++ b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/StdLineOutput.java
@@ -10,26 +10,22 @@
*
*******************************************************************************/
-package org.eclipse.etrice.generator.java.setup;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.etrice.generator.builder.ILogger;
+package org.eclipse.etrice.generator.base;
/**
+ * A line output that prints to {@link java.lang.System#out System.out}
+ *
* @author hrentz
*
*/
-public class Logger implements ILogger {
-
- public void logInfo(String text) {
- System.out.println("Info: " + text);
- }
+public class StdLineOutput implements ILineOutput {
- public void logError(String text, EObject obj) {
- if (obj == null)
- System.out.println("Error: " + text);
- else
- System.out.println("Error: " + text + " " + obj.toString());
+ /* (non-Javadoc)
+ * @see org.eclipse.etrice.generator.ILineOutput#println(java.lang.String)
+ */
+ @Override
+ public void println(String txt) {
+ System.out.println(txt);
}
}
diff --git a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/builder/GeneratorModelBuilder.java b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/builder/GeneratorModelBuilder.java
index 88ba7c1e9..1e5a75e81 100644
--- a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/builder/GeneratorModelBuilder.java
+++ b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/builder/GeneratorModelBuilder.java
@@ -41,6 +41,7 @@ import org.eclipse.etrice.core.room.SPPoint;
import org.eclipse.etrice.core.room.ServiceImplementation;
import org.eclipse.etrice.core.room.SubSystemClass;
import org.eclipse.etrice.core.room.SubSystemRef;
+import org.eclipse.etrice.generator.base.ILogger;
import org.eclipse.etrice.generator.etricegen.ActorInstance;
import org.eclipse.etrice.generator.etricegen.BindingInstance;
import org.eclipse.etrice.generator.etricegen.ConnectionInstance;
diff --git a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/workflow/WorkflowDiagnostician.java b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/workflow/WorkflowDiagnostician.java
index 273d1cc0a..10aeae00b 100644
--- a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/workflow/WorkflowDiagnostician.java
+++ b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/workflow/WorkflowDiagnostician.java
@@ -15,7 +15,7 @@ package org.eclipse.etrice.generator.workflow;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.etrice.core.naming.RoomNameProvider;
-import org.eclipse.etrice.generator.builder.ILogger;
+import org.eclipse.etrice.generator.base.ILogger;
import org.eclipse.etrice.generator.etricegen.IDiagnostician;
diff --git a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/workflow/XtendStdlibLogger.java b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/workflow/XtendStdlibLogger.java
index 2908a2306..6e4ca596d 100644
--- a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/workflow/XtendStdlibLogger.java
+++ b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/workflow/XtendStdlibLogger.java
@@ -13,7 +13,7 @@
package org.eclipse.etrice.generator.workflow;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.etrice.generator.builder.ILogger;
+import org.eclipse.etrice.generator.base.ILogger;
import org.eclipse.xtend.util.stdlib.IOExtensions;

Back to the top