[nobug] Various fixes
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EditModel.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EditModel.java
index da2cc78..3fc4199 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EditModel.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EditModel.java
@@ -23,6 +23,7 @@
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.resources.IWorkspaceRunnable;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
@@ -392,7 +393,10 @@
 			runSaveOperation(runnable, monitor);
 		} catch (SaveFailedException ex) {
 			getSaveHandler().handleSaveFailed(ex, monitor);
-		} finally {
+		} catch (Exception ex) {
+			ex.printStackTrace();
+		}
+		finally {
 			getSaveHandler().release();
 		}
 	}
@@ -471,9 +475,9 @@
 			registry.assertAccess(accessorKey);
 	}
 
-	private void runSaveOperation(IWorkspaceRunnable runnable, IProgressMonitor monitor) throws SaveFailedException {
+	protected void runSaveOperation(IWorkspaceRunnable runnable, IProgressMonitor monitor) throws SaveFailedException {
 		try {
-			ResourcesPlugin.getWorkspace().run(runnable, monitor);
+			ResourcesPlugin.getWorkspace().run(runnable, getProject(),IWorkspace.AVOID_UPDATE,monitor);
 		} catch (CoreException e) {
 			throw new SaveFailedException(e);
 		}
diff --git a/plugins/org.eclipse.wst.common.modulecore/model/componentCore.ecore b/plugins/org.eclipse.wst.common.modulecore/model/componentCore.ecore
index 29d6aa3..dacff0c 100644
--- a/plugins/org.eclipse.wst.common.modulecore/model/componentCore.ecore
+++ b/plugins/org.eclipse.wst.common.modulecore/model/componentCore.ecore
@@ -53,6 +53,7 @@
         eType="#//IPath"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="dependencyType" lowerBound="1"
         eType="#//DependencyType"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="dependentObject" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EDataType" name="URI" instanceClassName="org.eclipse.emf.common.util.URI">
     <eAnnotations source="keywords">
diff --git a/plugins/org.eclipse.wst.common.modulecore/model/componentCore.genmodel b/plugins/org.eclipse.wst.common.modulecore/model/componentCore.genmodel
index 4f6460b..2e55524 100644
--- a/plugins/org.eclipse.wst.common.modulecore/model/componentCore.genmodel
+++ b/plugins/org.eclipse.wst.common.modulecore/model/componentCore.genmodel
@@ -4,11 +4,11 @@
     xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.wst.common.modulecore/modulecore-src"
     editDirectory="/org.eclipse.wst.common.modulecore.edit/src" editorDirectory="/org.eclipse.wst.common.modulecore.editor/src"
     modelPluginID="org.eclipse.wst.common.modulecore" runtimeJar="true" modelName="ComponentCore"
-    editPluginClass="componentcore.provider.ComponentCoreEditPlugin" editorPluginClass="componentcore.presentation.ComponentCoreEditorPlugin"
-    runtimeCompatibility="false">
+    editPluginClass="componentcore.provider.ComponentCoreEditPlugin" editorPluginClass="componentcore.presentation.ComponentCoreEditorPlugin">
   <foreignModel>componentCore.ecore</foreignModel>
-  <genPackages prefix="Componentcore" basePackage="org.eclipse.wst.common.componentcore.internal"
-      disposableProviderFactory="true" ecorePackage="componentCore.ecore#/">
+  <genPackages prefix="Componentcore" basePackage="org.eclipse.wst.common" disposableProviderFactory="true"
+      interfacePackageSuffix="internal" classPackageSuffix="internal.impl" utilityPackageSuffix="internal.util"
+      ecorePackage="componentCore.ecore#/">
     <genEnums ecoreEnum="componentCore.ecore#//DependencyType">
       <genEnumLiterals ecoreEnumLiteral="componentCore.ecore#//DependencyType/uses"/>
       <genEnumLiterals ecoreEnumLiteral="componentCore.ecore#//DependencyType/consumes"/>
@@ -42,6 +42,7 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute componentCore.ecore#//ReferencedComponent/handle"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute componentCore.ecore#//ReferencedComponent/runtimePath"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute componentCore.ecore#//ReferencedComponent/dependencyType"/>
+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference componentCore.ecore#//ReferencedComponent/dependentObject"/>
     </genClasses>
     <genClasses ecoreClass="componentCore.ecore#//ProjectComponents">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute componentCore.ecore#//ProjectComponents/projectName"/>
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ComponentcorePackage.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ComponentcorePackage.java
index 1570430..493b46a 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ComponentcorePackage.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ComponentcorePackage.java
@@ -2,7 +2,7 @@
  * <copyright>
  * </copyright>
  *
- * $Id: ComponentcorePackage.java,v 1.2 2005/04/05 03:35:37 cbridgha Exp $
+ * $Id: ComponentcorePackage.java,v 1.3 2005/09/12 02:48:31 cbridgha Exp $
  */
 package org.eclipse.wst.common.componentcore.internal;
 
@@ -25,6 +25,7 @@
  * </ul>
  * <!-- end-user-doc -->
  * @see org.eclipse.wst.common.componentcore.internal.ComponentcoreFactory
+ * @model kind="package"
  * @generated
  */
 public interface ComponentcorePackage extends EPackage{
@@ -309,13 +310,22 @@
 	int REFERENCED_COMPONENT__DEPENDENCY_TYPE = 2;
 
 	/**
+	 * The feature id for the '<em><b>Dependent Object</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCED_COMPONENT__DEPENDENT_OBJECT = 3;
+
+	/**
 	 * The number of structural features of the the '<em>Referenced Component</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REFERENCED_COMPONENT_FEATURE_COUNT = 3;
+	int REFERENCED_COMPONENT_FEATURE_COUNT = 4;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.wst.common.componentcore.internal.impl.ProjectComponentsImpl <em>Project Components</em>}' class.
@@ -634,6 +644,17 @@
 	EAttribute getReferencedComponent_DependencyType();
 
 	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.wst.common.componentcore.internal.ReferencedComponent#getDependentObject <em>Dependent Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Dependent Object</em>'.
+	 * @see org.eclipse.wst.common.componentcore.internal.ReferencedComponent#getDependentObject()
+	 * @see #getReferencedComponent()
+	 * @generated
+	 */
+	EReference getReferencedComponent_DependentObject();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.wst.common.componentcore.internal.ProjectComponents <em>Project Components</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ReferencedComponent.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ReferencedComponent.java
index 9bf9d33..e2e8128 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ReferencedComponent.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ReferencedComponent.java
@@ -36,6 +36,7 @@
  *   <li>{@link org.eclipse.wst.common.componentcore.internal.ReferencedComponent#getHandle <em>Handle</em>}</li>
  *   <li>{@link org.eclipse.wst.common.componentcore.internal.ReferencedComponent#getRuntimePath <em>Runtime Path</em>}</li>
  *   <li>{@link org.eclipse.wst.common.componentcore.internal.ReferencedComponent#getDependencyType <em>Dependency Type</em>}</li>
+ *   <li>{@link org.eclipse.wst.common.componentcore.internal.ReferencedComponent#getDependentObject <em>Dependent Object</em>}</li>
  * </ul>
  * </p>
  *
@@ -124,4 +125,30 @@
 	 */
 	void setDependencyType(DependencyType value);
 
+	/**
+	 * Returns the value of the '<em><b>Dependent Object</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Dependent Object</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Dependent Object</em>' reference.
+	 * @see #setDependentObject(EObject)
+	 * @see org.eclipse.wst.common.componentcore.internal.ComponentcorePackage#getReferencedComponent_DependentObject()
+	 * @model
+	 * @generated
+	 */
+	EObject getDependentObject();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.common.componentcore.internal.ReferencedComponent#getDependentObject <em>Dependent Object</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Dependent Object</em>' reference.
+	 * @see #getDependentObject()
+	 * @generated
+	 */
+	void setDependentObject(EObject value);
+
 } // ReferencedComponent
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentcoreFactoryImpl.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentcoreFactoryImpl.java
index f3a8fc4..0396fb8 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentcoreFactoryImpl.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentcoreFactoryImpl.java
@@ -2,7 +2,7 @@
  * <copyright>
  * </copyright>
  *
- * $Id: ComponentcoreFactoryImpl.java,v 1.2 2005/05/21 17:44:47 cbridgha Exp $
+ * $Id: ComponentcoreFactoryImpl.java,v 1.3 2005/09/12 02:48:31 cbridgha Exp $
  */
 package org.eclipse.wst.common.componentcore.internal.impl;
 
@@ -30,7 +30,7 @@
  */
 public class ComponentcoreFactoryImpl extends EFactoryImpl implements ComponentcoreFactory {
 	/**
-	 * Creates and instance of the factory.
+	 * Creates an instance of the factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentcorePackageImpl.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentcorePackageImpl.java
index ba74b31..ba96f8f 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentcorePackageImpl.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentcorePackageImpl.java
@@ -2,7 +2,7 @@
  * <copyright>
  * </copyright>
  *
- * $Id: ComponentcorePackageImpl.java,v 1.3 2005/05/21 17:44:47 cbridgha Exp $
+ * $Id: ComponentcorePackageImpl.java,v 1.4 2005/09/12 02:48:31 cbridgha Exp $
  */
 package org.eclipse.wst.common.componentcore.internal.impl;
 
@@ -374,6 +374,15 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EReference getReferencedComponent_DependentObject() {
+		return (EReference)referencedComponentEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getProjectComponents() {
 		return projectComponentsEClass;
 	}
@@ -478,6 +487,7 @@
 		createEAttribute(referencedComponentEClass, REFERENCED_COMPONENT__HANDLE);
 		createEAttribute(referencedComponentEClass, REFERENCED_COMPONENT__RUNTIME_PATH);
 		createEAttribute(referencedComponentEClass, REFERENCED_COMPONENT__DEPENDENCY_TYPE);
+		createEReference(referencedComponentEClass, REFERENCED_COMPONENT__DEPENDENT_OBJECT);
 
 		projectComponentsEClass = createEClass(PROJECT_COMPONENTS);
 		createEAttribute(projectComponentsEClass, PROJECT_COMPONENTS__PROJECT_NAME);
@@ -544,6 +554,7 @@
 		initEAttribute(getReferencedComponent_Handle(), this.getURI(), "handle", null, 1, 1, ReferencedComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getReferencedComponent_RuntimePath(), this.getIPath(), "runtimePath", null, 1, 1, ReferencedComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getReferencedComponent_DependencyType(), this.getDependencyType(), "dependencyType", null, 1, 1, ReferencedComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getReferencedComponent_DependentObject(), ecorePackage.getEObject(), null, "dependentObject", null, 0, 1, ReferencedComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(projectComponentsEClass, ProjectComponents.class, "ProjectComponents", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getProjectComponents_ProjectName(), ecorePackage.getEString(), "projectName", "", 1, 1, ProjectComponents.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ReferencedComponentImpl.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ReferencedComponentImpl.java
index 5f4e020..084b06e 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ReferencedComponentImpl.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ReferencedComponentImpl.java
@@ -2,7 +2,7 @@
  * <copyright>
  * </copyright>
  *
- * $Id: ReferencedComponentImpl.java,v 1.1 2005/04/04 07:04:59 cbridgha Exp $
+ * $Id: ReferencedComponentImpl.java,v 1.2 2005/09/12 02:48:31 cbridgha Exp $
  */
 package org.eclipse.wst.common.componentcore.internal.impl;
 
@@ -10,7 +10,10 @@
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.EObjectImpl;
 import org.eclipse.wst.common.componentcore.internal.ComponentcorePackage;
@@ -27,6 +30,7 @@
  *   <li>{@link org.eclipse.wst.common.componentcore.internal.impl.ReferencedComponentImpl#getHandle <em>Handle</em>}</li>
  *   <li>{@link org.eclipse.wst.common.componentcore.internal.impl.ReferencedComponentImpl#getRuntimePath <em>Runtime Path</em>}</li>
  *   <li>{@link org.eclipse.wst.common.componentcore.internal.impl.ReferencedComponentImpl#getDependencyType <em>Dependency Type</em>}</li>
+ *   <li>{@link org.eclipse.wst.common.componentcore.internal.impl.ReferencedComponentImpl#getDependentObject <em>Dependent Object</em>}</li>
  * </ul>
  * </p>
  *
@@ -94,6 +98,16 @@
 	protected DependencyType dependencyType = DEPENDENCY_TYPE_EDEFAULT;
 
 	/**
+	 * The cached value of the '{@link #getDependentObject() <em>Dependent Object</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDependentObject()
+	 * @generated
+	 * @ordered
+	 */
+	protected EObject dependentObject = null;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -179,6 +193,44 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EObject getDependentObject() {
+		if (dependentObject != null && dependentObject.eIsProxy()) {
+			EObject oldDependentObject = dependentObject;
+			dependentObject = (EObject)eResolveProxy((InternalEObject)dependentObject);
+			if (dependentObject != oldDependentObject) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ComponentcorePackage.REFERENCED_COMPONENT__DEPENDENT_OBJECT, oldDependentObject, dependentObject));
+			}
+		}
+		return dependentObject;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject basicGetDependentObject() {
+		return dependentObject;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDependentObject(EObject newDependentObject) {
+		EObject oldDependentObject = dependentObject;
+		dependentObject = newDependentObject;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ComponentcorePackage.REFERENCED_COMPONENT__DEPENDENT_OBJECT, oldDependentObject, dependentObject));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public Object eGet(EStructuralFeature eFeature, boolean resolve) {
 		switch (eDerivedStructuralFeatureID(eFeature)) {
 			case ComponentcorePackage.REFERENCED_COMPONENT__HANDLE:
@@ -187,6 +239,9 @@
 				return getRuntimePath();
 			case ComponentcorePackage.REFERENCED_COMPONENT__DEPENDENCY_TYPE:
 				return getDependencyType();
+			case ComponentcorePackage.REFERENCED_COMPONENT__DEPENDENT_OBJECT:
+				if (resolve) return getDependentObject();
+				return basicGetDependentObject();
 		}
 		return eDynamicGet(eFeature, resolve);
 	}
@@ -207,6 +262,9 @@
 			case ComponentcorePackage.REFERENCED_COMPONENT__DEPENDENCY_TYPE:
 				setDependencyType((DependencyType)newValue);
 				return;
+			case ComponentcorePackage.REFERENCED_COMPONENT__DEPENDENT_OBJECT:
+				setDependentObject((EObject)newValue);
+				return;
 		}
 		eDynamicSet(eFeature, newValue);
 	}
@@ -227,6 +285,9 @@
 			case ComponentcorePackage.REFERENCED_COMPONENT__DEPENDENCY_TYPE:
 				setDependencyType(DEPENDENCY_TYPE_EDEFAULT);
 				return;
+			case ComponentcorePackage.REFERENCED_COMPONENT__DEPENDENT_OBJECT:
+				setDependentObject((EObject)null);
+				return;
 		}
 		eDynamicUnset(eFeature);
 	}
@@ -244,6 +305,8 @@
 				return RUNTIME_PATH_EDEFAULT == null ? runtimePath != null : !RUNTIME_PATH_EDEFAULT.equals(runtimePath);
 			case ComponentcorePackage.REFERENCED_COMPONENT__DEPENDENCY_TYPE:
 				return dependencyType != DEPENDENCY_TYPE_EDEFAULT;
+			case ComponentcorePackage.REFERENCED_COMPONENT__DEPENDENT_OBJECT:
+				return dependentObject != null;
 		}
 		return eDynamicIsSet(eFeature);
 	}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/WTPModulesResourceFactory.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/WTPModulesResourceFactory.java
index 61af839..f13cf74 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/WTPModulesResourceFactory.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/WTPModulesResourceFactory.java
@@ -43,6 +43,14 @@
 	public WTPModulesResourceFactory(RendererFactory aRendererFactory) {
 		super(aRendererFactory);
 	}
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.ibm.etools.emf2xml.RendererFactory.Listener#updateRendererFactory(com.ibm.etools.emf2xml.RendererFactory)
+	 */
+	public void updateRendererFactory(RendererFactory newRendererFactory) {
+		//Do Nothing...   not allowed to switch
+	}
 
 	/**
 	 * @see com.ibm.etools.emf2xml.impl.TranslatorResourceFactory#createResource(URI, Renderer)
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/HRefTranslator.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/HRefTranslator.java
new file mode 100644
index 0000000..4b259d8
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/HRefTranslator.java
@@ -0,0 +1,72 @@
+package org.eclipse.wst.common.componentcore.internal.util;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.wst.common.internal.emf.resource.Translator;
+import org.eclipse.wst.common.internal.emf.resource.TranslatorPath;
+
+public class HRefTranslator extends Translator {
+
+	public HRefTranslator(String domNameAndPath, EClass eClass) {
+		super(domNameAndPath, eClass);
+		// TODO Auto-generated constructor stub
+	}
+
+	public HRefTranslator(String domNameAndPath, EStructuralFeature aFeature) {
+		super(domNameAndPath, aFeature);
+		// TODO Auto-generated constructor stub
+	}
+
+	public HRefTranslator(String domNameAndPath, EStructuralFeature aFeature,
+			EClass eClass) {
+		super(domNameAndPath, aFeature, eClass);
+		// TODO Auto-generated constructor stub
+	}
+
+	public HRefTranslator(String domNameAndPath, EStructuralFeature aFeature,
+			TranslatorPath path) {
+		super(domNameAndPath, aFeature, path);
+		// TODO Auto-generated constructor stub
+	}
+
+	public HRefTranslator(String domNameAndPath, EStructuralFeature aFeature,
+			TranslatorPath[] paths) {
+		super(domNameAndPath, aFeature, paths);
+		// TODO Auto-generated constructor stub
+	}
+
+	public HRefTranslator(String domNameAndPath, EStructuralFeature aFeature,
+			int style) {
+		super(domNameAndPath, aFeature, style);
+		// TODO Auto-generated constructor stub
+	}
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.internal.emf.resource.Translator#convertStringToValue(java.lang.String,
+	 *      org.eclipse.emf.ecore.EObject)
+	 */
+	public Object convertStringToValue(String aValue, EObject anOwner) { 
+		//Resource res = getApplicationResource()
+		//getModuleFromID(res,aValue);
+		return aValue;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.internal.emf.resource.Translator#convertValueToString(java.lang.Object,
+	 *      org.eclipse.emf.ecore.EObject)
+	 */
+	public String convertValueToString(Object aValue, EObject anOwner) { 
+		String frag = null;
+		if (((EObject)aValue).eResource() != null)
+			frag = ((EObject)aValue).eResource().getURIFragment((EObject)aValue);
+		else
+			frag = EcoreUtil.getID((EObject)aValue);
+		return frag;
+	}
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/WTPModulesTranslator.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/WTPModulesTranslator.java
index 0502dda..9620671 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/WTPModulesTranslator.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/WTPModulesTranslator.java
@@ -1,5 +1,6 @@
 package org.eclipse.wst.common.componentcore.internal.util;
 
+import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.wst.common.componentcore.internal.ComponentcorePackage;
 import org.eclipse.wst.common.internal.emf.resource.GenericTranslator;
@@ -86,11 +87,20 @@
 		result.setChildren(new Translator[] { 
 			new IPathTranslator(RUNTIME_PATH, MODULE_CORE_PKG.getReferencedComponent_RuntimePath(), DOM_ATTRIBUTE),
 			new URITranslator(HANDLE, MODULE_CORE_PKG.getReferencedComponent_Handle(), DOM_ATTRIBUTE),
+			new HRefTranslator(DEP_OBJECT,MODULE_CORE_PKG.getReferencedComponent_DependentObject()),
 			new DependencyTypeTranslator()
 		});
 		return result;
 	}
 
+	private static Translator createDepObjectTranslator(EReference afeature) {
+		GenericTranslator result = new GenericTranslator(DEP_OBJECT, afeature);
+		result.setChildren(new Translator[] { 
+				IDTranslator.INSTANCE
+		});
+		return result;
+	}
+
 	private static Translator createWBResourceTranslator(EStructuralFeature afeature) {
 		GenericTranslator result = new GenericTranslator(COMPONENT_RESOURCE, afeature);
 		result.setChildren(new Translator[] {
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/WTPModulesXmlMapperI.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/WTPModulesXmlMapperI.java
index 52592d9..1e8ec40 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/WTPModulesXmlMapperI.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/WTPModulesXmlMapperI.java
@@ -9,6 +9,8 @@
 	String META_RESOURCES = "meta-resources";//$NON-NLS-1$ 
 	String COMPONENT_TYPE_VERSION = "version";//$NON-NLS-1$ 
 	String HANDLE = "handle";//$NON-NLS-1$
+	String DEP_OBJECT = "dependent-object";//$NON-NLS-1$ 
+	String OBJECTREF = "href";//$NON-NLS-1$
 	String DEPENDENCY_TYPE = "dependency-type";//$NON-NLS-1$
 	String SOURCE_PATH = "source-path"; //$NON-NLS-1$
 	String RUNTIME_PATH = "deploy-path"; //$NON-NLS-1$
@@ -19,4 +21,5 @@
 	String PROPERTY_NAME = "name";//$NON-NLS-1$
 	String PROPERTY_VALUE = "value";//$NON-NLS-1$
 	String RESOURCE_TYPE = "resource-type";//$NON-NLS-1$
+	
 }