[158806] synching java version check
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EARComponentImportDataModelProvider.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EARComponentImportDataModelProvider.java index e946caa..a858470 100644 --- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EARComponentImportDataModelProvider.java +++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EARComponentImportDataModelProvider.java
@@ -152,6 +152,7 @@ nestedModel = (IDataModel) projectModels.get(i); nestedModel.setProperty(IFacetProjectCreationDataModelProperties.FACET_RUNTIME, propertyValue); } + fixupJavaFacets(); } } @@ -181,6 +182,7 @@ if (getJ2EEVersion() < J2EEVersionConstants.VERSION_1_3) setBooleanProperty(USE_ANNOTATIONS, false); model.notifyPropertyChange(USE_ANNOTATIONS, IDataModel.ENABLE_CHG); + fixupJavaFacets(); } else if (UTILITY_LIST.equals(propertyName)) { updateUtilityModels((List) propertyValue); } else if (USE_ANNOTATIONS.equals(propertyName)) { @@ -277,6 +279,15 @@ protected boolean forceResetOnPreserveMetaData() { return false; } + + protected void fixupJavaFacets() { + List subProjects = getSelectedModels(); + IDataModel subDataModel = null; + for (int i = 0; i < subProjects.size(); i++) { + subDataModel = (IDataModel) subProjects.get(i); + subDataModel.validateProperty(FACET_RUNTIME); + } + } public IStatus validate(String propertyName) { if (propertyName.equals(NESTED_PROJECTS_VALIDATION) || propertyName.equals(EAR_NAME_VALIDATION)) {
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 c2ebeaf..6761fea 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
@@ -259,20 +259,25 @@ } } + /** + * Calling this method will fixup the JST facet version if it is incompatible with the selected runtime + * It should be called when the Server Runtime or the Archive properties are set. + * @return + */ protected IStatus validateVersionSupportedByServer(){ - if( model.isPropertySet(FILE)){ + if( model.isPropertySet(FILE) && model.isPropertySet(IFacetProjectCreationDataModelProperties.FACET_RUNTIME)){ IDataModel projectModel = model.getNestedModel(NESTED_MODEL_J2EE_COMPONENT_CREATION); FacetDataModelMap map = (FacetDataModelMap) projectModel.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP); Collection projectFacets = (Collection)getProperty(FacetProjectCreationDataModelProvider.REQUIRED_FACETS_COLLECTION); - IRuntime runtime = (IRuntime) getProperty(IFacetProjectCreationDataModelProperties.FACET_RUNTIME); - for(Iterator iterator = projectFacets.iterator(); iterator.hasNext();){ - IDataModel facetDataModel = map.getFacetDataModel(((IProjectFacet)iterator.next()).getId()); - IProjectFacetVersion facetVersion = (IProjectFacetVersion)facetDataModel.getProperty(IFacetDataModelProperties.FACET_VERSION); - if(facetVersion.getProjectFacet().getId().equals(IModuleConstants.JST_JAVA)){ - Set set = Collections.singleton(facetVersion.getProjectFacet()); - try { - if( runtime != null ){ + IRuntime runtime = (IRuntime) getProperty(IFacetProjectCreationDataModelProperties.FACET_RUNTIME); + if(runtime != null){ + for(Iterator iterator = projectFacets.iterator(); iterator.hasNext();){ + IDataModel facetDataModel = map.getFacetDataModel(((IProjectFacet)iterator.next()).getId()); + IProjectFacetVersion facetVersion = (IProjectFacetVersion)facetDataModel.getProperty(IFacetDataModelProperties.FACET_VERSION); + if(facetVersion.getProjectFacet().getId().equals(IModuleConstants.JST_JAVA)){ + Set set = Collections.singleton(facetVersion.getProjectFacet()); + try { Set correctSet = runtime.getDefaultFacets(set); IProjectFacetVersion correctVersion = null; Iterator correctVersions = correctSet.iterator(); @@ -284,17 +289,19 @@ } if(correctVersion != null){ - facetDataModel.setProperty(IFacetDataModelProperties.FACET_VERSION, correctVersion); - facetVersion = correctVersion; + if(!facetVersion.equals(correctVersion)){ + facetDataModel.setProperty(IFacetDataModelProperties.FACET_VERSION, correctVersion); + facetVersion = correctVersion; + } } + } catch (CoreException e) { + Logger.getLogger().logError(e); } - } catch (CoreException e) { - Logger.getLogger().logError(e); } - } - - if(runtime != null && !runtime.supports(facetVersion)){ - return WTPCommonPlugin.createErrorStatus( J2EECreationResourceHandler.VERSION_NOT_SUPPORTED ); //$NON-NLS-1$ + + if(!runtime.supports(facetVersion)){ + return WTPCommonPlugin.createErrorStatus( J2EECreationResourceHandler.VERSION_NOT_SUPPORTED ); //$NON-NLS-1$ + } } } }