Community
Participate
Working Groups
Build Identifier: 20091215_0627 When updating the profile version, the xmi:id of the children of the stereotype application changed. Thus, there is no way for the compare tool to identify which element from the old profile version corresponding to the element in the new version. Thus, the compare tools will present the changes as Add and Delete changes. Here is an example of UML model before the profile migration: </uml:Package> <Language:DefaultLanguage xmi:id="_44iNSVIHEd-tido4Trbspg" base_Package="_44iNMFIHEd-tido4Trbspg" defaultLanguage="C++"/> <SimpleProfile:SimpleStereotype xmi:id="_CUiNkFIIEd-tido4Trbspg" base_Class="_9IzIgFIHEd-tido4Trbspg"> <class1 xmi:id="_Dev98FIIEd-tido4Trbspg"> <class2 xmi:id="_EQ-FEFIIEd-tido4Trbspg"/> <class2 xmi:id="_ESdS0FIIEd-tido4Trbspg"/> <class2 xmi:id="_EUQCkFIIEd-tido4Trbspg"/> <class2 xmi:id="_EVmGYFIIEd-tido4Trbspg"/> </class1> <class1 xmi:id="_DixiUFIIEd-tido4Trbspg"/> <class1 xmi:id="_DkahEFIIEd-tido4Trbspg"/> <class1 xmi:id="_DmMpwFIIEd-tido4Trbspg"/> </SimpleProfile:SimpleStereotype> </xmi:XMI> After the profile migration, the xmi:id of the "<class1 " and "<class2 " in the model file are all changed to “_fbD…” </uml:Package> <Language:DefaultLanguage xmi:id="_44iNSVIHEd-tido4Trbspg" base_Package="_44iNMFIHEd-tido4Trbspg" defaultLanguage="C++"/> <SimpleProfile:SimpleStereotype xmi:id="_CUiNkFIIEd-tido4Trbspg" base_Class="_9IzIgFIHEd-tido4Trbspg"> <class1 xmi:id="_fbD30FIIEd-F6O_K_3z1gQ"> <class2 xmi:id="_fbD30VIIEd-F6O_K_3z1gQ"/> <class2 xmi:id="_fbD30lIIEd-F6O_K_3z1gQ"/> <class2 xmi:id="_fbD301IIEd-F6O_K_3z1gQ"/> <class2 xmi:id="_fbD31FIIEd-F6O_K_3z1gQ"/> </class1> <class1 xmi:id="_fbD31VIIEd-F6O_K_3z1gQ"/> <class1 xmi:id="_fbD31lIIEd-F6O_K_3z1gQ"/> <class1 xmi:id="_fbD311IIEd-F6O_K_3z1gQ"/> </SimpleProfile:SimpleStereotype> </xmi:XMI> We request that the UML profile migration process maintains the original xmi:id of the profile applications and all its descendants. In this way, the compare merge tool can properly detect whether there are any changes (add/delete/change) or no changes found. Reproducible: Always Steps to Reproduce: 1. Create an uml profile with a stereotype S1 that contains some attributes referencing the profile internal classes. 2. Release the profile and call the new version v1 3. Create an uml model and a Class. 4. Import the profile into the uml model and apply the stereotype S1 to the Class. 5. Save the uml Model and name it Model1. 6. Make a copy of Model1 and name it originalModel1. 7. Make a small changed in the uml profile. Release it and call it v2 8. Migrate the profile in Model1 from v1 to v2. Expect: There is no change in xmi:id to the profile applications and its children. Result: The xmi:id of the children of the stereotype application changed. The changes can be seen by comparing Model1 and originalModel1.
Created attachment 169536 [details] The UML Simple Profile
If I'm not mistaken, the changes for this fix would have to be somewhere in PackageOperations similar to the method: public static EList<EObject> applyProfile( org.eclipse.uml2.uml.Package package_, Profile profile) I think it would be too late for such a fix to be entertained in the Helios timeframe since we are already at RC3.
While were are not at RC3 (yet), there's essentially only one week left for critical fixes. Unfortunately I don't see this as a critical issue...
(In reply to comment #3) > While were are not at RC3 (yet), there's essentially only one week left for > critical fixes. Unfortunately I don't see this as a critical issue... I meant we have completed the RC2 build (no promote ;) ) and are working in the RC3 timeframe.
The fix has been committed and pushed to the 'master' branch in git.
A UML2 4.1 integration build containing the fix is now available.