Refactored for extensibility
diff --git a/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/persistence/refresh/RefreshJob.java b/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/persistence/refresh/RefreshJob.java
index f497e9b..e77a084 100755
--- a/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/persistence/refresh/RefreshJob.java
+++ b/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/persistence/refresh/RefreshJob.java
@@ -14,7 +14,6 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
-import java.util.List;
 
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IResourceChangeEvent;
@@ -34,10 +33,8 @@
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.common.util.UniqueEList;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.epf.persistence.FileManager;
 import org.eclipse.epf.persistence.MultiFileResourceSetImpl;
 import org.eclipse.epf.persistence.MultiFileSaveUtil;
@@ -470,34 +467,11 @@
 	/**
 	 * Resolves the proxy and its containers
 	 * 
-	 * TODO: move this method to a utility class and make it static
-	 * 
 	 * @param proxy
 	 * @return
 	 */
 	public EObject resolve(EObject proxy) {
-		EObject resolved;
-		try {
-			resolved = EcoreUtil.resolve(proxy, resourceSet);
-		} catch (Exception e) {
-			resolved = proxy;
-		}
-		EObject container = proxy.eContainer();
-		if (resolved.eContainer() == null && container != null) {
-			if (container.eIsProxy()) {
-				container = resolve(container);
-			}
-			EReference ref = proxy.eContainmentFeature();
-			if (ref.isMany()) {
-				List values = (List) container.eGet(ref);
-				for (Iterator iter = values.iterator(); iter.hasNext(); iter
-						.next())
-					;
-			} else {
-				container.eGet(ref);
-			}
-		}
-		return resolved;
+		return PersistenceUtil.resolve(proxy, resourceSet);
 	}
 
 	public static RefreshJob getInstance() {
diff --git a/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/persistence/util/PersistenceUtil.java b/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/persistence/util/PersistenceUtil.java
index 0db2152..8d92520 100755
--- a/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/persistence/util/PersistenceUtil.java
+++ b/plugins/org.eclipse.epf.library.persistence/src/org/eclipse/epf/persistence/util/PersistenceUtil.java
@@ -15,6 +15,7 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 
 import javax.xml.parsers.DocumentBuilder;
@@ -24,7 +25,10 @@
 
 import org.eclipse.core.resources.IResource;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.epf.common.serviceability.EPFVersions;
 import org.eclipse.epf.common.serviceability.VersionUtil;
 import org.eclipse.epf.persistence.FileManager;
@@ -155,4 +159,35 @@
 		return null;
 	}
 	
+	/**
+	 * Resolves the proxy and its containers
+	 * 
+	 * @param proxy
+	 * @return
+	 */
+	public static EObject resolve(EObject proxy, ResourceSet resourceSet) {
+		EObject resolved;
+		try {
+			resolved = EcoreUtil.resolve(proxy, resourceSet);
+		} catch (Exception e) {
+			resolved = proxy;
+		}
+		EObject container = proxy.eContainer();
+		if (resolved.eContainer() == null && container != null) {
+			if (container.eIsProxy()) {
+				container = resolve(container, resourceSet);
+			}
+			EReference ref = proxy.eContainmentFeature();
+			if (ref.isMany()) {
+				List values = (List) container.eGet(ref);
+				for (Iterator iter = values.iterator(); iter.hasNext(); iter
+						.next())
+					;
+			} else {
+				container.eGet(ref);
+			}
+		}
+		return resolved;
+	}
+
 }
\ No newline at end of file