[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.modeling.mdt.uml2] Re: Upgrade from UML2-2.2.1 to UML2-3.0.0

Although I haven't verified this, you can try simply registering the older 
nsURI against the latest UMLPackage.eINSTANCE in the package registry.  The 
automatic up-conversion to the latest version of UML should then occurr 
automatically.
Try something like 
resourceSet.getPackageRegistry().put(UML212UMLResource.UML_METAMODEL_NS_URI, 
UMLPackage.eINSTANCE);

In general, if you are having problems in "stand alone" mode, you can look 
at the extensions in the  MANIFEST.MF in org.eclipse.uml2.uml and try to 
mimic the extension point registrations that happen there.

Simply changing the nsURI in the file itself will work "most" of the time 
since little has changed between the 2.1.0 and 3.0.0 opensource versions 
however this is not recommended and could lead to problems.

The following describes what has changed: 
http://www.eclipse.org/modeling/mdt/uml2/docs/guides/UML2_3.0_Migration_Guide/guide.html

Regards,
- James.


"Tim Myer" <timezra@xxxxxxxxx> wrote in message 
news:h7jeo8$neh$1@xxxxxxxxxxxxxxxxxxxx
> Hi Scott,
> I recently had the same problem loading a UML model in a JUnit test.  I 
> did not see the same problem when the  Eclipse platform itself was 
> running.
> As a quick fix, I changed the xmlns:uml attribute to use 3.0.0 instead of 
> 2.1.0 in the .uml file itself.  Is that an option for you?
> I would be very interested in hearing a better solution....
> ---Tim---
>
> Scott wrote:
>> Hi,
>>  I?m new to this group and have the following question:
>> I have the following code working fine with Eclipse-3.4.1, EMF-2.4.1, and 
>> UML2-2.2.1.
>> public static Model initResourceSet(String inputFile){
>>  ResourceSet resourceSet = new ResourceSetImpl();
>>  resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, 
>> UMLPackage.eINSTANCE);
>> 
>> resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, 
>> UMLResource.Factory.INSTANCE);
>>  Map uriMap = resourceSet.getURIConverter().getURIMap();
>>  URI uri = 
>> URI.createURI("jar:file:/C:/Eclipse-3.4.1/plugins/org.eclipse.uml2.uml.resources_2.2.0.v200805131030.jar!/"); 
>> uriMap.put(URI.createURI(UMLResource.LIBRARIES_PATHMAP), 
>> uri.appendSegment("libraries").appendSegment(""));
>>  uriMap.put(URI.createURI(UMLResource.METAMODELS_PATHMAP), 
>> uri.appendSegment("metamodels").appendSegment(""));
>>  uriMap.put(URI.createURI(UMLResource.PROFILES_PATHMAP), 
>> uri.appendSegment("profiles").appendSegment(""));
>>
>>  Resource res = resourceSet.getResource(URI.createURI(inputFile), true);
>>  return (Model) (res.getContents().get(0));
>> }
>>
>> Then I upgraded to Eclipse-3.5, EMF-2.5, and UML2-3.0.0, and used new 
>> jars, with only the following change:
>>
>>  URI uri = 
>> URI.createURI("jar:file:/C:/Eclipse-3.5/plugins/org.eclipse.uml2.uml.resources_3.0.0.v200906011111.jar!/"); 
>> Now, I?m getting the following error:
>>
>> Exception in thread "main" java.lang.ClassCastException: 
>> org.eclipse.emf.ecore.xml.type.impl.AnyTypeImpl cannot be cast to 
>> org.eclipse.uml2.uml.Model
>>
>> At this line: return (Model) (res.getContents().get(0));
>>
>> Am I missing something?, Can anyone please help?
>>
>>
>> Thanks,
>>
>> Scott
>>