X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.modeling%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2FCompilePGraphs.java;h=10e23c65bbd72340277652d8c9618ab4f7032147;hb=76061fee3ffb1b66ed4d78ce711ab44f38b7ffdf;hp=9b620c2f7c55e39e0d789b6d926759b8939d475a;hpb=e3f78a075fb589c0c940f6e13d92a45a39a3ac0f;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 9b620c2f7..10e23c65b 100644 --- a/bundles/org.simantics.modeling/src/org/simantics/modeling/CompilePGraphs.java +++ b/bundles/org.simantics.modeling/src/org/simantics/modeling/CompilePGraphs.java @@ -89,21 +89,10 @@ public class CompilePGraphs { final Collection sources = new ArrayList<>(); Collection dependencies = new ArrayList<>(); - for (Bundle b : Activator.getContext().getBundles()) { - 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); - } - } - - final TransferableGraph1 thisOntology = Simantics.sync(new UniqueRead() { + final Pair thisOntology = Simantics.sync(new UniqueRead>() { @Override - public TransferableGraph1 perform(ReadGraph graph) throws DatabaseException { + public Pair perform(ReadGraph graph) throws DatabaseException { Layer0 L0 = Layer0.getInstance(graph); Resource parent = graph.getSingleObject(r, L0.PartOf); @@ -130,12 +119,13 @@ public class CompilePGraphs { } }; + String uri = graph.getURI(r); SimanticsClipboardImpl clipboard = new SimanticsClipboardImpl(); ch.copyToClipboard(graph, clipboard); for (Set object : clipboard.getContents()) { TransferableGraph1 tg = ClipboardUtils.accept(graph, object, SimanticsKeys.KEY_TRANSFERABLE_GRAPH); if (tg != null) - return tg; + return Pair.make(uri, tg); } return null; @@ -145,7 +135,24 @@ public class CompilePGraphs { if (thisOntology == null) throw new DatabaseException("Failed to dump the containing ontology of " + r + " into TransferableGraph1"); - dependencies.add(thisOntology); + 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); + } + } + Simantics.sync(new ReadRequest() { @Override