[565498] New Servlet/Filter/Listener wizards should account for Jakarta package names
Change-Id: I185e7f0a8eada7b8476657a43c738d2bd843751e
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJavaClassWizardPage.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJavaClassWizardPage.java
index 58c0495..c34e7a0 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJavaClassWizardPage.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJavaClassWizardPage.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2003, 2015 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
@@ -23,9 +23,11 @@
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Platform;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
@@ -36,7 +38,6 @@
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.core.search.IJavaSearchConstants;
import org.eclipse.jdt.core.search.IJavaSearchScope;
-import org.eclipse.jdt.internal.ui.JavaPlugin;
import org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog;
import org.eclipse.jdt.internal.ui.viewsupport.IViewPartInputProvider;
import org.eclipse.jdt.ui.JavaElementLabelProvider;
@@ -55,8 +56,8 @@
import org.eclipse.jst.j2ee.internal.common.operations.INewJavaClassDataModelProperties;
import org.eclipse.jst.j2ee.internal.dialogs.TypeSearchEngine;
import org.eclipse.jst.j2ee.internal.plugin.J2EEUIMessages;
+import org.eclipse.jst.j2ee.internal.plugin.J2EEUIPlugin;
import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
-import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
@@ -202,6 +203,7 @@
if (project == null)
return null;
+ /*
IPackageFragmentRoot[] sources = J2EEProjectUtilities.getSourceContainers(project);
// Try and return the first source folder
if (sources.length > 0) {
@@ -211,6 +213,26 @@
return null;
}
}
+ */
+
+ IJavaProject javaProject = JavaCore.create(project);
+ if (javaProject.exists()) {
+ try {
+ IClasspathEntry[] rawClasspath = javaProject.getRawClasspath();
+ for (int i = 0; i < rawClasspath.length; i++) {
+ if (rawClasspath[i].getEntryKind() == IClasspathEntry.CPE_SOURCE) {
+ IPath sourcePath = rawClasspath[i].getPath();
+ if (sourcePath.segmentCount() > 1) {
+ return project.getWorkspace().getRoot().getFolder(sourcePath);
+ }
+ }
+ }
+ }
+ catch (JavaModelException e) {
+ J2EEUIPlugin.logError(e);
+ }
+ }
+
return null;
}
@@ -230,8 +252,9 @@
boolean result;
try {
result = project.isAccessible() &&
- project.hasNature(IModuleConstants.MODULE_NATURE_ID) &&
- JavaEEProjectUtilities.getJ2EEProjectType(project).equals(projectType);
+ project.hasNature(JavaCore.NATURE_ID);
+// project.hasNature(IModuleConstants.MODULE_NATURE_ID) &&
+// JavaEEProjectUtilities.getJ2EEProjectType(project).equals(projectType);
} catch (CoreException ce) {
result = false;
}
@@ -306,7 +329,7 @@
if (root == null || !root.getJavaProject().getProject().equals(targetProject) || root.isArchive()) {
IFolder folder = getDefaultJavaSourceFolder(targetProject);
if (folder != null)
- folderText.setText(folder.getFullPath().toOSString());
+ folderText.setText(folder.getFullPath().toString());
} else {
folderText.setText(root.getPath().toString());
}
@@ -701,7 +724,7 @@
jelem = projects[0];
}
} catch (JavaModelException e) {
- JavaPlugin.log(e);
+ J2EEUIPlugin.logError(e);
}
}
return jelem;
diff --git a/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/NewListenerClassDataModelProvider.java b/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/NewListenerClassDataModelProvider.java
index 2657046..9ada982 100644
--- a/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/NewListenerClassDataModelProvider.java
+++ b/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/NewListenerClassDataModelProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2021 SAP AG and others.
+ * Copyright (c) 2007, 2022 SAP AG 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
@@ -149,16 +149,20 @@
Object value = model.getProperty(INTERFACES);
if (value != null && (value instanceof List)) {
List interfaces = (List) value;
- for (String iface : LISTENER_INTERFACES) {
- if (interfaces.contains(iface)) {
- atLeastOneSelected = true;
- break;
+ if (projectUsesJakartaPackages()) {
+ for (String iface : JAKARTA_LISTENER_INTERFACES) {
+ if (interfaces.contains(iface)) {
+ atLeastOneSelected = true;
+ break;
+ }
}
}
- for (String iface : JAKARTA_LISTENER_INTERFACES) {
- if (interfaces.contains(iface)) {
- atLeastOneSelected = true;
- break;
+ else {
+ for (String iface : LISTENER_INTERFACES) {
+ if (interfaces.contains(iface)) {
+ atLeastOneSelected = true;
+ break;
+ }
}
}
}