]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.project/src/org/simantics/project/management/PlatformUtil.java
Simupedia tuning step 2
[simantics/platform.git] / bundles / org.simantics.project / src / org / simantics / project / management / PlatformUtil.java
index 2f94ff967bdcc2c89b82ecb954468ddafac91407..a783acbad6e421fbc0f7e272f2a35e1ccafe7590 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();
@@ -482,8 +478,19 @@ public class PlatformUtil {
        }
 
        private static boolean isImmutable(Bundle bundle) {
-               String immutable = (String) bundle.getHeaders().get("Immutable");
-               return immutable != null ? "true".equals(immutable) : true;
+        String immutable = (String) bundle.getHeaders().get("Immutable");
+        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 {