فهرست منبع

decoupled workspace access from generator core plugin

Andreas Muelder 9 سال پیش
والد
کامیت
923c666ef2
17فایلهای تغییر یافته به همراه242 افزوده شده و 211 حذف شده
  1. 0 2
      plugins/org.yakindu.sct.generator.core/META-INF/MANIFEST.MF
  2. 4 0
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/extensions/ILibraryDescriptor.java
  3. 13 2
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/extensions/LibraryExtensions.java
  4. 60 0
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/filesystem/ISCTWorkspaceAccess.java
  5. 14 41
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/library/AbstractDefaultFeatureValueProvider.java
  6. 14 7
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/library/impl/CoreLibraryDefaultFeatureValueProvider.java
  7. 7 2
      plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/SGenUiModule.java
  8. 15 23
      plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/quickfix/SGenQuickfixProvider.java
  9. 20 25
      plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/templates/SGenTemplateProposalProvider.java
  10. 7 5
      plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/wizard/ModelCreator.java
  11. 56 89
      plugins/org.yakindu.sct.generator.genmodel/src/org/yakindu/sct/generator/genmodel/validation/SGenJavaValidator.java
  12. 3 1
      plugins/org.yakindu.sct.generator.runner/META-INF/MANIFEST.MF
  13. 13 1
      plugins/org.yakindu.sct.generator.runner/src/org/yakindu/sct/generator/runner/lib/GenericJavaLibraryDefaultValueProvider.java
  14. 2 1
      plugins/org.yakindu.sct.generator.xpand/META-INF/MANIFEST.MF
  15. 2 2
      plugins/org.yakindu.sct.generator.xpand/src/org/yakindu/sct/generator/xpand/features/XpandLibraryDefaultFeatureValueProvider.java
  16. 10 9
      test-plugins/org.yakindu.sct.generator.csharp.test/META-INF/MANIFEST.MF
  17. 2 1
      test-plugins/org.yakindu.sct.generator.java.test/META-INF/MANIFEST.MF

+ 0 - 2
plugins/org.yakindu.sct.generator.core/META-INF/MANIFEST.MF

@@ -12,9 +12,7 @@ Require-Bundle: org.yakindu.sct.model.sexec;visibility:=reexport,
  org.yakindu.base.types,
  org.yakindu.sct.domain,
  com.google.guava,
- org.eclipse.emf.workspace,
  org.eclipse.xtext.xbase,
- org.eclipse.core.resources;visibility:=reexport,
  org.eclipse.core.runtime;visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-ActivationPolicy: lazy

+ 4 - 0
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/extensions/ILibraryDescriptor.java

@@ -12,6 +12,8 @@ package org.yakindu.sct.generator.core.extensions;
 
 import org.eclipse.emf.common.util.URI;
 import org.yakindu.sct.generator.core.library.IDefaultFeatureValueProvider;
+
+import com.google.inject.Injector;
 /**
  * 
  * @author andreas muelder - Initial contribution and API
@@ -24,5 +26,7 @@ public interface ILibraryDescriptor {
 	String getLibraryId();
 
 	IDefaultFeatureValueProvider createFeatureValueProvider();
+	
+	IDefaultFeatureValueProvider createFeatureValueProvider(Injector injector);
 
 }

+ 13 - 2
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/extensions/LibraryExtensions.java

@@ -22,6 +22,8 @@ import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
 import com.google.common.base.Predicate;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
 
 /**
  * 
@@ -57,14 +59,23 @@ public class LibraryExtensions {
 		}
 
 		@Override
-		public IDefaultFeatureValueProvider createFeatureValueProvider() {
+		public IDefaultFeatureValueProvider createFeatureValueProvider(Injector injector) {
 			try {
-				return (IDefaultFeatureValueProvider) configElement.createExecutableExtension(DEFAULT_PROVIDER);
+				IDefaultFeatureValueProvider provider = (IDefaultFeatureValueProvider) configElement
+						.createExecutableExtension(DEFAULT_PROVIDER);
+				injector.injectMembers(provider);
+				return provider;
 			} catch (CoreException e) {
 				e.printStackTrace();
 			}
 			return null;
 		}
+
+		@Override
+		public IDefaultFeatureValueProvider createFeatureValueProvider() {
+			return createFeatureValueProvider(Guice.createInjector());
+
+		}
 	}
 
 	public static List<ILibraryDescriptor> getLibraryDescriptors() {

+ 60 - 0
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/filesystem/ISCTWorkspaceAccess.java

@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2016 committers of YAKINDU and others.
+ * 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:
+ * 		committers of YAKINDU - initial API and implementation
+ * 
+ */
+package org.yakindu.sct.generator.core.filesystem;
+
+import com.google.inject.ImplementedBy;
+
+/**
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
+@ImplementedBy(ISCTWorkspaceAccess.NullWorkspaceAccess.class)
+public interface ISCTWorkspaceAccess {
+
+	boolean projectExists(String value);
+
+	boolean projectOpened(String value);
+
+	boolean folderExists(String projectName, String folderPath);
+
+	boolean fileExists(String projectName, String folderPath);
+
+	/**
+	 *
+	 * @author Andreas Mülder - Initial contribution and API
+	 *
+	 */
+	public static class NullWorkspaceAccess implements ISCTWorkspaceAccess {
+
+		@Override
+		public boolean projectExists(String value) {
+			return true;
+		}
+
+		@Override
+		public boolean projectOpened(String value) {
+			return true;
+		}
+
+		@Override
+		public boolean folderExists(String projectName, String folderPath) {
+			return true;
+		}
+
+		@Override
+		public boolean fileExists(String projectName, String folderPath) {
+			return true;
+		}
+
+	}
+}

+ 14 - 41
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/library/AbstractDefaultFeatureValueProvider.java

