Merge "Bug 535352 - Migrate the domain models from the tools repo to github/lyo.domains repo"
diff --git a/org.eclipse.lyo.oslc4j.codegenerator/src/org/eclipse/lyo/oslc4j/codegenerator/main/generateSpecification.mtl b/org.eclipse.lyo.oslc4j.codegenerator/src/org/eclipse/lyo/oslc4j/codegenerator/main/generateSpecification.mtl
index edcecb6..658bb15 100644
--- a/org.eclipse.lyo.oslc4j.codegenerator/src/org/eclipse/lyo/oslc4j/codegenerator/main/generateSpecification.mtl
+++ b/org.eclipse.lyo.oslc4j.codegenerator/src/org/eclipse/lyo/oslc4j/codegenerator/main/generateSpecification.mtl
@@ -46,7 +46,9 @@
 /]
 
 [query public relevantDomainSpecifications(aSpecification : Specification) : Set(DomainSpecification) =
-relevantResources(aSpecification)->collectNested(aResource : Resource | aResource.definingDomainSpecification())->flatten()->asSet()
+aSpecification.domainSpecifications->union(
+    relevantResources(aSpecification)->collectNested(aResource : Resource | aResource.definingDomainSpecification())->flatten()->asSet()
+)
 /]
 
 [query public relevantVocabularies(aSpecification : Specification) : Set(Vocabulary) =
diff --git a/org.eclipse.lyo.tools.codegenerator.ui/src/org/eclipse/lyo/tools/codegenerator/ui/popupMenus/DialogServices.java b/org.eclipse.lyo.tools.codegenerator.ui/src/org/eclipse/lyo/tools/codegenerator/ui/popupMenus/DialogServices.java
index fbc2051..64c80dc 100644
--- a/org.eclipse.lyo.tools.codegenerator.ui/src/org/eclipse/lyo/tools/codegenerator/ui/popupMenus/DialogServices.java
+++ b/org.eclipse.lyo.tools.codegenerator.ui/src/org/eclipse/lyo/tools/codegenerator/ui/popupMenus/DialogServices.java
@@ -6,6 +6,7 @@
 import java.io.FilenameFilter;
 import java.io.IOException;
 import java.util.Properties;
+
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.resources.ResourcesPlugin;
@@ -107,6 +108,17 @@
 				return null;
 			}
             generationPath = props.getProperty(GENERATION_PATH_PROPERTY);
+
+            if(generationPath != null && !generationPath.isEmpty()) {
+                File file = new File(generationPath);
+                if (!file.isAbsolute()) {
+                    try {
+                         generationPath = new File(modellingProjectBaseFolder, generationPath).getCanonicalPath();
+                    } catch (IOException e) {
+                        showMessage("Exception!", "Generation path " +generationPath+ " is invalid.");
+                    }
+                }
+            }
         }
 
         if (generationPath == null || generationPath.length() == 0) {