[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Newsgroup Home]
|
[news.eclipse.technology.epf] EPF XMI file parsing problem
|
Hi,
I want to use activity diagram data which can define in EPF (on Activity
for example). This information are stored in diagram.xmi.
I use EMF to create an XMI parser.
The problem is around model factory initialization (relative to
org.eclipse.epf.diagram.model prefixed elements).
Xmi Parser code below :
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.ecore.util.BasicExtendedMetaData;
import org.eclipse.emf.ecore.util.ExtendedMetaData;
import org.eclipse.emf.ecore.xmi.XMLResource;
import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
import org.eclipse.epf.diagram.model.ModelPackage;
import org.eclipse.epf.uma.UmaPackage;
import org.eclipse.gmf.runtime.notation.NotationPackage;
import org.eclipse.uml2._2._1._0.uml.UmlPackage;
public class TestEFPXMIParser {
/**
* @param args
*/
public static void main(String[] args) {
// create a ResourceSet.
ResourceSet resourceSet = new ResourceSetImpl();
// initialize ResourceSet
final ExtendedMetaData extendedMetaData = new
BasicExtendedMetaData(resourceSet.getPackageRegistry());
resourceSet.getLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA,
extendedMetaData);
resourceSet.getPackageRegistry().put(UmlPackage.eNS_URI,
UmlPackage.eINSTANCE);
resourceSet.getPackageRegistry().put(NotationPackage.eNS_URI,
NotationPackage.eINSTANCE);
resourceSet.getPackageRegistry().put(ModelPackage.eNS_URI,
ModelPackage.eINSTANCE);
resourceSet.getPackageRegistry().put(UmaPackage.eNS_URI,
UmaPackage.eINSTANCE);
//System.out.println(ModelPackage.eNS_URI);
resourceSet.getPackageRegistry().put(EcorePackage.eNS_URI,
EcorePackage.eINSTANCE);
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("xmi",
new XMIResourceFactoryImpl());
URI fileURI = URI.createFileURI("resources/diagram.xmi");
Resource resource = resourceSet.getResource(fileURI, true);
System.out.println("ok");
}
}
Relative console error :
Exception in thread "main" java.lang.ExceptionInInitializerError
at
org.eclipse.epf.library.edit.internal.TngAdapterFactoryImpl.getProcessComposedAdapterFactory(Unknown
Source)
at org.eclipse.epf.library.edit.TngAdapterFactory.<clinit>(Unknown Source)
at
org.eclipse.epf.diagram.model.impl.ActivityDetailDiagramImpl.<clinit>(Unknown
Source)
at
org.eclipse.epf.diagram.model.impl.ModelFactoryImpl.createActivityDetailDiagram(Unknown
Source)
at org.eclipse.epf.diagram.model.impl.ModelFactoryImpl.create(Unknown
Source)
at
org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.createObject(XMLHelperImpl.java:870)
at
org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.createObject(XMLHelperImpl.java:919)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObjectFromFactory(XMLHandler.java:2051)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObjectByType(XMLHandler.java:1270)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.createTopObject(XMLHandler.java:1336)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.processElement(XMLHandler.java:970)
at
org.eclipse.emf.ecore.xmi.impl.XMIHandler.processElement(XMIHandler.java:87)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:953)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:684)
at
org.eclipse.emf.ecore.xmi.impl.XMIHandler.startElement(XMIHandler.java:167)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:533)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:878)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1693)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:375)
at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:179)
at
org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(XMLResourceImpl.java:180)
at
org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1354)
at
org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1155)
at
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoad(ResourceSetImpl.java:256)
at
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:271)
at
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResource(ResourceSetImpl.java:398)
at
com.prometil.epf.xmi.parser.TestEFPXMIParser.main(TestEFPXMIParser.java:42)
Caused by: java.lang.NullPointerException
at org.eclipse.epf.library.edit.Providers.<clinit>(Unknown Source)
... 32 more
First lines of XMI file :
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.1/notation"
xmlns:org.eclipse.epf.diagram.model="http://www.eclipse.org/epf/diagram/1.0.0/diagram.ecore"
xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.4/uma.ecore"
xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML">
<uml:Activity xmi:id="_QIQIMI4eEdycJJIpQMvv6A" name="Revue formelle">
...
Maybe dependency missing or something like that ...
Does anyone have an idea ?
Regards,
Sebastien

