[571755] Configure generated Ecore/Pivot EPackage
diff --git a/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/pivot/tests/TestOCL.java b/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/pivot/tests/TestOCL.java
index b9ca1c0..ea9c437 100644
--- a/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/pivot/tests/TestOCL.java
+++ b/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/pivot/tests/TestOCL.java
@@ -41,6 +41,7 @@
import org.eclipse.ocl.pivot.OperationCallExp;
import org.eclipse.ocl.pivot.Parameter;
import org.eclipse.ocl.pivot.PivotFactory;
+import org.eclipse.ocl.pivot.PivotPackage;
import org.eclipse.ocl.pivot.PivotTables;
import org.eclipse.ocl.pivot.Property;
import org.eclipse.ocl.pivot.Type;
@@ -54,12 +55,14 @@
import org.eclipse.ocl.pivot.internal.messages.PivotMessagesInternal;
import org.eclipse.ocl.pivot.internal.resource.ASResourceFactoryRegistry;
import org.eclipse.ocl.pivot.internal.resource.EnvironmentFactoryAdapter;
+import org.eclipse.ocl.pivot.internal.resource.StandaloneProjectMap;
import org.eclipse.ocl.pivot.internal.utilities.EnvironmentFactoryInternal;
import org.eclipse.ocl.pivot.internal.utilities.OCLInternal;
import org.eclipse.ocl.pivot.library.LibraryUnaryOperation;
import org.eclipse.ocl.pivot.messages.PivotMessages;
import org.eclipse.ocl.pivot.resource.CSResource;
import org.eclipse.ocl.pivot.resource.ProjectManager;
+import org.eclipse.ocl.pivot.resource.ProjectManager.IPackageDescriptor;
import org.eclipse.ocl.pivot.utilities.ClassUtil;
import org.eclipse.ocl.pivot.utilities.MetamodelManager;
import org.eclipse.ocl.pivot.utilities.ParserContext;
@@ -98,16 +101,24 @@
else {
this.testName = testName;
}
-// projectManager.initializeResourceSet(resourceSet); // FIXME redundant ?
EPackage.Registry packageRegistry = resourceSet.getPackageRegistry();
packageRegistry.put(org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage.eNS_URI, org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage.eINSTANCE);
packageRegistry.put(org.eclipse.uml2.codegen.ecore.genmodel.GenModelPackage.eNS_URI, org.eclipse.uml2.codegen.ecore.genmodel.GenModelPackage.eINSTANCE);
//
// http://www.eclipse.org/emf/2002/Ecore is referenced by just about any model load
- // Ecore.core is referenced from Ecore.genmodel that is used by the CG to coordinate Ecore objects with their Java classes
- // therefore suppress diagnostics about confusing usage.
+ // Ecore.core/Pivot.core is referenced from Ecore.genmodel/Pivot.genmodel that is used by the CG to coordinate
+ // Ecore/Pivot objects with their Java classes. Therefore force the Java EPackage to hide the Resource.
//
- projectManager.configureLoadFirst(resourceSet, EcorePackage.eNS_URI);
+ configureGeneratedPackage(EcorePackage.eNS_URI);
+ configureGeneratedPackage(PivotPackage.eNS_URI);
+ }
+
+ private void configureGeneratedPackage( /*@NonNull*/ String uriString) {
+ URI nsURI = URI.createURI(uriString);
+ IPackageDescriptor packageDescriptor = getProjectManager().getPackageDescriptor(nsURI);
+ if (packageDescriptor != null) {
+ packageDescriptor.configure(getResourceSet(), StandaloneProjectMap.LoadGeneratedPackageStrategy.INSTANCE, null);
+ }
}
public void addSupertype(org.eclipse.ocl.pivot.@NonNull Class aClass, org.eclipse.ocl.pivot.@NonNull Class superClass) {