X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.modeling%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2FCompilePGraphs.java;h=3a12a71320a56c367d67d4819146550acbc1ce70;hb=b055bfb36cca301ceed0591028d245e152c8c32d;hp=879a57d19a637935bd7164fb03c32af6fe738088;hpb=6b5821ad728bf2f127091cb36d57b87749a6532f;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.modeling/src/org/simantics/modeling/CompilePGraphs.java b/bundles/org.simantics.modeling/src/org/simantics/modeling/CompilePGraphs.java index 879a57d19..3a12a7132 100644 --- a/bundles/org.simantics.modeling/src/org/simantics/modeling/CompilePGraphs.java +++ b/bundles/org.simantics.modeling/src/org/simantics/modeling/CompilePGraphs.java @@ -15,10 +15,8 @@ import java.util.HashMap; import java.util.Map; import java.util.Set; -import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; -import org.osgi.framework.Bundle; import org.simantics.Simantics; import org.simantics.databoard.Bindings; import org.simantics.db.ReadGraph; @@ -61,9 +59,14 @@ import org.simantics.graph.diff.TransferableGraphDelta1; import org.simantics.graph.representation.Identity; import org.simantics.graph.representation.Root; import org.simantics.graph.representation.TransferableGraph1; +import org.simantics.graph.representation.TransferableGraphUtils; import org.simantics.graphfile.ontology.GraphFileResource; import org.simantics.layer0.Layer0; import org.simantics.modeling.internal.Activator; +import org.simantics.project.management.GraphBundle; +import org.simantics.project.management.GraphBundleEx; +import org.simantics.project.management.GraphBundleRef; +import org.simantics.project.management.PlatformUtil; import org.simantics.utils.FileUtils; import org.simantics.utils.datastructures.Pair; import org.slf4j.LoggerFactory; @@ -130,7 +133,7 @@ public class CompilePGraphs { String uri = graph.getURI(r); SimanticsClipboardImpl clipboard = new SimanticsClipboardImpl(); - ch.copyToClipboard(graph, clipboard); + ch.copyToClipboard(graph, clipboard, monitor); for (Set object : clipboard.getContents()) { TransferableGraph1 tg = ClipboardUtils.accept(graph, object, SimanticsKeys.KEY_TRANSFERABLE_GRAPH); if (tg != null) @@ -141,28 +144,21 @@ public class CompilePGraphs { } }); - if (thisOntology == null) + if (thisOntology == null) throw new DatabaseException("Failed to dump the containing ontology of " + r + " into TransferableGraph1"); dependencies.add(thisOntology.second); - - for (Bundle b : Activator.getContext().getBundles()) { - String id = b.getSymbolicName(); - String name = (String) b.getHeaders().get("Bundle-Name"); - if (name == null) name = id; - if (name.equals(thisOntology.first)) - continue; - URL tg = b.getEntry("/graph.tg"); - if (tg == null) continue; - File f = url2file(FileLocator.resolve(tg), b.getSymbolicName()); - try { - dependencies.add(GraphCompiler.read(f)); - } catch (Exception e) { - throw new IOException("Failed to read compiled transferable graph as dependency: " + f, e); + + Collection tgs = PlatformUtil.getAllGraphs(); + + for (GraphBundle b : tgs) { + TransferableGraph1 tg = b.getGraph(); + Identity id = TransferableGraphUtils.getIdentity2(tg, thisOntology.first); + if(id == null) { + dependencies.add(tg); } } - Simantics.sync(new ReadRequest() { @Override public void run(ReadGraph graph) throws DatabaseException {