Browse Source

removed static caching of resourceInjector in
GenericdomainInjectorProvider - if used different domains at once the
wrong injector is cached.

Andreas Muelder 9 years ago
parent
commit
2971290b1c

+ 1 - 1
plugins/org.yakindu.sct.domain.generic/src/org/yakindu/sct/domain/generic/extension/GenericDomainInjectorProvider.java

@@ -48,7 +48,7 @@ public class GenericDomainInjectorProvider implements IDomainInjectorProvider {
 
 
 	private static final Map<String, Class<? extends EObject>> semanticTargetToRuleMap = new HashMap<String, Class<? extends EObject>>();
 	private static final Map<String, Class<? extends EObject>> semanticTargetToRuleMap = new HashMap<String, Class<? extends EObject>>();
 
 
-	private static Injector resourceInjector;
+	private Injector resourceInjector;
 	private Map<String, Injector> embeddedInjectors = new HashMap<String, Injector>();
 	private Map<String, Injector> embeddedInjectors = new HashMap<String, Injector>();
 
 
 	static {
 	static {

+ 2 - 0
plugins/org.yakindu.sct.model.resource/src/org/yakindu/sct/model/resource/SCTResourceFactory.java

@@ -12,6 +12,7 @@ package org.yakindu.sct.model.resource;
 
 
 import java.io.IOException;
 import java.io.IOException;
 
 
+import org.eclipse.core.runtime.Assert;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.resource.ResourceSet;
@@ -39,6 +40,7 @@ public class SCTResourceFactory extends XMIResourceFactoryImpl {
 	public Resource createResource(URI uri) {
 	public Resource createResource(URI uri) {
 		String domainID = determineDomainID(uri);
 		String domainID = determineDomainID(uri);
 		IDomainDescriptor domainDescriptor = DomainRegistry.getDomainDescriptor(domainID);
 		IDomainDescriptor domainDescriptor = DomainRegistry.getDomainDescriptor(domainID);
+		Assert.isTrue(domainDescriptor.getDomainID().equals(domainID));
 		Injector injector = domainDescriptor.getDomainInjectorProvider().getResourceInjector();
 		Injector injector = domainDescriptor.getDomainInjectorProvider().getResourceInjector();
 		Resource resource = injector.getInstance(Resource.class);
 		Resource resource = injector.getInstance(Resource.class);
 		ResourceSet set = new ResourceSetImpl();
 		ResourceSet set = new ResourceSetImpl();