[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.modeling.m2m] Re: [ATL] launching a transformation programmatically using the UML2.1 metamodel

Could it be the EMF registry that did not get instantiated?
If so, how can I instantiate it?

thanks

Hugues



"Hugues Dubourg" <hdubourg@xxxxxxxxxxxxx> a écrit dans le message de news: 
fv4qq5$s3t$1@xxxxxxxxxxxxxxxxxxxx
> Thanks for your swift response Hugo,
>
>
> I tried to use the EMF registry indeed, but I specified the URI as a 
> String parameter:
>>> umlMM = 
>>> modelHandler.loadModel("uml2",mofMM,"uri:http://www.eclipse.org/uml2/2.1.0/UML";);
> I got no error message, but no result either.
>
>
> When using a new URI as you wrote:
>>umlMM = modelHandler.loadModel("uml2", mofMM, 
>>URI.createURI("http://www.eclipse.org/uml2/2.1.0/UML";));
>
> I now have a null pointer exception whose trace is (sorry it's a bit 
> long):
>
> GRAVE: java.io.FileNotFoundException: 
> http://www.eclipse.org/uml2/2.1.0/UML
>
> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl$1DiagnosticWrappedException: 
> java.io.FileNotFoundException: http://www.eclipse.org/uml2/2.1.0/UML
>
> at 
> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.handleDemandLoadException(ResourceSetImpl.java:315)
>
> at 
> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:274)
>
> at 
> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResource(ResourceSetImpl.java:397)
>
> at 
> org.eclipse.m2m.atl.drivers.emf4atl.ASMEMFModel.loadASMEMFModel(ASMEMFModel.java:331)
>
> at 
> org.eclipse.m2m.atl.engine.AtlEMFModelHandler.loadModel(AtlEMFModelHandler.java:235)
>
> at test.TestKDMtoUML.main(TestKDMtoUML.java:59)
>
> Caused by: java.io.FileNotFoundException: 
> http://www.eclipse.org/uml2/2.1.0/UML
>
> at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown 
> Source)
>
> at 
> org.eclipse.emf.ecore.resource.impl.URIHandlerImpl.createInputStream(URIHandlerImpl.java:178)
>
> at 
> org.eclipse.emf.ecore.resource.impl.ExtensibleURIConverterImpl.createInputStream(ExtensibleURIConverterImpl.java:299)
>
> at 
> org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1205)
>
> at 
> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoad(ResourceSetImpl.java:255)
>
> at 
> org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:270)
>
> ... 4 more
>
> 28 avr. 2008 17:21:39 org.eclipse.m2m.atl.engine.AtlEMFModelHandler 
> loadModel
>
> GRAVE: null
>
> java.lang.NullPointerException
>
> at 
> org.eclipse.m2m.atl.drivers.emf4atl.ASMEMFModel.adaptMetamodel(ASMEMFModel.java:368)
>
> at 
> org.eclipse.m2m.atl.drivers.emf4atl.ASMEMFModel.loadASMEMFModel(ASMEMFModel.java:341)
>
> at 
> org.eclipse.m2m.atl.engine.AtlEMFModelHandler.loadModel(AtlEMFModelHandler.java:235)
>
> at test.TestKDMtoUML.main(TestKDMtoUML.java:59)
>
>
> I guess there must a problem matching the metamodel with the given URI. Do 
> you know where this issue could come from?
>
> I keep debugging my Java code. If ever I make any further breakthrough, I 
> will let you know.
>
>
> Hugues
>
>
>
>
> "Hugo Bruneliere" <Hugo.Bruneliere@xxxxxxxxxxxxxx> a écrit dans le message 
> de news: fv4o1a$hs4$1@xxxxxxxxxxxxxxxxxxxx
>> Hi Hugues,
>>
>> Hugues Dubourg a écrit :
>>> Hello,
>>>
>>> I'd like to launch an ATL transformation from some Java code. The 
>>> transformation is KDM to UML 2.1. I've already written such a 
>>> transformation for the J2SE to KDM case which works fine.
>>>
>>> I did test the transformation using the UML21.ecore file and the EMF 
>>> registry from within the Eclipse plugin. Both case worked fine.
>>>
>>> However when calling the transformation from some piece of Java code, 
>>> nothing simply comes out. Here is what the code looks like:
>>>
>>> final AtlEMFModelHandler modelHandler = 
>>> (AtlEMFModelHandler)AtlModelHandler.getDefault(AtlModelHandler.AMH_EMF );
>>>
>>> ASMModel mofMM = modelHandler.getMof();
>>>
>>> //Get MModels
>>>
>>> try{
>>>
>>>     kdmMM = modelHandler.loadModel( "kdm", mofMM, 
>>> kdmMMurl.openStream());
>>>
>>>     umlMM = modelHandler.loadModel("uml2" , mofMM, 
>>> umlMMurl.openStream());
>>
>> Have you already tried to do something like this (loading the UML2 
>> metamodel from the EMF registry)?
>>
>>       umlMM = modelHandler.loadModel("uml2", mofMM, 
>> URI.createURI("http://www.eclipse.org/uml2/2.1.0/UML";));
>>
>>
>> Do you know exactly from which line of your program comes your error?
>>
>>
>> Best regards,
>>
>> Hugo
>>
>>>
>>> }catch (IOException e){
>>>
>>>     e.printStackTrace();
>>>
>>> }
>>>
>>> //Get the kdm Model
>>>
>>> kdmModel = modelHandler.loadModel("kdm", kdmMM , 
>>> kdmModelurl.openStream());
>>>
>>> //transform
>>>
>>> final AtlLauncher launcher = AtlLauncher.getDefault();
>>>
>>> final Map<String, ASMModel> models = new HashMap<String, ASMModel>();
>>>
>>> final Map<?, ?> asmParams = Collections.EMPTY_MAP;
>>>
>>> final List<?> superimpose = Collections.EMPTY_LIST;
>>>
>>> final Map<?, ?> options = Collections.EMPTY_MAP;
>>>
>>> final Map<?, ?> libs = Collections.EMPTY_MAP;
>>>
>>> ASMModel outputInstance = modelHandler.newModel("OUT", null, umlMM);
>>>
>>> models.put( "kdm", kdmMM );
>>>
>>> models.put( "uml2", umlMM);
>>>
>>> models.put( "IN", kdmModel );
>>>
>>> models.put( "OUT", outputInstance);
>>>
>>>
>>> launcher.launch( transformation, libs, models, asmParams, superimpose, 
>>> options );
>>>
>>> //The save code...
>>>
>>>
>>>
>>> When loading the UML metamodel from the ecore file, I got lots of 
>>> Warning like:
>>>
>>> 28 avr. 2008 15:28:38 org.eclipse.m2m.atl.drivers.emf4atl.ASMEMFModel 
>>> addReferencedExtentsFor
>>>
>>> ATTENTION: Resource for org.eclipse.emf.ecore.impl.EClassImpl@cdb06e 
>>> (eProxyURI: 
>>> platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EModelElement) 
>>> is null; cannot be referenced
>>>
>>>
>>>
>>> I tried loading the UML metamodel from the EMF registry using:
>>>
>>> umlMM = 
>>> modelHandler.loadModel("uml2",mofMM,"uri:http://www.eclipse.org/uml2/2.1.0/UML";);
>>>
>>> I then don't have any warning but still no result.
>>>
>>> What am I doing wrong?
>>>
>>> Thanks a lot
>>>
>>>
>>>
>>> Hugues Dubourg
>>>
>>>
>>
>>
>> -- 
>> --------------------------------------------------------
>> Hugo Bruneliere - R&D Engineer
>> ATLAS Group (INRIA & LINA) - University of Nantes
>> 2, rue de la Houssiniere
>> 44322 Nantes Cedex 3 - France
>> office +33 2 51 12 58 10 /\ cell.+33 6 07 42 45 30
>> EMail: Hugo.Bruneliere@xxxxxxxxxxxxxx
>> http://www.sciences.univ-nantes.fr/lina/atl/
>> -------------------------------------------------------- 
>
>