@@ -10,22 +10,22 @@
  */
 package org.yakindu.sct.generator.core.library;
 
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.yakindu.sct.generator.core.GeneratorActivator;
+import org.yakindu.sct.generator.core.filesystem.ISCTWorkspaceAccess;
 import org.yakindu.sct.model.sgen.FeatureConfiguration;
 import org.yakindu.sct.model.sgen.FeatureParameter;
 import org.yakindu.sct.model.sgen.FeatureParameterValue;
 import org.yakindu.sct.model.sgen.FeatureType;
 import org.yakindu.sct.model.sgen.SGenFactory;
 
+import com.google.inject.Inject;
+
 /**
  * 
  * @author andreas muelder - Initial contribution and API
@@ -34,6 +34,9 @@ import org.yakindu.sct.model.sgen.SGenFactory;
 public abstract class AbstractDefaultFeatureValueProvider implements IDefaultFeatureValueProvider {
 
 	protected static final SGenFactory factory = SGenFactory.eINSTANCE;
+	
+	@Inject
+	protected ISCTWorkspaceAccess access;
 
 	protected abstract void setDefaultValue(FeatureType featureType, FeatureParameterValue parameterValue,
 			EObject contextElement);
@@ -64,8 +67,12 @@ public abstract class AbstractDefaultFeatureValueProvider implements IDefaultFea
 		return result;
 	}
 
-	protected IProject getProject(EObject contextElement) {
-		return WorkspaceSynchronizer.getFile(contextElement.eResource()).getProject();
+	protected String getProjectName(EObject contextElement) {
+		URI uri = EcoreUtil.getURI(contextElement);
+		if (uri.isPlatformResource() && uri.segmentCount() > 1) {
+			return uri.segment(1); // 0 is resource
+		}
+		return "ProjectName";
 	}
 
 	protected IStatus error(String msg) {
@@ -75,38 +82,4 @@ public abstract class AbstractDefaultFeatureValueProvider implements IDefaultFea
 	protected IStatus warning(String msg) {
 		return new Status(IStatus.WARNING, GeneratorActivator.PLUGIN_ID, msg);
 	}
-
-	protected boolean projectExists(String value) {
-		try {
-			return ResourcesPlugin.getWorkspace().getRoot().getProject(value).exists();
-		} catch (IllegalArgumentException e) {
-			return false;
-		}
-	}
-
-	protected boolean projectOpened(String value) {
-		try {
-			return ResourcesPlugin.getWorkspace().getRoot().getProject(value).isOpen();
-		} catch (IllegalArgumentException e) {
-			return false;
-		}
-	}
-
-	protected boolean folderExists(String projectName, String folderPath) {
-			try {
-				IPath workspaceRelativePath = Path.fromPortableString(projectName).append(folderPath);
-				return ResourcesPlugin.getWorkspace().getRoot().exists(workspaceRelativePath);
-			} catch (IllegalArgumentException e) {
-				return false;
-			}
-	}
-
-	protected boolean fileExists(String projectName, String folderPath) {
-		try {
-			return ResourcesPlugin.getWorkspace().getRoot().getProject(projectName).getFile(new Path(folderPath))
-					.exists();
-		} catch (IllegalArgumentException e) {
-			return false;
-		}
-	}
 }

+ 14 - 7
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/library/impl/CoreLibraryDefaultFeatureValueProvider.java

@@ -10,6 +10,14 @@
  */
 package org.yakindu.sct.generator.core.library.impl;
 
+import static org.yakindu.sct.generator.core.library.ICoreLibraryConstants.DEBUG_FEATURE_DUMP_SEXEC;
+import static org.yakindu.sct.generator.core.library.ICoreLibraryConstants.LIBRARY_NAME;
+import static org.yakindu.sct.generator.core.library.ICoreLibraryConstants.LICENSE_TEXT;
+import static org.yakindu.sct.generator.core.library.ICoreLibraryConstants.OUTLET_FEATURE_API_TARGET_FOLDER;
+import static org.yakindu.sct.generator.core.library.ICoreLibraryConstants.OUTLET_FEATURE_LIBRARY_TARGET_FOLDER;
+import static org.yakindu.sct.generator.core.library.ICoreLibraryConstants.OUTLET_FEATURE_TARGET_FOLDER;
+import static org.yakindu.sct.generator.core.library.ICoreLibraryConstants.OUTLET_FEATURE_TARGET_PROJECT;
+
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.emf.ecore.EObject;
@@ -18,7 +26,6 @@ import org.yakindu.sct.model.sgen.BoolLiteral;
 import org.yakindu.sct.model.sgen.FeatureParameterValue;
 import org.yakindu.sct.model.sgen.FeatureType;
 import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
