]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/util/RuntimeEnvironmentRequest2.java
Automatically import also SCLMain modules of dependent index roots
[simantics/platform.git] / bundles / org.simantics.db.layer0 / src / org / simantics / db / layer0 / util / RuntimeEnvironmentRequest2.java
index c51428f2f8087758621d9396e6d6bad5f3cbd138..28d18e50772ece99c914c7069ce73ad89e3bd9e6 100644 (file)
@@ -7,6 +7,7 @@ import org.simantics.db.Resource;
 import org.simantics.db.common.request.BinaryRead;
 import org.simantics.db.common.request.ObjectsWithType;
 import org.simantics.db.common.request.ParametrizedPrimitiveRead;
+import org.simantics.db.common.utils.CommonDBUtils;
 import org.simantics.db.exception.DatabaseException;
 import org.simantics.db.layer0.internal.SimanticsInternal;
 import org.simantics.db.procedure.Listener;
@@ -122,9 +123,15 @@ public class RuntimeEnvironmentRequest2 extends BinaryRead<Resource, Resource, R
             // `parameter` is optional and can be null for e.g. procedural user components
         }
 
-        Resource mainModule = Layer0Utils.getPossibleChild(graph, parameter2, "SCLMain");
-        if(mainModule != null)
+        Resource mainModule = CommonDBUtils.getPossibleChild(graph, parameter2, "SCLMain");
+        if(mainModule != null) {
             environmentSpecification.importModule(graph.getURI(mainModule), "");
+            for(Resource l : graph.getObjects(parameter2, L0.IsLinkedTo)) {
+                mainModule = CommonDBUtils.getPossibleChild(graph, l, "SCLMain");
+                if(mainModule != null)
+                    environmentSpecification.importModule(graph.getURI(mainModule), "");
+            }
+        }
 
         return graph.syncRequest(new ParametrizedPrimitiveRead<EnvironmentSpecification, RuntimeEnvironment>(environmentSpecification) {