[370780] Utility and web fragment modules are imported with latest version of Java facet, and not with the latest version supported by runtime
diff --git a/plugins/org.eclipse.jst.j2ee.core/archive/org/eclipse/jst/jee/util/internal/JavaEEQuickPeek.java b/plugins/org.eclipse.jst.j2ee.core/archive/org/eclipse/jst/jee/util/internal/JavaEEQuickPeek.java index 6a7b598..9c2853a 100644 --- a/plugins/org.eclipse.jst.j2ee.core/archive/org/eclipse/jst/jee/util/internal/JavaEEQuickPeek.java +++ b/plugins/org.eclipse.jst.j2ee.core/archive/org/eclipse/jst/jee/util/internal/JavaEEQuickPeek.java
@@ -365,7 +365,7 @@ break; case WEBFRAGMENT_TYPE: - javaEEVersion = J2EEVersionConstants.WEBFRAGMENT_3_0_ID; + javaEEVersion = J2EEVersionConstants.JEE_6_0_ID; } if (javaEEVersion == UNSET) { javaEEVersion = UNKNOWN;
diff --git a/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/internal/web/archive/operations/WebComponentImportDataModelProvider.java b/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/internal/web/archive/operations/WebComponentImportDataModelProvider.java index 0fa1ed8..7441ee2 100644 --- a/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/internal/web/archive/operations/WebComponentImportDataModelProvider.java +++ b/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/internal/web/archive/operations/WebComponentImportDataModelProvider.java
@@ -124,7 +124,12 @@ @Override protected int getType() { return 0; - } + } + @Override + protected void refreshInterpretedSpecVersion(){ + updateJavaFacetVersion(); + + } }); } else{
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEArtifactImportDataModelProvider.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEArtifactImportDataModelProvider.java index a2b8d3e..7a86888 100644 --- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEArtifactImportDataModelProvider.java +++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEArtifactImportDataModelProvider.java
@@ -30,10 +30,12 @@ import org.eclipse.jst.j2ee.commonarchivecore.internal.util.ArchiveUtil; import org.eclipse.jst.j2ee.datamodel.properties.IJ2EEComponentImportDataModelProperties; import org.eclipse.jst.j2ee.internal.J2EEConstants; +import org.eclipse.jst.j2ee.internal.J2EEVersionConstants; import org.eclipse.jst.j2ee.internal.archive.ArchiveWrapper; import org.eclipse.jst.j2ee.internal.archive.JavaEEArchiveUtilities; import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin; import org.eclipse.jst.j2ee.internal.project.J2EECreationResourceHandler; +import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities; import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetConstants; import org.eclipse.jst.jee.archive.ArchiveOpenFailureException; import org.eclipse.jst.jee.archive.ArchiveOptions; @@ -305,6 +307,48 @@ } + /** + * Updates the Java Facet Version so it is compliant with the Java EE Module version + */ + protected void updateJavaFacetVersion() { + IProjectFacetVersion javaFacetVersion = null; + IRuntime runtime = (IRuntime)getProperty(IFacetProjectCreationDataModelProperties.FACET_RUNTIME); + if(runtime != null){ + if(runtime.supports(JavaFacet.VERSION_1_7)){ + javaFacetVersion = JavaFacet.VERSION_1_7; + } else if(runtime.supports(JavaFacet.VERSION_1_6)){ + javaFacetVersion = JavaFacet.VERSION_1_6; + } else if(runtime.supports(JavaFacet.VERSION_1_5)){ + javaFacetVersion = JavaFacet.VERSION_1_5; + } else { + javaFacetVersion = JavaFacet.VERSION_1_4; + } + } else { + JavaEEQuickPeek jqp = getInterpretedSpecVersion(getArchiveWrapper()); + int javaEEVersion = jqp.getJavaEEVersion(); + switch (javaEEVersion){ + case J2EEVersionConstants.J2EE_1_2_ID: + case J2EEVersionConstants.J2EE_1_3_ID: + case J2EEVersionConstants.J2EE_1_4_ID: + javaFacetVersion = JavaFacet.VERSION_1_4; + break; + case J2EEVersionConstants.JEE_5_0_ID: + javaFacetVersion = JavaFacet.VERSION_1_5; + break; + case J2EEVersionConstants.JEE_6_0_ID: + javaFacetVersion = JavaFacet.VERSION_1_6; + break; + } + } + if(javaFacetVersion != null){ + IDataModel moduleDM = model.getNestedModel(NESTED_MODEL_J2EE_COMPONENT_CREATION); + FacetDataModelMap map = (FacetDataModelMap) moduleDM.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP); + IDataModel javaFacetDataModel = map.getFacetDataModel( J2EEProjectUtilities.JAVA ); + javaFacetDataModel.setProperty(IFacetDataModelProperties.FACET_VERSION, javaFacetVersion); + updateWorkingCopyFacetVersion(moduleDM, javaFacetDataModel); + } + } + protected void updateWorkingCopyFacetVersion(IDataModel moduleDM, IDataModel facetDM) { IProjectFacetVersion facetVersion = (IProjectFacetVersion)facetDM.getProperty(IFacetDataModelProperties.FACET_VERSION); //[Bug 314162] IFacetedProjectWorkingCopy facet version is not automatically updated so it has to be done manually
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentImportDataModelProvider.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentImportDataModelProvider.java index d22fe37..a95d273 100644 --- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentImportDataModelProvider.java +++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentImportDataModelProvider.java
@@ -12,18 +12,8 @@ import java.util.Set; -import org.eclipse.jst.common.project.facet.core.JavaFacet; import org.eclipse.jst.j2ee.datamodel.properties.IJ2EEModuleImportDataModelProperties; -import org.eclipse.jst.j2ee.internal.J2EEVersionConstants; import org.eclipse.jst.j2ee.internal.archive.ArchiveWrapper; -import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities; -import org.eclipse.jst.jee.util.internal.JavaEEQuickPeek; -import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetDataModelProperties; -import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties; -import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties.FacetDataModelMap; -import org.eclipse.wst.common.frameworks.datamodel.IDataModel; -import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion; -import org.eclipse.wst.common.project.facet.core.runtime.IRuntime; /** * This dataModel is a common super class used to import J2EE Modules. @@ -50,42 +40,8 @@ /** * Updates the Java Facet Version so it is compliant with the Java EE Module version */ + @Override protected void updateJavaFacetVersion() { - IProjectFacetVersion javaFacetVersion = null; - IRuntime runtime = (IRuntime)getProperty(IFacetProjectCreationDataModelProperties.FACET_RUNTIME); - if(runtime != null){ - if(runtime.supports(JavaFacet.VERSION_1_7)){ - javaFacetVersion = JavaFacet.VERSION_1_7; - } else if(runtime.supports(JavaFacet.VERSION_1_6)){ - javaFacetVersion = JavaFacet.VERSION_1_6; - } else if(runtime.supports(JavaFacet.VERSION_1_5)){ - javaFacetVersion = JavaFacet.VERSION_1_5; - } else { - javaFacetVersion = JavaFacet.VERSION_1_4; - } - } else { - JavaEEQuickPeek jqp = getInterpretedSpecVersion(getArchiveWrapper()); - int javaEEVersion = jqp.getJavaEEVersion(); - switch (javaEEVersion){ - case J2EEVersionConstants.J2EE_1_2_ID: - case J2EEVersionConstants.J2EE_1_3_ID: - case J2EEVersionConstants.J2EE_1_4_ID: - javaFacetVersion = JavaFacet.VERSION_1_4; - break; - case J2EEVersionConstants.JEE_5_0_ID: - javaFacetVersion = JavaFacet.VERSION_1_5; - break; - case J2EEVersionConstants.JEE_6_0_ID: - javaFacetVersion = JavaFacet.VERSION_1_6; - break; - } - } - if(javaFacetVersion != null){ - IDataModel moduleDM = model.getNestedModel(NESTED_MODEL_J2EE_COMPONENT_CREATION); - FacetDataModelMap map = (FacetDataModelMap) moduleDM.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP); - IDataModel javaFacetDataModel = map.getFacetDataModel( J2EEProjectUtilities.JAVA ); - javaFacetDataModel.setProperty(IFacetDataModelProperties.FACET_VERSION, javaFacetVersion); - updateWorkingCopyFacetVersion(moduleDM, javaFacetDataModel); - } + super.updateJavaFacetVersion(); } }
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 8f3bea4..e3fc131 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
@@ -78,4 +78,10 @@ } return super.propertySet(propertyName, propertyValue); } + + @Override + protected void refreshInterpretedSpecVersion(){ + updateJavaFacetVersion(); + + } }