[358144] Nested datamodel is not being set
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportDataModelProvider.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportDataModelProvider.java index 37ee68a..c91c5a5 100644 --- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportDataModelProvider.java +++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportDataModelProvider.java
@@ -16,11 +16,15 @@ */ package org.eclipse.jst.j2ee.application.internal.operations; +import java.util.ArrayList; +import java.util.List; import java.util.Set; import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive; import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException; import org.eclipse.jst.j2ee.datamodel.properties.IJavaUtilityJarImportDataModelProperties; +import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin; +import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetProjectCreationDataModelProperties; import org.eclipse.jst.j2ee.project.facet.UtilityProjectCreationDataModelProvider; import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory; import org.eclipse.wst.common.frameworks.datamodel.IDataModel; @@ -56,4 +60,24 @@ return J2EE_UTILITY_JAR_IMPORT_DMP_ID; } + + @Override + public boolean propertySet(String propertyName, Object propertyValue) { + if (EAR_PROJECT_NAME.equals(propertyName)) { + List nestedModels = new ArrayList(model.getNestedModels()); + IDataModel nestedModel = null; + for (int i = 0; i < nestedModels.size(); i++) { + nestedModel = (IDataModel) nestedModels.get(i); + try { + nestedModel.setProperty(IJ2EEFacetProjectCreationDataModelProperties.EAR_PROJECT_NAME, propertyValue); + nestedModel.setProperty(IJ2EEFacetProjectCreationDataModelProperties.ADD_TO_EAR, true); + } catch (Exception e) { + J2EEPlugin.logError(e); + } + } + return true; + } + return super.propertySet(propertyName, propertyValue); + } + }