Defect 41175 Ensure that published URLs stay the same for the same
configuration when using free configuration process
diff --git a/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/realization/impl/RealizedDescriptor.java b/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/realization/impl/RealizedDescriptor.java
index 9f8740f..6229cba 100644
--- a/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/realization/impl/RealizedDescriptor.java
+++ b/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/realization/impl/RealizedDescriptor.java
@@ -24,17 +24,19 @@
import org.eclipse.epf.library.edit.util.PracticePropUtil;
import org.eclipse.epf.library.edit.util.ProcessUtil;
import org.eclipse.epf.uma.Activity;
+import org.eclipse.epf.uma.Process;
import org.eclipse.epf.uma.ContentElement;
import org.eclipse.epf.uma.Descriptor;
import org.eclipse.epf.uma.Guidance;
import org.eclipse.epf.uma.MethodConfiguration;
import org.eclipse.epf.uma.MethodElement;
+import org.eclipse.epf.uma.Role;
import org.eclipse.epf.uma.RoleDescriptor;
import org.eclipse.epf.uma.TaskDescriptor;
import org.eclipse.epf.uma.UmaPackage;
+import org.eclipse.epf.uma.WorkProduct;
import org.eclipse.epf.uma.WorkProductDescriptor;
import org.eclipse.epf.uma.ecore.util.OppositeFeature;
-import org.eclipse.epf.uma.util.ContentDescriptionFactory;
import org.eclipse.epf.uma.util.UmaUtil;
public class RealizedDescriptor extends RealizedBreakdownElement implements
@@ -262,10 +264,22 @@
if (parentAct == null) {
return processResultDescriptorList(resultDescriptorList, dFeature);
}
-
+ Descriptor referencingDes = getDescriptor();//shijin 41175
for (MethodElement me : elementSet) {
Descriptor des = (Descriptor) getMgr().getDescriptor(
- getDescriptor(), parentAct, me, dFeature);
+ referencingDes, parentAct, me, dFeature);
+
+ //shijin<Defect 41175 Ensure that published URLs stay the same for the same configuration when using free configuration process
+ Activity checkParentAct = parentAct;
+ while(!(checkParentAct instanceof Process)) {
+ checkParentAct = checkParentAct.getSuperActivities();
+ }
+ Process p = (Process)checkParentAct;
+ if(p.getDefaultContext() == null && (me instanceof Role || me instanceof WorkProduct)) {
+ des.setGuid(referencingDes.getGuid() + me.getGuid());
+ }
+ //>shijin 41175
+
resultDescriptorList.add(des);
}