[579905] Prefer facet version for determining javax/jakarta package names Change-Id: Ia97ff4e2ba0f34499565025898f38c3248baf901
diff --git a/plugins/org.eclipse.jst.j2ee.web/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.j2ee.web/META-INF/MANIFEST.MF index a520673..d16c20f 100644 --- a/plugins/org.eclipse.jst.j2ee.web/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.jst.j2ee.web/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: Web Plug-in Bundle-SymbolicName: org.eclipse.jst.j2ee.web; singleton:=true -Bundle-Version: 1.2.0.qualifier +Bundle-Version: 1.2.100.qualifier Bundle-Activator: org.eclipse.jst.j2ee.internal.web.plugin.WebPlugin Bundle-Vendor: Eclipse.org Bundle-Localization: plugin @@ -41,6 +41,7 @@ org.eclipse.jst.common.frameworks;bundle-version="[1.1.0,1.2.0)", org.eclipse.wst.common.modulecore;bundle-version="[1.2.101,2.0.0)", org.eclipse.jem.util;bundle-version="[2.0.0,3.0.0)", + org.eclipse.jem;bundle-version="[2.0.0,3.0.0)", org.eclipse.wst.common.project.facet.core;bundle-version="[1.3.0,2.0.0)", org.eclipse.jst.common.project.facet.core;bundle-version="[1.3.0,2.0.0)", com.ibm.icu;bundle-version="3.8.1",
diff --git a/plugins/org.eclipse.jst.j2ee.web/pom.xml b/plugins/org.eclipse.jst.j2ee.web/pom.xml index 4a3a09e..718a789 100644 --- a/plugins/org.eclipse.jst.j2ee.web/pom.xml +++ b/plugins/org.eclipse.jst.j2ee.web/pom.xml
@@ -21,6 +21,6 @@ <groupId>org.eclipse.webtools.javaee</groupId> <artifactId>org.eclipse.jst.j2ee.web</artifactId> - <version>1.2.0-SNAPSHOT</version> + <version>1.2.100-SNAPSHOT</version> <packaging>eclipse-plugin</packaging> </project>
diff --git a/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/NewServletClassDataModelProvider.java b/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/NewServletClassDataModelProvider.java index b5dd573..3a5153b 100644 --- a/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/NewServletClassDataModelProvider.java +++ b/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/NewServletClassDataModelProvider.java
@@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2003, 2021 IBM Corporation and others. + * Copyright (c) 2003, 2022 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -477,15 +477,26 @@ */ private List getServletInterfaces() { if (interfaceList == null) { - interfaceList = new ArrayList(); - // Add minimum required list of servlet interfaces to be implemented - for (int i = 0; i < SERVLET_INTERFACES.length; i++) { - interfaceList.add(SERVLET_INTERFACES[i]); + interfaceList = new ArrayList<String>(); + if (projectUsesJakartaPackages()) { + // Add minimum required list of servlet interfaces to be implemented + interfaceList.add(IServletConstants.QUALIFIED_JAKARTA_SERVLET); + // Remove the javax.servlet.Servlet interface from the list if the + // superclass already implements it + if (ServletSupertypesValidator.isServletSuperclass(model)) { + interfaceList.remove(IServletConstants.QUALIFIED_JAKARTA_SERVLET); + } } - // Remove the javax.servlet.Servlet interface from the list if the - // superclass already implements it - if (ServletSupertypesValidator.isServletSuperclass(model)) { - interfaceList.remove(QUALIFIED_SERVLET); + else { + // Add minimum required list of servlet interfaces to be implemented + for (int i = 0; i < SERVLET_INTERFACES.length; i++) { + interfaceList.add(SERVLET_INTERFACES[i]); + } + // Remove the javax.servlet.Servlet interface from the list if the + // superclass already implements it + if (ServletSupertypesValidator.isServletSuperclass(model)) { + interfaceList.remove(QUALIFIED_SERVLET); + } } } // Return interface list @@ -524,8 +535,9 @@ if (servlets != null && !servlets.isEmpty()) { for (int i = 0; i < servlets.size(); i++) { String name = ((org.eclipse.jst.j2ee.webapplication.Servlet) servlets.get(i)).getServletName(); - if (prop.equals(name)) + if (prop.equals(name)) { exists = true; + } } } // If the servlet name already exists, throw an error @@ -542,8 +554,9 @@ if (servlets != null && !servlets.isEmpty()) { for (int i = 0; i < servlets.size(); i++) { String name = ((org.eclipse.jst.javaee.web.Servlet) servlets.get(i)).getServletName(); - if (prop.equals(name)) + if (prop.equals(name)) { exists = true; + } } } // If the servlet name already exists, throw an error
diff --git a/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/NewWebClassDataModelProvider.java b/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/NewWebClassDataModelProvider.java index 2b493b1..da95647 100644 --- a/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/NewWebClassDataModelProvider.java +++ b/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/NewWebClassDataModelProvider.java
@@ -208,11 +208,26 @@ * packages rather than the older <code>javax.*</code> packages. */ protected boolean projectUsesJakartaPackages() { + try { + String facetVersion = getJavaEEVersion(); + if (facetVersion != null && facetVersion.length() > 0) { + float f = Float.parseFloat(facetVersion); + return f >= 5; + } + } + catch (NullPointerException e) { + // not a faceted project, then + } + catch (NumberFormatException e) { + // this should never happen + WTPCommonPlugin.logError(e); + } + String projectName = getStringProperty(PROJECT_NAME); if (projectName != null && projectName.length() > 0) { IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName); if (project != null && project.isAccessible()) { - // long term, the default when otherwise indeterminate should be Jakarta + // the default when otherwise indeterminate should be Jakarta try { IJavaProject javaProject = JavaCore.create(project); if (javaProject != null && javaProject.exists()) { @@ -225,7 +240,7 @@ WTPCommonPlugin.logError(e); } try { - // check to see if it is Jakarta Servlet 5 or newer + // check to see if it is Jakarta Servlet 5 or newer, TODO: should return false on lower versions if (FacetedProjectFramework.hasProjectFacet(project, WebFacetUtils.WEB_FACET.getId(), WebFacetUtils.WEB_50.getVersionString())) { return true; } @@ -235,7 +250,7 @@ } } } - return true; + return false; } @SuppressWarnings("restriction")