소스 검색

Merge pull request #1012 from Yakindu/issue_1011

#1011: Avoid caching of simulation injector because we need multiple …
Andreas Mülder 8 년 전
부모
커밋
4a610d6378

+ 7 - 0
plugins/org.yakindu.sct.domain/src/org/yakindu/sct/domain/extension/IDomain.java

@@ -32,6 +32,13 @@ public interface IDomain {
 
 	String getDescription();
 
+	/**
+	 * Injector instances are cached for the features and the specified options
+	 * 
+	 * @param useCache specifies whether to use cached instances or not
+	 */
+	Injector getInjector(String feature, boolean useCache, String... options);
+	
 	/**
 	 * Injector instances are cached for the features and the specified options
 	 */

+ 13 - 7
plugins/org.yakindu.sct.domain/src/org/yakindu/sct/domain/extension/impl/DomainImpl.java

@@ -135,14 +135,20 @@ public class DomainImpl implements IDomain {
 	}
 
 	@Override
-	public Injector getInjector(String feature, String... options) {
-		try {
-			Injector result = injectorCache.get(new CacheKey(feature, options));
-			return result;
-		} catch (ExecutionException e) {
-			e.printStackTrace();
+	public Injector getInjector(String feature, boolean useCache, String... options) {
+		if (useCache) {
+			try {
+				return injectorCache.get(new CacheKey(feature, options));
+			} catch (ExecutionException e) {
+				e.printStackTrace();
+			}
 		}
-		return Guice.createInjector();
+		return createInjector(feature, options);
+	}
+	
+	@Override
+	public Injector getInjector(String feature, String... options) {
+		return getInjector(feature, true, options);
 	}
 
 	public Injector createInjector(String feature, String... options) {

+ 1 - 0
plugins/org.yakindu.sct.simulation.core.sexec/src/org/yakindu/sct/simulation/core/sexec/container/AbstractExecutionFlowSimulationEngine.java

@@ -64,6 +64,7 @@ public abstract class AbstractExecutionFlowSimulationEngine implements ISimulati
 		try {
 			interpreter.runCycle();
 		} catch (Exception e) {
+			e.printStackTrace();
 			handleException(e);
 		}
 	}

+ 1 - 1
plugins/org.yakindu.sct.simulation.core.sexec/src/org/yakindu/sct/simulation/core/sexec/launch/SexecLaunchConfigurationDelegate.java

@@ -63,6 +63,6 @@ public class SexecLaunchConfigurationDelegate extends AbstractSCTLaunchConfigura
 	}
 
 	protected Injector getInjector(Statechart statechart, ILaunch launch) {
-		return DomainRegistry.getDomain(statechart).getInjector(IDomain.FEATURE_SIMULATION);
+		return DomainRegistry.getDomain(statechart).getInjector(IDomain.FEATURE_SIMULATION, false);
 	}
 }