]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.project/src/org/simantics/project/management/PlatformUtil.java
Support ontology install option trueWhenDeployed also during development
[simantics/platform.git] / bundles / org.simantics.project / src / org / simantics / project / management / PlatformUtil.java
index 2f94ff967bdcc2c89b82ecb954468ddafac91407..8f93d24ab293d937467e78ca233a0056c5462abe 100644 (file)
@@ -325,11 +325,7 @@ public class PlatformUtil {
                AtomicReference<IOException> problem = new AtomicReference<>();
 
                Collection<GraphBundle> gbundles = Arrays.stream(getBundles())
-                               // #7806: Due to databoard Binding/Serializer construction process thread-unsafety
-                               // not even the DataContainer.readHeader invocations can run in parallel, most likely
-                               // due to recurring serializer construction for Variant datatypes.
-                               // Therefore, we must disable parallel loading for now.
-                               //.parallel()
+                               .parallel()
                                .map(b -> {
                                        try {
                                                return problem.get() == null ? getGraphs(b) : Collections.<GraphBundleEx>emptyList();
@@ -483,7 +479,18 @@ public class PlatformUtil {
 
        private static boolean isImmutable(Bundle bundle) {
                String immutable = (String) bundle.getHeaders().get("Immutable");
-               return immutable != null ? "true".equals(immutable) : true;
+               if(immutable == null)
+                       return true;
+               if("false".equals(immutable))
+                       return false;
+               if("trueWhenDeployed".equals(immutable)) {
+                       String installHint = System.getProperty("installOntologiesAsDeployed");
+                       if("true".equals(installHint))
+                               return true;
+                       else
+                               return false;
+               }
+               return true;
        }
 
        public static class TGInfo {