Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNitin Dahyabhai2022-05-26 03:56:22 +0000
committerNitin Dahyabhai2022-05-26 05:42:30 +0000
commitee6f7960647fade7bb74bde9a58e8b88cc867504 (patch)
tree80fb267c17ad0c835a53c1cee9f3b96593c43e47
parentbc2082dd68b5645bc45473c7a51fc5d3ebcba8de (diff)
downloadwebtools.javaee-ee6f7960647fade7bb74bde9a58e8b88cc867504.tar.gz
webtools.javaee-ee6f7960647fade7bb74bde9a58e8b88cc867504.tar.xz
webtools.javaee-ee6f7960647fade7bb74bde9a58e8b88cc867504.zip
[565498] New Servlet/Filter/Listener wizards should account for Jakarta package names
-rw-r--r--plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/CreateFilterTemplateModel.java80
-rw-r--r--plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/CreateListenerTemplateModel.java94
-rw-r--r--plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/NewFilterClassDataModelProvider.java2
-rw-r--r--plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/AddListenerWizardPage.java180
4 files changed, 271 insertions, 85 deletions
diff --git a/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/CreateFilterTemplateModel.java b/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/CreateFilterTemplateModel.java
index 0f0ec6216..d815f2f75 100644
--- a/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/CreateFilterTemplateModel.java
+++ b/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/CreateFilterTemplateModel.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
@@ -11,18 +11,16 @@
package org.eclipse.jst.j2ee.internal.web.operations;
import static org.eclipse.jst.j2ee.internal.common.operations.INewJavaClassDataModelProperties.ABSTRACT_METHODS;
+import static org.eclipse.jst.j2ee.internal.web.operations.INewFilterClassDataModelProperties.ASYNC_SUPPORT;
import static org.eclipse.jst.j2ee.internal.web.operations.INewFilterClassDataModelProperties.DESTROY;
import static org.eclipse.jst.j2ee.internal.web.operations.INewFilterClassDataModelProperties.DO_FILTER;
import static org.eclipse.jst.j2ee.internal.web.operations.INewFilterClassDataModelProperties.FILTER_MAPPINGS;
import static org.eclipse.jst.j2ee.internal.web.operations.INewFilterClassDataModelProperties.INIT;
import static org.eclipse.jst.j2ee.internal.web.operations.INewFilterClassDataModelProperties.INIT_PARAM;
-import static org.eclipse.jst.j2ee.internal.web.operations.INewFilterClassDataModelProperties.ASYNC_SUPPORT;
-import static org.eclipse.jst.j2ee.web.IServletConstants.DESTROY_SIGNATURE;
-import static org.eclipse.jst.j2ee.web.IServletConstants.DO_FILTER_SIGNATURE;
-import static org.eclipse.jst.j2ee.web.IServletConstants.FILTER_INIT_SIGNATURE;
import static org.eclipse.jst.j2ee.web.IServletConstants.METHOD_DESTROY;
import static org.eclipse.jst.j2ee.web.IServletConstants.METHOD_DO_FILTER;
import static org.eclipse.jst.j2ee.web.IServletConstants.METHOD_INIT;
+import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_ANNOTATION_DISPATCHER_TYPE;
import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_ANNOTATION_INIT_PARAM;
import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_FILTER_CHAIN;
import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_FILTER_CONFIG;
@@ -31,7 +29,6 @@ import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_SERVLET_EXCEP
import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_SERVLET_REQUEST;
import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_SERVLET_RESPONSE;
import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_WEB_FILTER;
-import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_ANNOTATION_DISPATCHER_TYPE;
import java.util.ArrayList;
import java.util.Collection;
@@ -41,6 +38,7 @@ import java.util.List;
import java.util.Map;
import org.eclipse.jst.j2ee.internal.common.operations.Method;
+import org.eclipse.jst.j2ee.web.IServletConstants;
import org.eclipse.jst.j2ee.webapplication.DispatcherType;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
@@ -60,31 +58,58 @@ public class CreateFilterTemplateModel extends CreateWebClassTemplateModel {
@Override
public Collection<String> getImports() {
- Collection<String> collection = super.getImports();
+ Collection<String> imports = super.getImports();
+ String javaEEVersion = getJavaEEVersion();
if (shouldGenInit()) {
- collection.add(QUALIFIED_FILTER_CONFIG);
- collection.add(QUALIFIED_SERVLET_EXCEPTION);
+ if (SERVLET_5_0.equals(javaEEVersion)) {
+ imports.add(IServletConstants.QUALIFIED_JAKARTA_FILTER_CONFIG);
+ imports.add(IServletConstants.QUALIFIED_JAKARTA_SERVLET_EXCEPTION);
+ }
+ else {
+ imports.add(QUALIFIED_FILTER_CONFIG);
+ imports.add(QUALIFIED_SERVLET_EXCEPTION);
+ }
}
if (shouldGenDoFilter()) {
- collection.add(QUALIFIED_SERVLET_REQUEST);
- collection.add(QUALIFIED_SERVLET_RESPONSE);
- collection.add(QUALIFIED_FILTER_CHAIN);
- collection.add(QUALIFIED_IO_EXCEPTION);
- collection.add(QUALIFIED_SERVLET_EXCEPTION);
+ if (SERVLET_5_0.equals(javaEEVersion)) {
+ imports.add(IServletConstants.QUALIFIED_JAKARTA_SERVLET_REQUEST);
+ imports.add(IServletConstants.QUALIFIED_JAKARTA_SERVLET_RESPONSE);
+ imports.add(IServletConstants.QUALIFIED_JAKARTA_FILTER_CHAIN);
+ imports.add(QUALIFIED_IO_EXCEPTION);
+ imports.add(IServletConstants.QUALIFIED_JAKARTA_SERVLET_EXCEPTION);
+ }
+ else {
+ imports.add(QUALIFIED_SERVLET_REQUEST);
+ imports.add(QUALIFIED_SERVLET_RESPONSE);
+ imports.add(QUALIFIED_FILTER_CHAIN);
+ imports.add(QUALIFIED_IO_EXCEPTION);
+ imports.add(QUALIFIED_SERVLET_EXCEPTION);
+ }
}
- if (SERVLET_3.equals(getJavaEEVersion()) || SERVLET_3_1.equals(getJavaEEVersion()) || SERVLET_4_0.equals(getJavaEEVersion())){
- collection.add(QUALIFIED_WEB_FILTER);
- if (getInitParams()!= null && getInitParams().size()>0){
- collection.add(QUALIFIED_ANNOTATION_INIT_PARAM);
+ if (SERVLET_5_0.equals(javaEEVersion)) {
+ imports.add(IServletConstants.QUALIFIED_JAKARTA_WEB_FILTER);
+ if (getInitParams() != null && !getInitParams().isEmpty()) {
+ imports.add(IServletConstants.QUALIFIED_JAKARTA_ANNOTATION_INIT_PARAM);
}
- if (hasDispatchers()){
- collection.add(QUALIFIED_ANNOTATION_DISPATCHER_TYPE);
+ if (hasDispatchers()) {
+ imports.add(IServletConstants.QUALIFIED_JAKARTA_ANNOTATION_DISPATCHER_TYPE);
+ }
+ }
+ else {
+ if (SERVLET_3.equals(javaEEVersion) || SERVLET_3_1.equals(javaEEVersion) || SERVLET_4_0.equals(javaEEVersion)) {
+ imports.add(QUALIFIED_WEB_FILTER);
+ if (getInitParams() != null && !getInitParams().isEmpty()) {
+ imports.add(QUALIFIED_ANNOTATION_INIT_PARAM);
+ }
+ if (hasDispatchers()) {
+ imports.add(QUALIFIED_ANNOTATION_DISPATCHER_TYPE);
+ }
}
}
- return collection;
+ return imports;
}
public String getFilterName() {
@@ -200,9 +225,16 @@ public class CreateFilterTemplateModel extends CreateWebClassTemplateModel {
while (iterator.hasNext()) {
Method method = iterator.next();
- if ((METHOD_INIT.equals(method.getName()) && FILTER_INIT_SIGNATURE.equals(method.getSignature())) ||
- (METHOD_DESTROY.equals(method.getName()) && DESTROY_SIGNATURE.equals(method.getSignature())) ||
- (METHOD_DO_FILTER.equals(method.getName()) && DO_FILTER_SIGNATURE.equals(method.getSignature()))) {
+ String methodName = method.getName();
+ String methodSignature = method.getSignature();
+ if ((METHOD_INIT.equals(methodName) && (IServletConstants.FILTER_INIT_SIGNATURE.equals(methodSignature))) ||
+ (METHOD_DESTROY.equals(methodName) && (IServletConstants.DESTROY_SIGNATURE.equals(methodSignature))) ||
+ (METHOD_DO_FILTER.equals(methodName) && (IServletConstants.DO_FILTER_SIGNATURE.equals(methodSignature)))) {
+ iterator.remove();
+ }
+ else if ((METHOD_INIT.equals(methodName) && (IServletConstants.JAKARTA_FILTER_INIT_SIGNATURE.equals(methodSignature))) ||
+ (METHOD_DESTROY.equals(methodName) && (IServletConstants.JAKARTA_DESTROY_SIGNATURE.equals(methodSignature))) ||
+ (METHOD_DO_FILTER.equals(methodName) && (IServletConstants.JAKARTA_DO_FILTER_SIGNATURE.equals(methodSignature)))) {
iterator.remove();
}
}
diff --git a/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/CreateListenerTemplateModel.java b/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/CreateListenerTemplateModel.java
index 77cd5d4d1..78c8c0258 100644
--- a/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/CreateListenerTemplateModel.java
+++ b/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/CreateListenerTemplateModel.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
@@ -29,59 +29,111 @@ import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_WEB_LISTENER;
import java.util.Collection;
import java.util.List;
+import org.eclipse.jst.j2ee.web.IServletConstants;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
public class CreateListenerTemplateModel extends CreateWebClassTemplateModel {
@Override
public Collection<String> getImports() {
- Collection<String> collection = super.getImports();
+ Collection<String> imports = super.getImports();
if (implementServletContextListener()) {
- collection.add(QUALIFIED_SERVLET_CONTEXT_LISTENER);
- collection.add(QUALIFIED_SERVLET_CONTEXT_EVENT);
+ if (SERVLET_5_0.equals(getJavaEEVersion())) {
+ imports.add(IServletConstants.QUALIFIED_JAKARTA_SERVLET_CONTEXT_LISTENER);
+ imports.add(IServletConstants.QUALIFIED_JAKARTA_SERVLET_CONTEXT_EVENT);
+ }
+ else {
+ imports.add(QUALIFIED_SERVLET_CONTEXT_LISTENER);
+ imports.add(QUALIFIED_SERVLET_CONTEXT_EVENT);
+ }
}
if (implementServletContextAttributeListener()) {
- collection.add(QUALIFIED_SERVLET_CONTEXT_ATTRIBUTE_LISTENER);
- collection.add(QUALIFIED_SERVLET_CONTEXT_ATTRIBUTE_EVENT);
+ if (SERVLET_5_0.equals(getJavaEEVersion())) {
+ imports.add(IServletConstants.QUALIFIED_SERVLET_CONTEXT_ATTRIBUTE_LISTENER);
+ imports.add(IServletConstants.QUALIFIED_SERVLET_CONTEXT_ATTRIBUTE_EVENT);
+ }
+ else {
+ imports.add(QUALIFIED_SERVLET_CONTEXT_ATTRIBUTE_LISTENER);
+ imports.add(QUALIFIED_SERVLET_CONTEXT_ATTRIBUTE_EVENT);
+ }
}
if (implementHttpSessionListener()) {
- collection.add(QUALIFIED_HTTP_SESSION_LISTENER);
- collection.add(QUALIFIED_HTTP_SESSION_EVENT);
+ if (SERVLET_5_0.equals(getJavaEEVersion())) {
+ imports.add(IServletConstants.QUALIFIED_HTTP_SESSION_LISTENER);
+ imports.add(IServletConstants.QUALIFIED_HTTP_SESSION_EVENT);
+ }
+ else {
+ imports.add(QUALIFIED_HTTP_SESSION_LISTENER);
+ imports.add(QUALIFIED_HTTP_SESSION_EVENT);
+ }
}
if (implementHttpSessionAttributeListener()) {
- collection.add(QUALIFIED_HTTP_SESSION_ATTRIBUTE_LISTENER);
- collection.add(QUALIFIED_HTTP_SESSION_BINDING_EVENT);
+ if (SERVLET_5_0.equals(getJavaEEVersion())) {
+ imports.add(IServletConstants.QUALIFIED_HTTP_SESSION_ATTRIBUTE_LISTENER);
+ imports.add(IServletConstants.QUALIFIED_HTTP_SESSION_BINDING_EVENT);
+ }
+ else {
+ imports.add(QUALIFIED_HTTP_SESSION_ATTRIBUTE_LISTENER);
+ imports.add(QUALIFIED_HTTP_SESSION_BINDING_EVENT);
+ }
}
if (implementHttpSessionActivationListener()) {
- collection.add(QUALIFIED_HTTP_SESSION_ACTIVATION_LISTENER);
- collection.add(QUALIFIED_HTTP_SESSION_EVENT);
+ if (SERVLET_5_0.equals(getJavaEEVersion())) {
+ imports.add(IServletConstants.QUALIFIED_HTTP_SESSION_ACTIVATION_LISTENER);
+ imports.add(IServletConstants.QUALIFIED_HTTP_SESSION_EVENT);
+ }
+ else {
+ imports.add(QUALIFIED_HTTP_SESSION_ACTIVATION_LISTENER);
+ imports.add(QUALIFIED_HTTP_SESSION_EVENT);
+ }
}
if (implementHttpSessionBindingListener()) {
- collection.add(QUALIFIED_HTTP_SESSION_BINDING_LISTENER);
- collection.add(QUALIFIED_HTTP_SESSION_BINDING_EVENT);
+ if (SERVLET_5_0.equals(getJavaEEVersion())) {
+ imports.add(IServletConstants.QUALIFIED_HTTP_SESSION_BINDING_LISTENER);
+ imports.add(IServletConstants.QUALIFIED_HTTP_SESSION_BINDING_EVENT);
+ }
+ else {
+ imports.add(QUALIFIED_HTTP_SESSION_BINDING_LISTENER);
+ imports.add(QUALIFIED_HTTP_SESSION_BINDING_EVENT);
+ }
}
if (implementServletRequestListener()) {
- collection.add(QUALIFIED_SERVLET_REQUEST_LISTENER);
- collection.add(QUALIFIED_SERVLET_REQUEST_EVENT);
+ if (SERVLET_5_0.equals(getJavaEEVersion())) {
+ imports.add(IServletConstants.QUALIFIED_SERVLET_REQUEST_LISTENER);
+ imports.add(IServletConstants.QUALIFIED_SERVLET_REQUEST_EVENT);
+ }
+ else {
+ imports.add(QUALIFIED_SERVLET_REQUEST_LISTENER);
+ imports.add(QUALIFIED_SERVLET_REQUEST_EVENT);
+ }
}
if (implementServletRequestAttributeListener()) {
- collection.add(QUALIFIED_SERVLET_REQUEST_ATTRIBUTE_LISTENER);
- collection.add(QUALIFIED_SERVLET_REQUEST_ATTRIBUTE_EVENT);
+ if (SERVLET_5_0.equals(getJavaEEVersion())) {
+ imports.add(IServletConstants.QUALIFIED_SERVLET_REQUEST_ATTRIBUTE_LISTENER);
+ imports.add(IServletConstants.QUALIFIED_SERVLET_REQUEST_ATTRIBUTE_EVENT);
+ }
+ else {
+ imports.add(QUALIFIED_SERVLET_REQUEST_ATTRIBUTE_LISTENER);
+ imports.add(QUALIFIED_SERVLET_REQUEST_ATTRIBUTE_EVENT);
+ }
}
- if (SERVLET_3.equals(getJavaEEVersion()) || SERVLET_3_1.equals(getJavaEEVersion()) || SERVLET_4_0.equals(getJavaEEVersion())){
- collection.add(QUALIFIED_WEB_LISTENER);
+ if (SERVLET_5_0.equals(getJavaEEVersion())) {
+ imports.add(IServletConstants.QUALIFIED_JAKARTA_WEB_LISTENER);
+ }
+ else if (SERVLET_3.equals(getJavaEEVersion()) || SERVLET_3_1.equals(getJavaEEVersion()) || SERVLET_4_0.equals(getJavaEEVersion())){
+ imports.add(QUALIFIED_WEB_LISTENER);
}
- return collection;
+ return imports;
}
public CreateListenerTemplateModel(IDataModel dataModel) {
diff --git a/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/NewFilterClassDataModelProvider.java b/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/NewFilterClassDataModelProvider.java
index 21ef143be..68e7a489e 100644
--- a/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/NewFilterClassDataModelProvider.java
+++ b/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/NewFilterClassDataModelProvider.java
@@ -328,7 +328,7 @@ public class NewFilterClassDataModelProvider extends
}
}
// Return interface list
- return interfaceList;
+ return jakartaInterfaceList;
}
/**
diff --git a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/AddListenerWizardPage.java b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/AddListenerWizardPage.java
index 1681b8afe..f99fbd529 100644
--- a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/AddListenerWizardPage.java
+++ b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/AddListenerWizardPage.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008 SAP AG and others.
+ * Copyright (c) 2008, 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
@@ -15,22 +15,48 @@ import static org.eclipse.jst.j2ee.internal.web.operations.NewListenerClassDataM
import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_HTTP_SESSION_ACTIVATION_LISTENER;
import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_HTTP_SESSION_ATTRIBUTE_LISTENER;
import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_HTTP_SESSION_BINDING_LISTENER;
+import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_HTTP_SESSION_ID_LISTENER;
import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_HTTP_SESSION_LISTENER;
import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_SERVLET_CONTEXT_ATTRIBUTE_LISTENER;
import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_SERVLET_CONTEXT_LISTENER;
+import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_SERVLET_REQUEST_ASYNC_EVENT_LISTENER;
import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_SERVLET_REQUEST_ATTRIBUTE_LISTENER;
import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_SERVLET_REQUEST_LISTENER;
-import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_HTTP_SESSION_ID_LISTENER;
-import static org.eclipse.jst.j2ee.web.IServletConstants.QUALIFIED_SERVLET_REQUEST_ASYNC_EVENT_LISTENER;
-import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.*;
+import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.ADD_LISTENER_WIZARD_ASYNC_EVENTS;
+import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.ADD_LISTENER_WIZARD_CHANGES_TO_ATTRIBUTES_C;
+import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.ADD_LISTENER_WIZARD_CHANGES_TO_ATTRIBUTES_G;
+import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.ADD_LISTENER_WIZARD_CHANGES_TO_ATTRIBUTES_H;
+import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.ADD_LISTENER_WIZARD_HTTP_SESSION_EVENTS;
+import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.ADD_LISTENER_WIZARD_LIFECYCLE_I;
+import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.ADD_LISTENER_WIZARD_LIFECYCLE_L;
+import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.ADD_LISTENER_WIZARD_LIFECYCLE_Y;
+import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.ADD_LISTENER_WIZARD_OBJECT_BINDING;
+import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.ADD_LISTENER_WIZARD_OBJECT_SESSION_ID;
+import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.ADD_LISTENER_WIZARD_PAGE_DESC;
+import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.ADD_LISTENER_WIZARD_PAGE_TITLE;
+import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.ADD_LISTENER_WIZARD_SERVLET_CONTEXT_EVENTS;
+import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.ADD_LISTENER_WIZARD_SERVLET_REQUEST_EVENTS;
+import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.ADD_LISTENER_WIZARD_SESSION_MIGRATION;
+import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.CLEAR_BUTTON;
+import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.SELECT_ALL_BUTTON;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.internal.ui.JavaPluginImages;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jst.j2ee.internal.web.operations.INewServletClassDataModelProperties;
+import org.eclipse.jst.j2ee.internal.web.operations.NewListenerClassDataModelProvider;
+import org.eclipse.jst.j2ee.internal.web.plugin.WebPlugin;
+import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities;
+import org.eclipse.jst.j2ee.web.IServletConstants;
+import org.eclipse.jst.j2ee.web.project.facet.WebFacetUtils;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
@@ -41,9 +67,13 @@ import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
+import org.eclipse.wst.common.componentcore.internal.operation.IArtifactEditOperationDataModelProperties;
+import org.eclipse.wst.common.componentcore.internal.util.FacetedProjectUtilities;
import org.eclipse.wst.common.frameworks.datamodel.DataModelEvent;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
import org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelWizardPage;
+import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
+import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
public class AddListenerWizardPage extends DataModelWizardPage {
@@ -99,62 +129,68 @@ public class AddListenerWizardPage extends DataModelWizardPage {
private void createServletContextEvents(Composite parent) {
Group group = createGroup(parent, ADD_LISTENER_WIZARD_SERVLET_CONTEXT_EVENTS);
+ boolean useJakartaPackages = useJakartaPackages();
+
createEventListenerRow(group,
- ADD_LISTENER_WIZARD_LIFECYCLE_L,
- QUALIFIED_SERVLET_CONTEXT_LISTENER,
+ ADD_LISTENER_WIZARD_LIFECYCLE_L,
+ useJakartaPackages ? IServletConstants.QUALIFIED_JAKARTA_SERVLET_CONTEXT_LISTENER : QUALIFIED_SERVLET_CONTEXT_LISTENER,
INTERFACES);
createEventListenerRow(group,
- ADD_LISTENER_WIZARD_CHANGES_TO_ATTRIBUTES_C,
- QUALIFIED_SERVLET_CONTEXT_ATTRIBUTE_LISTENER,
+ ADD_LISTENER_WIZARD_CHANGES_TO_ATTRIBUTES_C,
+ useJakartaPackages ? IServletConstants.QUALIFIED_JAKARTA_SERVLET_CONTEXT_ATTRIBUTE_LISTENER : QUALIFIED_SERVLET_CONTEXT_ATTRIBUTE_LISTENER,
INTERFACES);
}
private void createHttpSessionEvents(Composite parent) {
Group group = createGroup(parent, ADD_LISTENER_WIZARD_HTTP_SESSION_EVENTS);
+ boolean useJakartaPackages = useJakartaPackages();
+
createEventListenerRow(group,
- ADD_LISTENER_WIZARD_LIFECYCLE_I,
- QUALIFIED_HTTP_SESSION_LISTENER,
+ ADD_LISTENER_WIZARD_LIFECYCLE_I,
+ useJakartaPackages ? IServletConstants.QUALIFIED_JAKARTA_HTTP_SESSION_LISTENER : QUALIFIED_HTTP_SESSION_LISTENER,
INTERFACES);
createEventListenerRow(group,
- ADD_LISTENER_WIZARD_CHANGES_TO_ATTRIBUTES_H,
- QUALIFIED_HTTP_SESSION_ATTRIBUTE_LISTENER,
+ ADD_LISTENER_WIZARD_CHANGES_TO_ATTRIBUTES_H,
+ useJakartaPackages ? IServletConstants.QUALIFIED_JAKARTA_HTTP_SESSION_ATTRIBUTE_LISTENER : QUALIFIED_HTTP_SESSION_ATTRIBUTE_LISTENER,
INTERFACES);
createEventListenerRow(group,
- ADD_LISTENER_WIZARD_SESSION_MIGRATION,
- QUALIFIED_HTTP_SESSION_ACTIVATION_LISTENER,
+ ADD_LISTENER_WIZARD_SESSION_MIGRATION,
+ useJakartaPackages ? IServletConstants.QUALIFIED_JAKARTA_HTTP_SESSION_ACTIVATION_LISTENER : QUALIFIED_HTTP_SESSION_ACTIVATION_LISTENER,
INTERFACES);
- createEventListenerRow(group,
- ADD_LISTENER_WIZARD_OBJECT_BINDING,
- QUALIFIED_HTTP_SESSION_BINDING_LISTENER,
+ createEventListenerRow(group,
+ ADD_LISTENER_WIZARD_OBJECT_BINDING,
+ useJakartaPackages ? IServletConstants.QUALIFIED_JAKARTA_HTTP_SESSION_BINDING_LISTENER : QUALIFIED_HTTP_SESSION_BINDING_LISTENER,
INTERFACES);
- createEventListenerRow(group,
- ADD_LISTENER_WIZARD_OBJECT_SESSION_ID,
- QUALIFIED_HTTP_SESSION_ID_LISTENER,
- INTERFACES);
+ createEventListenerRow(group,
+ ADD_LISTENER_WIZARD_OBJECT_SESSION_ID,
+ useJakartaPackages ? IServletConstants.QUALIFIED_JAKARTA_HTTP_SESSION_ID_LISTENER : QUALIFIED_HTTP_SESSION_ID_LISTENER,
+ INTERFACES);
}
private void createServletRequestEvents(Composite parent) {
Group group = createGroup(parent, ADD_LISTENER_WIZARD_SERVLET_REQUEST_EVENTS);
- createEventListenerRow(group,
- ADD_LISTENER_WIZARD_LIFECYCLE_Y,
- QUALIFIED_SERVLET_REQUEST_LISTENER,
+ boolean useJakartaPackages = useJakartaPackages();
+
+ createEventListenerRow(group,
+ ADD_LISTENER_WIZARD_LIFECYCLE_Y,
+ useJakartaPackages ? IServletConstants.QUALIFIED_JAKARTA_SERVLET_REQUEST_LISTENER : QUALIFIED_SERVLET_REQUEST_LISTENER,
INTERFACES);
- createEventListenerRow(group,
- ADD_LISTENER_WIZARD_CHANGES_TO_ATTRIBUTES_G,
- QUALIFIED_SERVLET_REQUEST_ATTRIBUTE_LISTENER,
+ createEventListenerRow(group,
+ ADD_LISTENER_WIZARD_CHANGES_TO_ATTRIBUTES_G,
+ useJakartaPackages ? IServletConstants.QUALIFIED_JAKARTA_SERVLET_REQUEST_ATTRIBUTE_LISTENER : QUALIFIED_SERVLET_REQUEST_ATTRIBUTE_LISTENER,
INTERFACES);
- createEventListenerRow(group,
- ADD_LISTENER_WIZARD_ASYNC_EVENTS,
- QUALIFIED_SERVLET_REQUEST_ASYNC_EVENT_LISTENER,
+ createEventListenerRow(group,
+ ADD_LISTENER_WIZARD_ASYNC_EVENTS,
+ useJakartaPackages ? IServletConstants.QUALIFIED_JAKARTA_SERVLET_REQUEST_ASYNC_EVENT_LISTENER : QUALIFIED_SERVLET_REQUEST_ASYNC_EVENT_LISTENER,
INTERFACES);
}
@@ -171,12 +207,12 @@ public class AddListenerWizardPage extends DataModelWizardPage {
}
private void createEventListenerRow(Composite parent, String event, String listener, String property) {
- if (listener.equals(QUALIFIED_HTTP_SESSION_ID_LISTENER)){
+ if (listener.equals(QUALIFIED_HTTP_SESSION_ID_LISTENER) || listener.equals(IServletConstants.QUALIFIED_JAKARTA_HTTP_SESSION_ID_LISTENER)){
changeSessionID = createCheckbox(parent, event, listener, property);
changeSessionIDIconLabel = createInterfaceIcon(parent);
changeSessionIDInterfaceLabel = createInterfaceLabel(parent, listener);
}
- else if (listener.equals(QUALIFIED_SERVLET_REQUEST_ASYNC_EVENT_LISTENER)){
+ else if (listener.equals(QUALIFIED_SERVLET_REQUEST_ASYNC_EVENT_LISTENER) || listener.equals(IServletConstants.QUALIFIED_JAKARTA_SERVLET_REQUEST_ASYNC_EVENT_LISTENER)){
asyncListener = createCheckbox(parent, event, listener, property);
asyncListenerIconLabel = createInterfaceIcon(parent);
asyncListenerInterfaceLabel = createInterfaceLabel(parent, listener);
@@ -247,10 +283,18 @@ public class AddListenerWizardPage extends DataModelWizardPage {
interfaces = new ArrayList();
model.setProperty(INTERFACES, interfaces);
}
-
- for (String iface : LISTENER_INTERFACES) {
- if (!interfaces.contains(iface)) {
- interfaces.add(iface);
+ if (useJakartaPackages()) {
+ for (String iface : NewListenerClassDataModelProvider.JAKARTA_LISTENER_INTERFACES) {
+ if (!interfaces.contains(iface)) {
+ interfaces.add(iface);
+ }
+ }
+ }
+ else {
+ for (String iface : LISTENER_INTERFACES) {
+ if (!interfaces.contains(iface)) {
+ interfaces.add(iface);
+ }
}
}
@@ -266,7 +310,8 @@ public class AddListenerWizardPage extends DataModelWizardPage {
}
interfaces.removeAll(Arrays.asList(LISTENER_INTERFACES));
-
+ interfaces.removeAll(Arrays.asList(NewListenerClassDataModelProvider.JAKARTA_LISTENER_INTERFACES));
+
synchHelper2.synchUIWithModel(INTERFACES, DataModelEvent.VALUE_CHG);
model.notifyPropertyChange(INTERFACES, DataModelEvent.VALUE_CHG);
}
@@ -283,8 +328,65 @@ public class AddListenerWizardPage extends DataModelWizardPage {
setServlet31ListenersVisible(false);
}
}
-
-
+
+ private boolean useJakartaPackages() {
+ Object nameValue = model.getProperty(IArtifactEditOperationDataModelProperties.PROJECT_NAME);
+ if (nameValue != null) {
+ String projectName = nameValue.toString();
+
+ try {
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
+ String id = null;
+ if(JavaEEProjectUtilities.isDynamicWebProject(project)){
+ id = WebFacetUtils.WEB_FACET.getId();
+ }else {
+ id = WebFacetUtils.WEBFRAGMENT_FACET.getId();
+ }
+ String facetVersion = FacetedProjectUtilities.getProjectFacetVersion(project, id).getVersionString();
+ 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);
+ }
+
+ if (projectName != null && projectName.length() > 0) {
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
+ if (project != null && project.isAccessible()) {
+ // the default when otherwise indeterminate should be Jakarta
+ try {
+ IJavaProject javaProject = JavaCore.create(project);
+ if (javaProject != null && javaProject.exists()) {
+ if (javaProject.findType(IServletConstants.QUALIFIED_JAKARTA_GENERIC_SERVLET) != null) {
+ return true;
+ }
+ }
+ }
+ catch (CoreException e) {
+ WTPCommonPlugin.logError(e);
+ }
+ try {
+ // check to see if it is Jakarta Servlet 5 or newer
+ if (FacetedProjectFramework.hasProjectFacet(project, WebFacetUtils.WEB_FACET.getId(), WebFacetUtils.WEB_50.getVersionString())) {
+ return true;
+ }
+ }
+ catch (CoreException e) {
+ WebPlugin.log(e);
+ }
+ }
+ }
+ return false;
+ }
+ return false;
+ }
+
private void setServlet31ListenersVisible(boolean visible){
changeSessionID.setVisible(visible);
changeSessionIDIconLabel.setVisible(visible);

Back to the top