added fix to load Amalthea models programmatically (even in case "no-load" nature is added)
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/io/AmaltheaLoader.java b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/io/AmaltheaLoader.java
index d2342f5..8e4102b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/io/AmaltheaLoader.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/io/AmaltheaLoader.java
@@ -103,7 +103,7 @@
private static ResourceSet initializeResourceSet() {
AmaltheaPackage.eINSTANCE.eClass(); // register the package
final ExtendedResourceSet resSet = new ExtendedResourceSetImpl();
- resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi", new AmaltheaResourceFactory());
+ resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi", new AmaltheaResourceFactory(true));
return resSet;
}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/io/AmaltheaWriter.java b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/io/AmaltheaWriter.java
index 50b45db..97e54be 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/io/AmaltheaWriter.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/io/AmaltheaWriter.java
@@ -98,7 +98,7 @@
private static ResourceSet initializeResourceSet() {
AmaltheaPackage.eINSTANCE.eClass(); // register the package
final ExtendedResourceSet resSet = new ExtendedResourceSetImpl();
- resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi", new AmaltheaResourceFactory());
+ resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi", new AmaltheaResourceFactory(true));
return resSet;
}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx/src/org/eclipse/app4mc/amalthea/sphinx/AmaltheaResourceFactory.java b/plugins/org.eclipse.app4mc.amalthea.sphinx/src/org/eclipse/app4mc/amalthea/sphinx/AmaltheaResourceFactory.java
index ee5cfd9..42171fd 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx/src/org/eclipse/app4mc/amalthea/sphinx/AmaltheaResourceFactory.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx/src/org/eclipse/app4mc/amalthea/sphinx/AmaltheaResourceFactory.java
@@ -29,9 +29,20 @@
public class AmaltheaResourceFactory extends XMIResourceFactoryImpl {
+ private boolean isInvokedProgrammatically=false;
+
public AmaltheaResourceFactory() {
super();
}
+
+ /**
+ * AmaltheaResourceFactory is created using this constructor in a scenario to load models programmatically (explicitly -> instead of workspace build mechanism)
+ * If the parameter to the constructor is supplied as true, by default Amalthea model file will be allowed to be loaded (irrespective of "no-load" nature)
+ * @param isInvokedProgrammatically true or false
+ */
+ public AmaltheaResourceFactory( boolean isInvokedProgrammatically) {
+ this.isInvokedProgrammatically=isInvokedProgrammatically;
+ }
/**
* Adds UTF-8 encoding to AMALTHEA resource.
@@ -64,8 +75,7 @@
*/
private boolean canLoadAmaltheaModel(final URI uri) {
-// FIXME
- if (Platform.isRunning() == false) {
+ if ((Platform.isRunning() == false) || isInvokedProgrammatically) {
return true;
}
@@ -108,4 +118,12 @@
return true;
}
+ public boolean isInvokedExplicitly() {
+ return isInvokedProgrammatically;
+ }
+
+ public void setInvokedExplicitly(boolean isInvokedExplicitly) {
+ this.isInvokedProgrammatically = isInvokedExplicitly;
+ }
+
}
diff --git a/plugins/org.eclipse.app4mc.amalthea.workflow.core/src/org/eclipse/app4mc/amalthea/workflow/component/ModelReader.java b/plugins/org.eclipse.app4mc.amalthea.workflow.core/src/org/eclipse/app4mc/amalthea/workflow/component/ModelReader.java
index 5745dae..8c5bf3c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.workflow.core/src/org/eclipse/app4mc/amalthea/workflow/component/ModelReader.java
+++ b/plugins/org.eclipse.app4mc.amalthea.workflow.core/src/org/eclipse/app4mc/amalthea/workflow/component/ModelReader.java
@@ -70,7 +70,7 @@
@Override
protected void runInternal(final Context ctx) throws WorkflowException {
final ExtendedResourceSet resSet = new ExtendedResourceSetImpl();
- resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi", new AmaltheaResourceFactory());
+ resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi", new AmaltheaResourceFactory(true));
final Copier copier = new Copier(true, true);
for (final String filename : getFileNames()) {
try {
diff --git a/plugins/org.eclipse.app4mc.amalthea.workflow.core/src/org/eclipse/app4mc/amalthea/workflow/component/ModelReader2.java b/plugins/org.eclipse.app4mc.amalthea.workflow.core/src/org/eclipse/app4mc/amalthea/workflow/component/ModelReader2.java
index 3ec8a0f..cdfc3f5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.workflow.core/src/org/eclipse/app4mc/amalthea/workflow/component/ModelReader2.java
+++ b/plugins/org.eclipse.app4mc.amalthea.workflow.core/src/org/eclipse/app4mc/amalthea/workflow/component/ModelReader2.java
@@ -55,7 +55,7 @@
@Override
protected void runInternal(final Context ctx) throws WorkflowException {
final ExtendedResourceSet resSet = new ExtendedResourceSetImpl();
- resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi", new AmaltheaResourceFactory());
+ resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi", new AmaltheaResourceFactory(true));
final Collection<Amalthea> models = new ArrayList<Amalthea>();
for (final String filename : getFileNames()) {
try {
diff --git a/plugins/org.eclipse.app4mc.amalthea.workflow.core/src/org/eclipse/app4mc/amalthea/workflow/component/ModelWriter.java b/plugins/org.eclipse.app4mc.amalthea.workflow.core/src/org/eclipse/app4mc/amalthea/workflow/component/ModelWriter.java
index 5a176c5..c730379 100644
--- a/plugins/org.eclipse.app4mc.amalthea.workflow.core/src/org/eclipse/app4mc/amalthea/workflow/component/ModelWriter.java
+++ b/plugins/org.eclipse.app4mc.amalthea.workflow.core/src/org/eclipse/app4mc/amalthea/workflow/component/ModelWriter.java
@@ -172,7 +172,7 @@
final URI tmpUri = URI.createURI(outputFilePath);
final ExtendedResourceSet resourceSet = new ExtendedResourceSetImpl();
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi",
- new AmaltheaResourceFactory());
+ new AmaltheaResourceFactory(true));
((ExtendedResourceSetImpl) resourceSet).setURIResourceMap(this.uRIResourceCache);
final Resource outResource = resourceSet.createResource(tmpUri);
((ResourceImpl) outResource).setIntrinsicIDToEObjectMap(this.IntrinsicIDToEObjectCache);
diff --git a/plugins/org.eclipse.app4mc.amalthea.workflow.mwe2/src/org/eclipse/app4mc/amalthea/workflow/mwe2/util/AmaltheaReader.java b/plugins/org.eclipse.app4mc.amalthea.workflow.mwe2/src/org/eclipse/app4mc/amalthea/workflow/mwe2/util/AmaltheaReader.java
index 5ed827f..4728479 100644
--- a/plugins/org.eclipse.app4mc.amalthea.workflow.mwe2/src/org/eclipse/app4mc/amalthea/workflow/mwe2/util/AmaltheaReader.java
+++ b/plugins/org.eclipse.app4mc.amalthea.workflow.mwe2/src/org/eclipse/app4mc/amalthea/workflow/mwe2/util/AmaltheaReader.java
@@ -67,7 +67,7 @@
protected void invokeInternal(final WorkflowContext ctx, final ProgressMonitor monitor, final Issues issues) {
this.log.info("Starting reading files...");
final ResourceSet resSet = new ResourceSetImpl();
- resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi", new AmaltheaResourceFactory());
+ resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi", new AmaltheaResourceFactory(true));
final Copier copier = new Copier(true, true);
for (final String filename : getFileNames()) {
try {
diff --git a/plugins/org.eclipse.app4mc.amalthea.workflow.mwe2/src/org/eclipse/app4mc/amalthea/workflow/mwe2/util/AmaltheaWriter.java b/plugins/org.eclipse.app4mc.amalthea.workflow.mwe2/src/org/eclipse/app4mc/amalthea/workflow/mwe2/util/AmaltheaWriter.java
index 7e55409..4608fa9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.workflow.mwe2/src/org/eclipse/app4mc/amalthea/workflow/mwe2/util/AmaltheaWriter.java
+++ b/plugins/org.eclipse.app4mc.amalthea.workflow.mwe2/src/org/eclipse/app4mc/amalthea/workflow/mwe2/util/AmaltheaWriter.java
@@ -187,7 +187,7 @@
final URI tmpUri = URI.createURI(outputFilePath);
final ResourceSet resourceSet = new ResourceSetImpl();
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi",
- new AmaltheaResourceFactory());
+ new AmaltheaResourceFactory(true));
((ResourceSetImpl) resourceSet).setURIResourceMap(this.cache2);
final Resource outResource = resourceSet.createResource(tmpUri);
((ResourceImpl) outResource).setIntrinsicIDToEObjectMap(this.cache);
diff --git a/plugins/org.eclipse.app4mc.multicore.sharelibs/src/org/eclipse/app4mc/multicore/sharelibs/UniversalHandler.java b/plugins/org.eclipse.app4mc.multicore.sharelibs/src/org/eclipse/app4mc/multicore/sharelibs/UniversalHandler.java
index 9f0cf01..dad4357 100644
--- a/plugins/org.eclipse.app4mc.multicore.sharelibs/src/org/eclipse/app4mc/multicore/sharelibs/UniversalHandler.java
+++ b/plugins/org.eclipse.app4mc.multicore.sharelibs/src/org/eclipse/app4mc/multicore/sharelibs/UniversalHandler.java
@@ -173,7 +173,7 @@
*/
public void readModels(final URI uri, final boolean copyModel) {
final ResourceSet resSet = new ResourceSetImpl();
- resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi", new AmaltheaResourceFactory());
+ resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi", new AmaltheaResourceFactory(true));
final Copier copier = new Copier(true, true);
final Collection<EObject> content;
try {
@@ -210,7 +210,7 @@
// and
// org.eclipse.app4mc.amalthea.workflow.mwe2.AmaltheaWriter#saveModel
final ResourceSet resSet = new ResourceSetImpl();
- resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi", new AmaltheaResourceFactory());
+ resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi", new AmaltheaResourceFactory(true));
((ResourceSetImpl) resSet).setURIResourceMap(this.cache2);
final Resource resource = resSet.createResource(uri);
((ResourceImpl) resource).setIntrinsicIDToEObjectMap(this.cache);