-import static org.yakindu.sct.generator.core.library.ICoreLibraryConstants.*;
 
 /**
  * 
@@ -26,7 +33,7 @@ import static org.yakindu.sct.generator.core.library.ICoreLibraryConstants.*;
  * @author Alexander Nyßen - Additions for issue #191.
  */
 public class CoreLibraryDefaultFeatureValueProvider extends AbstractDefaultFeatureValueProvider {
-
+ 
 	public boolean isProviderFor(FeatureTypeLibrary library) {
 		return LIBRARY_NAME.equals(library.getName());
 	}
@@ -40,7 +47,7 @@ public class CoreLibraryDefaultFeatureValueProvider extends AbstractDefaultFeatu
 		} else if (OUTLET_FEATURE_LIBRARY_TARGET_FOLDER.equals(parameterName)) {
 			parameterValue.setValue("src");
 		} else if (OUTLET_FEATURE_TARGET_PROJECT.equals(parameterName)) {
-			parameterValue.setValue(getProject(contextElement).getName());
+			parameterValue.setValue(getProjectName(contextElement));
 		} else if (LICENSE_TEXT.equals(parameterName)) {
 			parameterValue.setValue("Enter license text here");
 		} else if (DEBUG_FEATURE_DUMP_SEXEC.equals(parameterName)) {
@@ -50,10 +57,10 @@ public class CoreLibraryDefaultFeatureValueProvider extends AbstractDefaultFeatu
 
 	public IStatus validateParameterValue(FeatureParameterValue parameterValue) {
 		String parameterName = parameterValue.getParameter().getName();
-		if (OUTLET_FEATURE_TARGET_PROJECT.equals(parameterName) && !projectExists(parameterValue.getStringValue()))
+		if (OUTLET_FEATURE_TARGET_PROJECT.equals(parameterName) && !access.projectExists(parameterValue.getStringValue()))
 			return error(String.format("The Project %s does not exist.", parameterValue.getExpression()));
-		if (OUTLET_FEATURE_TARGET_PROJECT.equals(parameterName) && projectExists(parameterValue.getStringValue())
-				&& !projectOpened(parameterValue.getStringValue()))
+		if (OUTLET_FEATURE_TARGET_PROJECT.equals(parameterName) && access.projectExists(parameterValue.getStringValue())
+				&& !access.projectOpened(parameterValue.getStringValue()))
 			return error(String.format("The Project %s is not open.", parameterValue.getExpression()));
 		if (OUTLET_FEATURE_TARGET_FOLDER.equals(parameterName)
 				|| OUTLET_FEATURE_LIBRARY_TARGET_FOLDER.equals(parameterName)
@@ -61,7 +68,7 @@ public class CoreLibraryDefaultFeatureValueProvider extends AbstractDefaultFeatu
 			FeatureParameterValue targetProjectParam = parameterValue.getFeatureConfiguration()
 					.getParameterValue(OUTLET_FEATURE_TARGET_PROJECT);
 			String targetProjectName = targetProjectParam != null ? targetProjectParam.getStringValue() : null;
-			if (targetProjectName != null && !folderExists(targetProjectName, parameterValue.getStringValue())) {
+			if (targetProjectName != null && !access.folderExists(targetProjectName, parameterValue.getStringValue())) {
 				return warning(String.format("The Folder %s does not exist in Project %s",
 						parameterValue.getExpression(), targetProjectName));
 			}

+ 7 - 2
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/SGenUiModule.java

@@ -27,16 +27,17 @@ import org.eclipse.xtext.ui.resource.XtextResourceSetProvider;
 import org.eclipse.xtext.ui.shared.Access;
 import org.yakindu.base.utils.jface.help.CrossRefObjectTextHover;
 import org.yakindu.base.utils.jface.help.HelpHoverProvider;
+import org.yakindu.sct.generator.core.filesystem.ISCTWorkspaceAccess;
 import org.yakindu.sct.generator.genmodel.ui.help.SGenUserHelpDocumentationProvider;
 import org.yakindu.sct.generator.genmodel.ui.highlighting.SGenHighlightingConfiguration;
 import org.yakindu.sct.generator.genmodel.ui.highlighting.SGenSemanticHighlightingCalculator;
 import org.yakindu.sct.generator.genmodel.ui.templates.SGenTemplateProposalProvider;
+import org.yakindu.sct.generator.genmodel.ui.ws.DefaultSCTWorkspaceAccess;
 
 /**
  * Use this class to register components to be used within the IDE.
  */
-public class SGenUiModule extends
-		org.yakindu.sct.generator.genmodel.ui.AbstractSGenUiModule {
+public class SGenUiModule extends org.yakindu.sct.generator.genmodel.ui.AbstractSGenUiModule {
 	public SGenUiModule(AbstractUIPlugin plugin) {
 		super(plugin);
 	}
@@ -94,4 +95,8 @@ public class SGenUiModule extends
 		}
 	}
 
+	public Class<? extends ISCTWorkspaceAccess> bindISCTWorkspaceAccess() {
+		return DefaultSCTWorkspaceAccess.class;
+	}
+
 }

+ 15 - 23
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/quickfix/SGenQuickfixProvider.java

@@ -27,6 +27,7 @@ import org.yakindu.sct.generator.core.extensions.IGeneratorDescriptor;
 import org.yakindu.sct.generator.core.extensions.ILibraryDescriptor;
 import org.yakindu.sct.generator.core.extensions.LibraryExtensions;
 import org.yakindu.sct.generator.core.library.IDefaultFeatureValueProvider;
+import org.yakindu.sct.generator.genmodel.ui.internal.SGenActivator;
 import org.yakindu.sct.generator.genmodel.validation.SGenJavaValidator;
 import org.yakindu.sct.model.sgen.FeatureConfiguration;
 import org.yakindu.sct.model.sgen.FeatureType;
@@ -42,15 +43,11 @@ import org.yakindu.sct.model.sgen.GeneratorModel;
 public class SGenQuickfixProvider extends DefaultQuickfixProvider {
 
 	@Fix(SGenJavaValidator.CODE_REQUIRED_FEATURE)
-	public void AddRequiredFeature(final Issue issue,
-			IssueResolutionAcceptor acceptor) {
-		acceptor.accept(issue, "Add feature " + issue.getData()[0],
-				"Adds the feature " + issue.getData()[0], null,
+	public void AddRequiredFeature(final Issue issue, IssueResolutionAcceptor acceptor) {
+		acceptor.accept(issue, "Add feature " + issue.getData()[0], "Adds the feature " + issue.getData()[0], null,
 				new ISemanticModification() {
-					public void apply(EObject element,
-							IModificationContext context) throws Exception {
-						FeatureConfiguration config = getDefaultFeatureConfiguration(
-								issue, element);
+					public void apply(EObject element, IModificationContext context) throws Exception {
+						FeatureConfiguration config = getDefaultFeatureConfiguration(issue, element);
 						if (config != null) {
 							GeneratorEntry entry = (GeneratorEntry) element;
 							entry.getFeatures().add(config);
@@ -59,30 +56,25 @@ public class SGenQuickfixProvider extends DefaultQuickfixProvider {
 				});
 	}
 
-	private FeatureConfiguration getDefaultFeatureConfiguration(
-			final Issue issue, EObject element) {
-		GeneratorModel model = (GeneratorModel) EcoreUtil2
-				.getRootContainer(element);
-		
-		IGeneratorDescriptor generatorDescriptor = GeneratorExtensions
-				.getGeneratorDescriptor(model.getGeneratorId());
-		
+	private FeatureConfiguration getDefaultFeatureConfiguration(final Issue issue, EObject element) {
+		GeneratorModel model = (GeneratorModel) EcoreUtil2.getRootContainer(element);
+
+		IGeneratorDescriptor generatorDescriptor = GeneratorExtensions.getGeneratorDescriptor(model.getGeneratorId());
+
 		Iterable<ILibraryDescriptor> libraryDescriptor = LibraryExtensions
 				.getLibraryDescriptors(generatorDescriptor.getLibraryIDs());
 		for (ILibraryDescriptor desc : libraryDescriptor) {
 			ResourceSet set = new ResourceSetImpl();
 			Resource resource = set.getResource(desc.getURI(), true);
-			FeatureTypeLibrary lib = (FeatureTypeLibrary) resource
-					.getContents().get(0);
+			FeatureTypeLibrary lib = (FeatureTypeLibrary) resource.getContents().get(0);
 			EList<FeatureType> types = lib.getTypes();
 
 			for (FeatureType featureType : types) {
 				if (featureType.getName().equals(issue.getData()[0])) {
-					IDefaultFeatureValueProvider valueProvider = desc.createFeatureValueProvider();
-					if(valueProvider != null){
-						return valueProvider
-								.createDefaultFeatureConfiguration(featureType,
-										element);
+					IDefaultFeatureValueProvider valueProvider = desc.createFeatureValueProvider(SGenActivator
+							.getInstance().getInjector(SGenActivator.ORG_YAKINDU_SCT_GENERATOR_GENMODEL_SGEN));
+					if (valueProvider != null) {
+						return valueProvider.createDefaultFeatureConfiguration(featureType, element);
 					}
 				}
 			}

+ 20 - 25
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/templates/SGenTemplateProposalProvider.java

@@ -29,18 +29,19 @@ import org.yakindu.sct.generator.core.extensions.IGeneratorDescriptor;
 import org.yakindu.sct.generator.core.extensions.ILibraryDescriptor;
 import org.yakindu.sct.generator.core.extensions.LibraryExtensions;
 import org.yakindu.sct.generator.genmodel.services.SGenGrammarAccess;
+import org.yakindu.sct.generator.genmodel.ui.internal.SGenActivator;
 import org.yakindu.sct.model.sgen.FeatureType;
 import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
 import org.yakindu.sct.model.sgen.GeneratorModel;
 
 import com.google.inject.Inject;
+
 /**
  * 
  * @author andreas muelder - Initial contribution and API
  * 
  */
-public class SGenTemplateProposalProvider extends
-		DefaultTemplateProposalProvider {
+public class SGenTemplateProposalProvider extends DefaultTemplateProposalProvider {
 
 	@Inject
 	private SGenGrammarAccess gaccess;
@@ -50,53 +51,47 @@ public class SGenTemplateProposalProvider extends
 	private final ContextTypeIdHelper helper;
 
 	@Inject
-	public SGenTemplateProposalProvider(TemplateStore templateStore,
-			ContextTypeRegistry registry, ContextTypeIdHelper helper) {
+	public SGenTemplateProposalProvider(TemplateStore templateStore, ContextTypeRegistry registry,
+			ContextTypeIdHelper helper) {
 		super(templateStore, registry, helper);
 		this.helper = helper;
 	}
 
 	@Override
-	protected void createTemplates(TemplateContext templateContext,
-			ContentAssistContext context, ITemplateAcceptor acceptor) {
+	protected void createTemplates(TemplateContext templateContext, ContentAssistContext context,
+			ITemplateAcceptor acceptor) {
 		super.createTemplates(templateContext, context, acceptor);
 
 		String id = helper.getId(gaccess.getFeatureConfigurationRule());
 		if (templateContext.getContextType().getId().equals(id)) {
-			createFeatureConfigurationTemplates(templateContext, context,
-					acceptor);
+			createFeatureConfigurationTemplates(templateContext, context, acceptor);
 		}
 	}
 
-	private void createFeatureConfigurationTemplates(
-			TemplateContext templateContext, ContentAssistContext context,
+	private void createFeatureConfigurationTemplates(TemplateContext templateContext, ContentAssistContext context,
 			ITemplateAcceptor acceptor) {
-		GeneratorModel model = (GeneratorModel) EcoreUtil2
-				.getRootContainer(context.getCurrentModel());
+		GeneratorModel model = (GeneratorModel) EcoreUtil2.getRootContainer(context.getCurrentModel());
 
+		IGeneratorDescriptor generatorDescriptor = GeneratorExtensions.getGeneratorDescriptor(model.getGeneratorId());
 
-		IGeneratorDescriptor generatorDescriptor = GeneratorExtensions
-				.getGeneratorDescriptor(model.getGeneratorId());
-		
 		Iterable<ILibraryDescriptor> libraryDescriptor = LibraryExtensions
 				.getLibraryDescriptors(generatorDescriptor.getLibraryIDs());
-		
+
 		for (ILibraryDescriptor desc : libraryDescriptor) {
 			ResourceSet set = new ResourceSetImpl();
 			Resource resource = set.getResource(desc.getURI(), true);
-			FeatureTypeLibrary lib = (FeatureTypeLibrary) resource
-					.getContents().get(0);
+			FeatureTypeLibrary lib = (FeatureTypeLibrary) resource.getContents().get(0);
 			EList<FeatureType> types = lib.getTypes();
 
 			for (FeatureType featureType : types) {
-				Template template = new Template(featureType.getName()
-						+ " feature", "Creates feature "
-						+ featureType.getName(), featureType.getName(),
+				Template template = new Template(featureType.getName() + " feature",
+						"Creates feature " + featureType.getName(), featureType.getName(),
 						creator.createProposal(featureType,
-								desc.createFeatureValueProvider(),
-								context.getCurrentModel()), false);
-				TemplateProposal proposal = createProposal(template,
-						templateContext, context, getImage(template),
+								desc.createFeatureValueProvider(SGenActivator.getInstance()
+										.getInjector(SGenActivator.ORG_YAKINDU_SCT_GENERATOR_GENMODEL_SGEN)),
+								context.getCurrentModel()),
+						false);
+				TemplateProposal proposal = createProposal(template, templateContext, context, getImage(template),
 						getRelevance(template));
 				acceptor.accept(proposal);
 			}

+ 7 - 5
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/wizard/ModelCreator.java

@@ -22,6 +22,7 @@ import org.yakindu.sct.generator.core.extensions.IGeneratorDescriptor;
 import org.yakindu.sct.generator.core.extensions.ILibraryDescriptor;
 import org.yakindu.sct.generator.core.extensions.LibraryExtensions;
 import org.yakindu.sct.generator.core.library.IDefaultFeatureValueProvider;
+import org.yakindu.sct.generator.genmodel.ui.internal.SGenActivator;
 import org.yakindu.sct.model.sgen.FeatureConfiguration;
 import org.yakindu.sct.model.sgen.FeatureType;
 import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
@@ -72,10 +73,11 @@ public class ModelCreator {
 	}
 
 	private FeatureConfiguration createFeatureConfiguration(EObject object, FeatureType featureType) {
-		Iterable<ILibraryDescriptor> libraryDescriptor = LibraryExtensions.getLibraryDescriptors(descriptor
-				.getLibraryIDs());
+		Iterable<ILibraryDescriptor> libraryDescriptor = LibraryExtensions
+				.getLibraryDescriptors(descriptor.getLibraryIDs());
 		for (ILibraryDescriptor desc : libraryDescriptor) {
-			IDefaultFeatureValueProvider defaultProvider = desc.createFeatureValueProvider();
+			IDefaultFeatureValueProvider defaultProvider = desc.createFeatureValueProvider(
+					SGenActivator.getInstance().getInjector(SGenActivator.ORG_YAKINDU_SCT_GENERATOR_GENMODEL_SGEN));
 			if (defaultProvider != null && defaultProvider.isProviderFor(featureType.getLibrary())) {
 				return defaultProvider.createDefaultFeatureConfiguration(featureType, object);
 			}
@@ -85,8 +87,8 @@ public class ModelCreator {
 
 	public static List<FeatureType> getFeatureTypes(IGeneratorDescriptor descriptor) {
 		ArrayList<FeatureType> features = Lists.newArrayList();
-		Iterable<ILibraryDescriptor> libraryDescriptor = LibraryExtensions.getLibraryDescriptors(descriptor
-				.getLibraryIDs());
+		Iterable<ILibraryDescriptor> libraryDescriptor = LibraryExtensions
+				.getLibraryDescriptors(descriptor.getLibraryIDs());
 		for (ILibraryDescriptor desc : libraryDescriptor) {
 			ResourceSet set = new ResourceSetImpl();
 			Resource resource = set.getResource(desc.getURI(), true);

+ 56 - 89
plugins/org.yakindu.sct.generator.genmodel/src/org/yakindu/sct/generator/genmodel/validation/SGenJavaValidator.java

@@ -46,6 +46,8 @@ import com.google.common.base.Function;
 import com.google.common.base.Predicate;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
 
 /**
  * 
@@ -69,12 +71,13 @@ public class SGenJavaValidator extends AbstractSGenJavaValidator {
 	// Failure codes
 	public static final String CODE_REQUIRED_FEATURE = "code_req_feature";
 
+	@Inject
+	private Injector injector;
+
 	@Check
 	public void checkContentType(GeneratorEntry entry) {
-		GeneratorModel generatorModel = EcoreUtil2.getContainerOfType(entry,
-				GeneratorModel.class);
-		IGeneratorDescriptor descriptor = GeneratorExtensions
-				.getGeneratorDescriptor(generatorModel.getGeneratorId());
+		GeneratorModel generatorModel = EcoreUtil2.getContainerOfType(entry, GeneratorModel.class);
+		IGeneratorDescriptor descriptor = GeneratorExtensions.getGeneratorDescriptor(generatorModel.getGeneratorId());
 		if (descriptor == null)
 			return;
 		String contentType = entry.getContentType();
@@ -82,39 +85,32 @@ public class SGenJavaValidator extends AbstractSGenJavaValidator {
 			return;
 		}
 		if (!contentType.equals(descriptor.getContentType())) {
-			error(UNKNOWN_CONTENT_TYPE + contentType + "'",
-					SGenPackage.Literals.GENERATOR_ENTRY__CONTENT_TYPE);
+			error(UNKNOWN_CONTENT_TYPE + contentType + "'", SGenPackage.Literals.GENERATOR_ENTRY__CONTENT_TYPE);
 		}
 	}
 
 	@Check
-	public void checkParameterValueType(
-			final FeatureParameterValue parameterValue) {
+	public void checkParameterValueType(final FeatureParameterValue parameterValue) {
 		if (parameterValue == null || parameterValue.getExpression() == null)
 			return;
 		Literal value = parameterValue.getExpression();
-		ParameterTypes parameterType = parameterValue.getParameter()
-				.getParameterType();
+		ParameterTypes parameterType = parameterValue.getParameter().getParameterType();
 		switch (parameterType) {
 		case BOOLEAN:
 			if (!(value instanceof BoolLiteral))
-				error(INCOMPATIBLE_TYPE_BOOLEAN_EXPECTED,
-						SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
+				error(INCOMPATIBLE_TYPE_BOOLEAN_EXPECTED, SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
 			break;
 		case INTEGER:
 			if (!(value instanceof IntLiteral))
-				error(INCOMPATIBLE_TYPE_INTEGER_EXPECTED,
-						SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
+				error(INCOMPATIBLE_TYPE_INTEGER_EXPECTED, SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
 			break;
 		case FLOAT:
 			if (!(value instanceof RealLiteral))
-				error(INCOMPATIBLE_TYPE_FLOAT_EXPECTED,
-						SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
+				error(INCOMPATIBLE_TYPE_FLOAT_EXPECTED, SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
 			break;
 		case STRING:
 			if (!(value instanceof StringLiteral))
-				error(INCOMPATIBLE_TYPE_STRING_EXPECTED,
-						SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
+				error(INCOMPATIBLE_TYPE_STRING_EXPECTED, SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
 			break;
 		}
 	}
@@ -123,16 +119,13 @@ public class SGenJavaValidator extends AbstractSGenJavaValidator {
 	public void checkParameterValue(final FeatureParameterValue value) {
 		if (value.getExpression() == null || value.getExpression() == null)
 			return;
-		GeneratorModel model = (GeneratorModel) EcoreUtil2
-				.getRootContainer(value);
+		GeneratorModel model = (GeneratorModel) EcoreUtil2.getRootContainer(value);
 
-		IGeneratorDescriptor generatorDescriptor = GeneratorExtensions
-				.getGeneratorDescriptor(model.getGeneratorId());
+		IGeneratorDescriptor generatorDescriptor = GeneratorExtensions.getGeneratorDescriptor(model.getGeneratorId());
 
-		IDefaultFeatureValueProvider provider = LibraryExtensions
-				.getDefaultFeatureValueProvider(
-						generatorDescriptor.getLibraryIDs(), value
-								.getParameter().getFeatureType().getLibrary());
+		IDefaultFeatureValueProvider provider = LibraryExtensions.getDefaultFeatureValueProvider(
+				generatorDescriptor.getLibraryIDs(), value.getParameter().getFeatureType().getLibrary());
+		injector.injectMembers(provider);
 		IStatus status = provider.validateParameterValue(value);
 		createMarker(status);
 	}
@@ -140,40 +133,33 @@ public class SGenJavaValidator extends AbstractSGenJavaValidator {
 	private void createMarker(IStatus status) {
 		switch (status.getSeverity()) {
 		case IStatus.ERROR:
-			super.error(status.getMessage(),
-					SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
+			super.error(status.getMessage(), SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
 			break;
 		case IStatus.WARNING:
-			super.warning(status.getMessage(),
-					SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
+			super.warning(status.getMessage(), SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
 		}
 	}
 
 	@Check
 	public void checkGeneratorExists(GeneratorModel model) {
-		IGeneratorDescriptor descriptor = GeneratorExtensions
-				.getGeneratorDescriptor(model.getGeneratorId());
+		IGeneratorDescriptor descriptor = GeneratorExtensions.getGeneratorDescriptor(model.getGeneratorId());
 		if (descriptor == null) {
-			error(String.format(UNKOWN_GENERATOR + " %s!",
-					model.getGeneratorId()),
+			error(String.format(UNKOWN_GENERATOR + " %s!", model.getGeneratorId()),
 					SGenPackage.Literals.GENERATOR_MODEL__GENERATOR_ID);
 		}
 	}
 
 	@Check
-	public void checkDuplicateGeneratorEntryFeature(
-			final FeatureConfiguration config) {
+	public void checkDuplicateGeneratorEntryFeature(final FeatureConfiguration config) {
 		GeneratorEntry entry = (GeneratorEntry) config.eContainer();
-		Iterable<FeatureConfiguration> filter = Iterables.filter(
-				entry.getFeatures(), new Predicate<FeatureConfiguration>() {
+		Iterable<FeatureConfiguration> filter = Iterables.filter(entry.getFeatures(),
+				new Predicate<FeatureConfiguration>() {
 					public boolean apply(FeatureConfiguration input) {
-						return (input.getType().getName().equals(config
-								.getType().getName()));
+						return (input.getType().getName().equals(config.getType().getName()));
 					}
 				});
 		if (Iterables.size(filter) > 1) {
-			error(DUPLICATE_FEATURE,
-					SGenPackage.Literals.FEATURE_CONFIGURATION__TYPE);
+			error(DUPLICATE_FEATURE, SGenPackage.Literals.FEATURE_CONFIGURATION__TYPE);
 		}
 
 	}
@@ -181,87 +167,73 @@ public class SGenJavaValidator extends AbstractSGenJavaValidator {
 	@Check
 	public void checkDuplicateFeatureParameter(final FeatureParameterValue value) {
 		FeatureConfiguration entry = (FeatureConfiguration) value.eContainer();
-		Iterable<FeatureParameterValue> filter = Iterables.filter(
-				entry.getParameterValues(),
+		Iterable<FeatureParameterValue> filter = Iterables.filter(entry.getParameterValues(),
 				new Predicate<FeatureParameterValue>() {
 					public boolean apply(FeatureParameterValue input) {
-						return (input.getParameter().getName().equals(value
-								.getParameter().getName()));
+						return (input.getParameter().getName().equals(value.getParameter().getName()));
 					}
 				});
 		if (Iterables.size(filter) > 1) {
-			error(DUPLICATE_PARAMETER,
-					SGenPackage.Literals.FEATURE_PARAMETER_VALUE__PARAMETER);
+			error(DUPLICATE_PARAMETER, SGenPackage.Literals.FEATURE_PARAMETER_VALUE__PARAMETER);
 		}
 	}
 
 	@Check
 	public void checkRequiredFeatures(GeneratorEntry entry) {
-		GeneratorModel model = (GeneratorModel) EcoreUtil2
-				.getRootContainer(entry);
+		GeneratorModel model = (GeneratorModel) EcoreUtil2.getRootContainer(entry);
 
-		IGeneratorDescriptor generatorDescriptor = GeneratorExtensions
-				.getGeneratorDescriptor(model.getGeneratorId());
+		IGeneratorDescriptor generatorDescriptor = GeneratorExtensions.getGeneratorDescriptor(model.getGeneratorId());
 
 		Iterable<ILibraryDescriptor> libraryDescriptors = LibraryExtensions
 				.getLibraryDescriptors(generatorDescriptor.getLibraryIDs());
 
 		Iterable<FeatureType> requiredFeatures = filter(
-				concat(transform(
-						transform(libraryDescriptors, getFeatureTypeLibrary()),
-						getFeatureTypes())), isRequired());
+				concat(transform(transform(libraryDescriptors, getFeatureTypeLibrary()), getFeatureTypes())),
+				isRequired());
 		List<String> configuredTypes = Lists.newArrayList();
 		for (FeatureConfiguration featureConfiguration : entry.getFeatures()) {
 			configuredTypes.add(featureConfiguration.getType().getName());
 		}
 		for (FeatureType featureType : requiredFeatures) {
 			if (!configuredTypes.contains(featureType.getName()))
-				error(String.format(MISSING_REQUIRED_FEATURE + " %s",
-						featureType.getName()),
-						SGenPackage.Literals.GENERATOR_ENTRY__ELEMENT_REF,
-						CODE_REQUIRED_FEATURE, featureType.getName());
+				error(String.format(MISSING_REQUIRED_FEATURE + " %s", featureType.getName()),
+						SGenPackage.Literals.GENERATOR_ENTRY__ELEMENT_REF, CODE_REQUIRED_FEATURE,
+						featureType.getName());
 		}
 	}
 
 	@Check
 	public void checkDeprecatedFeatures(GeneratorEntry entry) {
 		Iterable<FeatureConfiguration> features = entry.getFeatures();
-		Iterable<FeatureType> deprecatedFeatures = filter(
-				transform(features, getFeatureType()), isDeprecated());
+		Iterable<FeatureType> deprecatedFeatures = filter(transform(features, getFeatureType()), isDeprecated());
 		for (FeatureType feature : deprecatedFeatures) {
-			warning(String.format(DEPRECATED + " %s : %s", feature.getName(),
-					feature.getComment()),
-					SGenPackage.Literals.GENERATOR_ENTRY__ELEMENT_REF,
-					feature.getName());
+			warning(String.format(DEPRECATED + " %s : %s", feature.getName(), feature.getComment()),
+					SGenPackage.Literals.GENERATOR_ENTRY__ELEMENT_REF, feature.getName());
 		}
 	}
 
 	@Check
 	public void checkRequiredParameters(FeatureConfiguration configuration) {
-		GeneratorModel model = (GeneratorModel) EcoreUtil2
-				.getRootContainer(configuration);
+		GeneratorModel model = (GeneratorModel) EcoreUtil2.getRootContainer(configuration);
 
-		IGeneratorDescriptor generatorDescriptor = GeneratorExtensions
-				.getGeneratorDescriptor(model.getGeneratorId());
+		IGeneratorDescriptor generatorDescriptor = GeneratorExtensions.getGeneratorDescriptor(model.getGeneratorId());
 
 		Iterable<ILibraryDescriptor> libraryDescriptors = LibraryExtensions
 				.getLibraryDescriptors(generatorDescriptor.getLibraryIDs());
 
 		Iterable<String> requiredParameters = transform(
-				filter(concat(transform(
-						filter(concat(transform(
-								transform(libraryDescriptors,
-										getFeatureTypeLibrary()),
-								getFeatureTypes())), hasName(configuration
-								.getType().getName())), getParmeter())),
-						isRequiredParamter()), getName());
+				filter(concat(
+						transform(
+								filter(concat(transform(transform(libraryDescriptors, getFeatureTypeLibrary()),
+										getFeatureTypes())), hasName(configuration.getType().getName())),
+								getParmeter())),
+						isRequiredParamter()),
+				getName());
 
 		List<String> configuredParameters = Lists.newArrayList();
 
-		for (FeatureParameterValue featureParameterValue : configuration
-				.getParameterValues()) {
-			configuredParameters.add(featureParameterValue.getParameter()
-					.getName());
+		for (FeatureParameterValue featureParameterValue : configuration.getParameterValues()) {
+			configuredParameters.add(featureParameterValue.getParameter().getName());
 		}
 		for (String string : requiredParameters) {
 			if (!configuredParameters.contains(string))
@@ -273,14 +245,10 @@ public class SGenJavaValidator extends AbstractSGenJavaValidator {
 	@Check
 	public void checkDeprecatedParameters(GeneratorEntry entry) {
 		Iterable<FeatureParameter> deprecatedParameters = filter(
-				concat(transform(
-						transform(entry.getFeatures(), getFeatureType()),
-						getParmeter())), isDeprecated());
+				concat(transform(transform(entry.getFeatures(), getFeatureType()), getParmeter())), isDeprecated());
 		for (FeatureParameter parameter : deprecatedParameters) {
-			warning(String.format(DEPRECATED + " %s : %s", parameter.getName(),
-					parameter.getComment()),
-					SGenPackage.Literals.GENERATOR_ENTRY__ELEMENT_REF,
-					parameter.getName());
+			warning(String.format(DEPRECATED + " %s : %s", parameter.getName(), parameter.getComment()),
+					SGenPackage.Literals.GENERATOR_ENTRY__ELEMENT_REF, parameter.getName());
 		}
 	}
 
@@ -353,8 +321,7 @@ public class SGenJavaValidator extends AbstractSGenJavaValidator {
 		return new Function<ILibraryDescriptor, FeatureTypeLibrary>() {
 
 			public FeatureTypeLibrary apply(ILibraryDescriptor from) {
-				return (FeatureTypeLibrary) new ResourceSetImpl()
-						.getResource(from.getURI(), true).getContents().get(0);
+				return (FeatureTypeLibrary) new ResourceSetImpl().getResource(from.getURI(), true).getContents().get(0);
 			}
 		};
 	}

+ 3 - 1
plugins/org.yakindu.sct.generator.runner/META-INF/MANIFEST.MF

@@ -9,6 +9,8 @@ Require-Bundle: org.eclipse.core.runtime,
  org.yakindu.sct.generator.core,
  org.yakindu.sct.generator.genmodel,
  org.yakindu.sct.commons,
- org.eclipse.jdt.core
+ org.eclipse.jdt.core,
+ org.eclipse.core.resources,
+ org.eclipse.emf.workspace
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-ActivationPolicy: lazy

+ 13 - 1
plugins/org.yakindu.sct.generator.runner/src/org/yakindu/sct/generator/runner/lib/GenericJavaLibraryDefaultValueProvider.java

@@ -14,23 +14,31 @@ import static org.yakindu.sct.generator.runner.lib.IGenericJavaFeatureConstants.
 import static org.yakindu.sct.generator.runner.lib.IGenericJavaFeatureConstants.GENERATOR_PROJECT;
 import static org.yakindu.sct.generator.runner.lib.IGenericJavaFeatureConstants.LIBRARY_NAME;
 
+import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
 import org.eclipse.jdt.core.IJavaProject;
 import org.eclipse.jdt.core.JavaCore;
 import org.eclipse.jdt.core.JavaModelException;
+import org.yakindu.sct.generator.core.filesystem.ISCTWorkspaceAccess;
 import org.yakindu.sct.generator.core.library.AbstractDefaultFeatureValueProvider;
 import org.yakindu.sct.model.sgen.FeatureParameterValue;
 import org.yakindu.sct.model.sgen.FeatureType;
 import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
 
+import com.google.inject.Inject;
+
 /**
  * 
  * @author holger willebrandt - Initial contribution and API
  */
 public class GenericJavaLibraryDefaultValueProvider extends AbstractDefaultFeatureValueProvider {
 
+	@Inject
+	protected ISCTWorkspaceAccess access;
+	
 	// (ID.)+ID
 	private static final String GENERATOR_CLASS_REGEX = "([a-zA-Z_][a-zA-Z0-9_]*\\.)+[a-zA-Z_][a-zA-Z0-9_]*"; //$NON-NLS-1$
 
@@ -52,7 +60,7 @@ public class GenericJavaLibraryDefaultValueProvider extends AbstractDefaultFeatu
 	public IStatus validateParameterValue(FeatureParameterValue parameterValue) {
 		String parameterName = parameterValue.getParameter().getName();
 		String value = parameterValue.getStringValue();
-		if (GENERATOR_PROJECT.equals(parameterName) && !projectExists(value)) {
+		if (GENERATOR_PROJECT.equals(parameterName) && !access.projectExists(value)) {
 			return error(String.format("The Project %s does not exist", value));
 		}
 		IJavaProject ijp = JavaCore.create(this.getProject(parameterValue));
@@ -69,4 +77,8 @@ public class GenericJavaLibraryDefaultValueProvider extends AbstractDefaultFeatu
 		}
 		return Status.OK_STATUS;
 	}
+
+	protected IProject getProject(EObject contextElement) {
+		return WorkspaceSynchronizer.getFile(contextElement.eResource()).getProject();
+	}
 }

+ 2 - 1
plugins/org.yakindu.sct.generator.xpand/META-INF/MANIFEST.MF

@@ -11,4 +11,5 @@ Require-Bundle: org.yakindu.sct.generator.core,
  org.eclipse.xtend.typesystem.emf,
  org.eclipse.xtend,
  org.yakindu.sct.model.stext,
- org.eclipse.xpand
+ org.eclipse.xpand,
+ org.eclipse.core.resources

+ 2 - 2
plugins/org.yakindu.sct.generator.xpand/src/org/yakindu/sct/generator/xpand/features/XpandLibraryDefaultFeatureValueProvider.java

@@ -43,7 +43,7 @@ public class XpandLibraryDefaultFeatureValueProvider extends AbstractDefaultFeat
 			parameterValue.setValue("org::yakindu::sct::generator::xpand::Main::main");
 		}
 		if (TEMPLATE_FEATURE_TEMPLATE_PROJECT.equals(parameterName)) {
-			parameterValue.setValue(getProject(contextElement).getName());
+			parameterValue.setValue(getProjectName(contextElement));
 		}
 	}
 
@@ -54,7 +54,7 @@ public class XpandLibraryDefaultFeatureValueProvider extends AbstractDefaultFeat
 				&& !parameterValue.getStringValue().matches(XPAND_TEMPLATE_PATH_REGEX)) {
 			return error("Xpand Template Path Syntax Error");
 		}
-		if (TEMPLATE_FEATURE_TEMPLATE_PROJECT.equals(parameterName) && !projectExists(value)) {
+		if (TEMPLATE_FEATURE_TEMPLATE_PROJECT.equals(parameterName) && !access.projectExists(value)) {
 			return error(String.format("The Project %s does not exist", value));
 		}
 		return Status.OK_STATUS;

+ 10 - 9
test-plugins/org.yakindu.sct.generator.csharp.test/META-INF/MANIFEST.MF

@@ -3,14 +3,15 @@ Bundle-ManifestVersion: 2
 Bundle-Name: Yakindu Statechart Tools (SCT) C# Generator Tests
 Bundle-SymbolicName: org.yakindu.sct.generator.csharp.test
 Bundle-Version: 2.5.0.qualifier
-Require-Bundle: org.yakindu.sct.test.models;bundle-version="1.0.0",
- org.junit;bundle-version="4.8.2",
- org.yakindu.sct.generator.csharp;bundle-version="2.5.0",
- org.yakindu.sct.generator.core;bundle-version="1.0.0",
- com.google.inject;bundle-version="2.0.0",
- org.eclipse.xtext.junit4;bundle-version="2.0.1",
- org.yakindu.sct.generator.genmodel;bundle-version="1.0.0",
- org.eclipse.jdt.core;bundle-version="3.7.3",
- org.eclipse.ui;bundle-version="3.7.0"
+Require-Bundle: org.yakindu.sct.test.models,
+ org.junit,
+ org.yakindu.sct.generator.csharp,
+ org.yakindu.sct.generator.core,
+ com.google.inject,
+ org.eclipse.xtext.junit4,
+ org.yakindu.sct.generator.genmodel,
+ org.eclipse.jdt.core,
+ org.eclipse.ui,
+ org.eclipse.core.resources
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-Vendor: statecharts.org

+ 2 - 1
test-plugins/org.yakindu.sct.generator.java.test/META-INF/MANIFEST.MF

@@ -11,6 +11,7 @@ Require-Bundle: org.yakindu.sct.test.models,
  org.eclipse.xtext.junit4,
  org.yakindu.sct.generator.genmodel,
  org.eclipse.jdt.core,
- org.eclipse.ui
+ org.eclipse.ui,
+ org.eclipse.core.resources
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-Vendor: statecharts.org