fix defect 103382. JCC
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentCreationDataModelProvider.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentCreationDataModelProvider.java index 99ef114..04779d3 100644 --- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentCreationDataModelProvider.java +++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentCreationDataModelProvider.java
@@ -146,7 +146,7 @@ return status; } - private ComponentHandle computeEARHandle(){ + protected ComponentHandle computeEARHandle(){ String earProjname = (String) model.getProperty(EAR_COMPONENT_NAME); IDataModel earDM = (IDataModel) model.getProperty(NESTED_EAR_COMPONENT_CREATION_DM); @@ -438,19 +438,25 @@ } } }else if(propertyName.equals(PROJECT_NAME)){ - String projName = getDataModel().getStringProperty(IComponentCreationDataModelProperties.PROJECT_NAME); - IDataModel earDM = (IDataModel) model.getProperty(NESTED_EAR_COMPONENT_CREATION_DM); - ComponentHandle earHandle = (ComponentHandle) earDM.getProperty(EAR_COMPONENT_HANDLE); - if( earHandle != null && earHandle.getProject() != null ){ - String earProjName = earHandle.getProject().getName(); - if( earProjName.equalsIgnoreCase(projName)){ - String msg = msg = EARCreationResourceHandler.getString(EARCreationResourceHandler.EAR_PROJECTNAME_SAMEAS_MODULE); - return WTPCommonPlugin.createErrorStatus(msg); + if (!isCreatingEarComponent()) { + String projName = getDataModel().getStringProperty(IComponentCreationDataModelProperties.PROJECT_NAME); + IDataModel earDM = (IDataModel) model.getProperty(NESTED_EAR_COMPONENT_CREATION_DM); + ComponentHandle earHandle = (ComponentHandle) earDM.getProperty(EAR_COMPONENT_HANDLE); + if( earHandle != null && earHandle.getProject() != null ){ + String earProjName = earHandle.getProject().getName(); + if( earProjName.equalsIgnoreCase(projName)){ + String msg = msg = EARCreationResourceHandler.getString(EARCreationResourceHandler.EAR_PROJECTNAME_SAMEAS_MODULE); + return WTPCommonPlugin.createErrorStatus(msg); + } } } } return super.validate(propertyName); } + + protected boolean isCreatingEarComponent() { + return false; + } private IStatus validateComponentVersionProperty() { int componentVersion = model.getIntProperty(COMPONENT_VERSION);
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/EarComponentCreationDataModelProvider.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/EarComponentCreationDataModelProvider.java index ac334dd..a40fe6a 100644 --- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/EarComponentCreationDataModelProvider.java +++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/EarComponentCreationDataModelProvider.java
@@ -21,6 +21,7 @@ import org.eclipse.wst.common.componentcore.resources.ComponentHandle; import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; import org.eclipse.wst.common.frameworks.datamodel.DataModelPropertyDescriptor; +import org.eclipse.wst.common.frameworks.datamodel.IDataModel; import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation; import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin; import org.eclipse.wst.server.core.IRuntime; @@ -204,5 +205,23 @@ public DataModelPropertyDescriptor[] getValidPropertyDescriptors(String propertyName){ return super.getValidPropertyDescriptors(propertyName); } + + protected boolean isCreatingEarComponent() { + return true; + } + + protected ComponentHandle computeEARHandle(){ + String earProjname = (String) model.getProperty(COMPONENT_NAME); + + IDataModel earDM = (IDataModel) model.getProperty(NESTED_EAR_COMPONENT_CREATION_DM); + earDM.setProperty(IEarComponentCreationDataModelProperties.PROJECT_NAME, earProjname); + + ComponentHandle handle = null; + + if( earProjname != null && !earProjname.equals("") && validate(COMPONENT_NAME).isOK()){ + handle = ComponentHandle.create(ProjectUtilities.getProject(earProjname), earProjname); + } + return handle; + } }