Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoredpeters2010-03-26 17:13:33 +0000
committeredpeters2010-03-26 17:13:33 +0000
commite698e55684bd7e30703f06437b9cd579cdf1529d (patch)
tree84f6ff7039d6ea4b61adbc5924c8d87a442eb29f
parent1890eeb062ed2ab97a66fc484736f02f2279ca45 (diff)
downloadwebtools.webservices-e698e55684bd7e30703f06437b9cd579cdf1529d.tar.gz
webtools.webservices-e698e55684bd7e30703f06437b9cd579cdf1529d.tar.xz
webtools.webservices-e698e55684bd7e30703f06437b9cd579cdf1529d.zip
[307059] JAX-RS properties page- fields empty or incorrect
-rw-r--r--bundles/org.eclipse.jst.ws.jaxrs.core/src/org/eclipse/jst/ws/jaxrs/core/internal/project/facet/JAXRSJ2EEUtils.java60
-rw-r--r--bundles/org.eclipse.jst.ws.jaxrs.core/src/org/eclipse/jst/ws/jaxrs/core/internal/project/facet/JAXRSJEEUtils.java2
-rw-r--r--bundles/org.eclipse.jst.ws.jaxrs.core/src/org/eclipse/jst/ws/jaxrs/core/internal/project/facet/JAXRSUtils.java19
-rw-r--r--bundles/org.eclipse.jst.ws.jaxrs.ui/META-INF/MANIFEST.MF3
-rw-r--r--bundles/org.eclipse.jst.ws.jaxrs.ui/src/org/eclipse/jst/ws/jaxrs/ui/internal/project/facet/JAXRSLibraryPropertyPage.java103
5 files changed, 134 insertions, 53 deletions
diff --git a/bundles/org.eclipse.jst.ws.jaxrs.core/src/org/eclipse/jst/ws/jaxrs/core/internal/project/facet/JAXRSJ2EEUtils.java b/bundles/org.eclipse.jst.ws.jaxrs.core/src/org/eclipse/jst/ws/jaxrs/core/internal/project/facet/JAXRSJ2EEUtils.java
index 753ca0c76..ed2c6148d 100644
--- a/bundles/org.eclipse.jst.ws.jaxrs.core/src/org/eclipse/jst/ws/jaxrs/core/internal/project/facet/JAXRSJ2EEUtils.java
+++ b/bundles/org.eclipse.jst.ws.jaxrs.core/src/org/eclipse/jst/ws/jaxrs/core/internal/project/facet/JAXRSJ2EEUtils.java
@@ -11,6 +11,7 @@
* -------- -------- -----------------------------------------------------------
* 20091021 291954 ericdp@ca.ibm.com - Eric D. Peters, JAX-RS: Implement JAX-RS Facet
* 20100303 291954 kchong@ca.ibm.com - Keith Chong, JAX-RS: Implement JAX-RS Facet
+ * 20100325 307059 ericdp@ca.ibm.com - Eric D. Peters, JAX-RS properties page- fields empty or incorrect
*******************************************************************************/
package org.eclipse.jst.ws.jaxrs.core.internal.project.facet;
@@ -84,15 +85,18 @@ public class JAXRSJ2EEUtils extends JAXRSUtils {
if (servlet.getWebType().isServletType()) {
if (((ServletType) servlet.getWebType()).getClassName() != null
- && ((ServletType) servlet.getWebType())
+ && ( ((ServletType) servlet.getWebType())
.getClassName().trim().equals(
- JAXRS_SERVLET_CLASS)) {
+ JAXRS_SERVLET_CLASS) || ((ServletType) servlet.getWebType())
+ .getClassName().trim().equals(
+ getSavedServletName())) ) {
return servlet;
}
} else if (servlet.getWebType().isJspType()) {
if (((JSPType) servlet.getWebType()).getJspFile() != null
- && ((JSPType) servlet.getWebType()).getJspFile()
- .trim().equals(JAXRS_SERVLET_CLASS)) {
+ && ( ((JSPType) servlet.getWebType()).getJspFile()
+ .trim().equals(JAXRS_SERVLET_CLASS) || ((JSPType) servlet.getWebType()).getJspFile()
+ .trim().equals(getSavedServletName())) ) {
return servlet;
}
}
@@ -145,6 +149,10 @@ public class JAXRSJ2EEUtils extends JAXRSUtils {
updateServletMappings(webApp, servlet, servlet.getServletName()
.trim(), displayName);
servlet.setServletName(displayName);
+ ServletType servletType = WebapplicationFactory.eINSTANCE
+ .createServletType();
+ servletType.setClassName(className);
+ servlet.setWebType(servletType);
servlet.setLoadOnStartup(Integer.valueOf(1));
}
return servlet;
@@ -220,17 +228,41 @@ public class JAXRSJ2EEUtils extends JAXRSUtils {
public static void updateURLMappings(final WebApp webApp,
final List urlMappingList, final Servlet servlet) {
// TODO
- Iterator it = urlMappingList.iterator();
- while (it.hasNext()) {
- String pattern = (String) it.next();
- if (!(doesServletMappingExist(webApp, servlet, pattern))) {
- ServletMapping mapping = WebapplicationFactory.eINSTANCE
- .createServletMapping();
- mapping.setServlet(servlet);
- mapping.setName(servlet.getServletName());
- mapping.setUrlPattern(pattern);
- webApp.getServletMappings().add(mapping);
+ if (urlMappingList != null) {
+ List<ServletMapping> mappings = findServletMappings(webApp,
+ servlet, servlet.getServletName());
+ Iterator it = urlMappingList.iterator();
+ while (it.hasNext()) {
+ String pattern = (String) it.next();
+ if (!(doesServletMappingExist(webApp, servlet, pattern))) {
+ ServletMapping mapping = WebapplicationFactory.eINSTANCE
+ .createServletMapping();
+ mapping.setServlet(servlet);
+ mapping.setName(servlet.getServletName());
+ mapping.setUrlPattern(pattern);
+ webApp.getServletMappings().add(mapping);
+ }
+
+ }
+ // Now gather up the patterns that aren't defined in the UI...
+ List<ServletMapping> patternsToRemove = new ArrayList<ServletMapping>();
+ for (Iterator<ServletMapping> iter = mappings.iterator(); iter.hasNext();)
+ {
+ ServletMapping next = iter.next();
+ String patternTypeValue = next.getUrlPattern();
+ if (patternTypeValue != null && !urlMappingList.contains(patternTypeValue))
+ {
+ patternsToRemove.add(next);
+ }
+ }
+ //...and remove them from the model
+ for (Iterator<ServletMapping> iter = patternsToRemove.iterator(); iter.hasNext(); )
+ {
+ webApp.getServletMappings().remove(iter.next());
}
+
+
+
}
}
diff --git a/bundles/org.eclipse.jst.ws.jaxrs.core/src/org/eclipse/jst/ws/jaxrs/core/internal/project/facet/JAXRSJEEUtils.java b/bundles/org.eclipse.jst.ws.jaxrs.core/src/org/eclipse/jst/ws/jaxrs/core/internal/project/facet/JAXRSJEEUtils.java
index d7832369b..259322403 100644
--- a/bundles/org.eclipse.jst.ws.jaxrs.core/src/org/eclipse/jst/ws/jaxrs/core/internal/project/facet/JAXRSJEEUtils.java
+++ b/bundles/org.eclipse.jst.ws.jaxrs.core/src/org/eclipse/jst/ws/jaxrs/core/internal/project/facet/JAXRSJEEUtils.java
@@ -13,6 +13,7 @@
* 20100303 291954 kchong@ca.ibm.com - Keith Chong, JAX-RS: Implement JAX-RS Facet
* 20100310 304405 ericdp@ca.ibm.com - Eric D. Peters, JAX-RS Facet : support JAX-RS 1.1
* 20100319 306594 ericdp@ca.ibm.com - Eric D. Peters, JAX-RS facet install fails for Web 2.3 & 2.4
+ * 20100325 307059 ericdp@ca.ibm.com - Eric D. Peters, JAX-RS properties page- fields empty or incorrect
*******************************************************************************/
package org.eclipse.jst.ws.jaxrs.core.internal.project.facet;
@@ -113,6 +114,7 @@ public class JAXRSJEEUtils extends JAXRSUtils {
} else {
updateServletMappings(webApp, servlet, displayName);
servlet.setServletName(displayName);
+ servlet.setServletClass(className);
servlet.setLoadOnStartup(Integer.valueOf(1));
}
return servlet;
diff --git a/bundles/org.eclipse.jst.ws.jaxrs.core/src/org/eclipse/jst/ws/jaxrs/core/internal/project/facet/JAXRSUtils.java b/bundles/org.eclipse.jst.ws.jaxrs.core/src/org/eclipse/jst/ws/jaxrs/core/internal/project/facet/JAXRSUtils.java
index 9ab8c4c82..60d71174f 100644
--- a/bundles/org.eclipse.jst.ws.jaxrs.core/src/org/eclipse/jst/ws/jaxrs/core/internal/project/facet/JAXRSUtils.java
+++ b/bundles/org.eclipse.jst.ws.jaxrs.core/src/org/eclipse/jst/ws/jaxrs/core/internal/project/facet/JAXRSUtils.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
+ * Copyright (c) 2009, 2010 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
@@ -10,12 +10,15 @@
* yyyymmdd bug Email and other contact information
* -------- -------- -----------------------------------------------------------
* 20091021 291954 ericdp@ca.ibm.com - Eric D. Peters, JAX-RS: Implement JAX-RS Facet
+ * 20100325 307059 ericdp@ca.ibm.com - Eric D. Peters, JAX-RS properties page- fields empty or incorrect
*******************************************************************************/
package org.eclipse.jst.ws.jaxrs.core.internal.project.facet;
import org.eclipse.core.resources.IProject;
+import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jst.j2ee.model.IModelProvider;
import org.eclipse.jst.j2ee.model.ModelProviderManager;
+import org.eclipse.jst.ws.jaxrs.core.internal.JAXRSCorePlugin;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
/**
@@ -116,4 +119,18 @@ public abstract class JAXRSUtils {
return _prefixMapping;
}
}
+
+ static String getSavedServletName() {
+ IDialogSettings jaxrsUISettings = JAXRSCorePlugin.getDefault()
+ .getJaxrsUISettings();
+ if (jaxrsUISettings != null) {
+ String JAXRSUISettingsRoot = "org.eclipse.jst.ws.jaxrs.ui" + ".jaxrsFacetInstall"; //$NON-NLS-1$
+ IDialogSettings root = jaxrsUISettings
+ .getSection(JAXRSUISettingsRoot);
+
+ if (root != null)
+ return root.get("servletClassname");
+ }
+ return null;
+ }
}
diff --git a/bundles/org.eclipse.jst.ws.jaxrs.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.jaxrs.ui/META-INF/MANIFEST.MF
index 77a60e3c9..0e9f6efb6 100644
--- a/bundles/org.eclipse.jst.ws.jaxrs.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.jaxrs.ui/META-INF/MANIFEST.MF
@@ -19,7 +19,8 @@ Require-Bundle: org.eclipse.jst.ws.jaxrs.core;bundle-version="[1.0.0,2.0.0)",
org.eclipse.jst.common.project.facet.core;bundle-version="[1.4.100,2.0.0)",
org.eclipse.jst.common.project.facet.ui;bundle-version="[1.4.100,2.0.0)",
org.eclipse.jst.j2ee.core;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.jem.util;bundle-version="[2.1.0,3.0.0)"
+ org.eclipse.jem.util;bundle-version="[2.1.0,3.0.0)",
+ org.eclipse.jem;bundle-version="[2.0.400,3.0.0)"
Bundle-ActivationPolicy: lazy
Export-Package: org.eclipse.jst.ws.jaxrs.ui.internal;
org.eclipse.jst.ws.jaxrs.ui.internal.classpath;
diff --git a/bundles/org.eclipse.jst.ws.jaxrs.ui/src/org/eclipse/jst/ws/jaxrs/ui/internal/project/facet/JAXRSLibraryPropertyPage.java b/bundles/org.eclipse.jst.ws.jaxrs.ui/src/org/eclipse/jst/ws/jaxrs/ui/internal/project/facet/JAXRSLibraryPropertyPage.java
index eb29b039d..3c8e9a432 100644
--- a/bundles/org.eclipse.jst.ws.jaxrs.ui/src/org/eclipse/jst/ws/jaxrs/ui/internal/project/facet/JAXRSLibraryPropertyPage.java
+++ b/bundles/org.eclipse.jst.ws.jaxrs.ui/src/org/eclipse/jst/ws/jaxrs/ui/internal/project/facet/JAXRSLibraryPropertyPage.java
@@ -13,13 +13,14 @@
* 20100303 291954 kchong@ca.ibm.com - Keith Chong, JAX-RS: Implement JAX-RS Facet
* 20100319 306594 ericdp@ca.ibm.com - Eric D. Peters, JAX-RS facet install fails for Web 2.3 & 2.4
* 20100324 306937 ericdp@ca.ibm.com - Eric D. Peters, JAX-RS Properties page- NPE after pressing OK
+ * 20100325 307059 ericdp@ca.ibm.com - Eric D. Peters, JAX-RS properties page- fields empty or incorrect
*******************************************************************************/
package org.eclipse.jst.ws.jaxrs.ui.internal.project.facet;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
-import java.util.Set;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
@@ -28,20 +29,18 @@ import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.jst.common.project.facet.core.libprov.ILibraryProvider;
import org.eclipse.jst.common.project.facet.core.libprov.LibraryInstallDelegate;
-import org.eclipse.jst.common.project.facet.core.libprov.internal.LibraryProvider;
import org.eclipse.jst.common.project.facet.ui.libprov.LibraryFacetPropertyPage;
import org.eclipse.jst.j2ee.model.IModelProvider;
-import org.eclipse.jst.j2ee.model.ModelProviderManager;
import org.eclipse.jst.javaee.core.UrlPatternType;
import org.eclipse.jst.javaee.web.Servlet;
import org.eclipse.jst.javaee.web.ServletMapping;
import org.eclipse.jst.javaee.web.WebApp;
import org.eclipse.jst.ws.jaxrs.core.internal.IJAXRSCoreConstants;
import org.eclipse.jst.ws.jaxrs.core.internal.project.facet.IJAXRSFacetInstallDataModelProperties;
+import org.eclipse.jst.ws.jaxrs.core.internal.project.facet.JAXRSJ2EEUtils;
import org.eclipse.jst.ws.jaxrs.core.internal.project.facet.JAXRSJEEUtils;
import org.eclipse.jst.ws.jaxrs.core.internal.project.facet.JAXRSUtils;
import org.eclipse.jst.ws.jaxrs.ui.internal.IJAXRSUIConstants;
-import org.eclipse.jst.ws.jaxrs.ui.internal.JAXRSUIPlugin;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
@@ -99,49 +98,57 @@ implements IJAXRSFacetInstallDataModelProperties
return fproj.getInstalledVersion(jaxrsFacet);
}
+ @SuppressWarnings({ "unchecked", "rawtypes" })
protected void initializeValues()
{
-// LibraryInstallDelegate librariesInstallDelegate = getLibraryInstallDelegate();
-// JAXRSUserLibraryProviderInstallOperationConfig customConfig = (JAXRSUserLibraryProviderInstallOperationConfig) librariesInstallDelegate.getLibraryProviderOperationConfig();
- IFacetedProject facetedProject = getFacetedProject();
- Set set = facetedProject.getProjectFacets();
-
- IModelProvider provider = ModelProviderManager.getModelProvider(getProject());
- Object object = provider.getModelObject();
- if (object instanceof WebApp)
- {
- WebApp webApp = (WebApp) object;
- List servletMappings = webApp.getServletMappings();
- List servlets = webApp.getServlets();
- // Find the first servlet for now. Our dialog only supports one servlet.
- String servletName = null;
- for (Iterator i = servlets.iterator(); i.hasNext();)
- {
- Object o = i.next();
- if (o instanceof Servlet)
- {
- // init the servlet
- this.servlet = (Servlet) o;
- servletName = servlet.getServletName();
- if (servletName == null)
- servletName = "";
- servletInfoGroup.txtJAXRSServletName.setText(servletName);
- servletInfoGroup.txtJAXRSServletClassName.setText(servlet.getServletClass());
- break;
- }
- }
+ IModelProvider provider = JAXRSUtils.getModelProvider(getProject());
+ Object webAppObj = provider.getModelObject();
+ List<ServletMapping> servletMappings = new ArrayList<ServletMapping>();
+ if (webAppObj != null)
+ {
+ String servletName = JAXRSUtils.JAXRS_DEFAULT_SERVLET_NAME;
+ String servletClass = ""; //$NON-NLS-1$
+ if (JAXRSJEEUtils.isWebApp25or30(webAppObj)) {
+ WebApp webApp = (WebApp) webAppObj;
+ Servlet servlet = JAXRSJEEUtils.findJAXRSServlet(webApp);
+ if (servlet != null) {
+ this.servlet = servlet;
+ servletMappings = webApp.getServletMappings();
+ servletName = (servlet.getServletName() == null) ? servletName : servlet.getServletName();
+ servletClass =(servlet.getServletClass() == null) ? servletClass : servlet.getServletClass();
+ }
+ } else {
+ // 2.3 or 2.4 web app
+ org.eclipse.jst.j2ee.webapplication.WebApp webApp = (org.eclipse.jst.j2ee.webapplication.WebApp) webAppObj;
+ org.eclipse.jst.j2ee.webapplication.Servlet servlet = JAXRSJ2EEUtils
+ .findJAXRSServlet(webApp);
+ if (servlet != null) {
+ this.j2eeServlet = servlet;
+ servletMappings = webApp.getServletMappings();
+ servletName = (servlet.getServletName() == null) ? servletName : servlet.getServletName();
+ if (servlet.getServletClass() != null) {
+ servletClass =(servlet.getServletClass().getQualifiedName() == null) ? servletClass : servlet.getServletClass().getQualifiedName();
+ }
+ }
+
+ }
+ servletInfoGroup.txtJAXRSServletName.setText(servletName);
+ servletInfoGroup.txtJAXRSServletClassName.setText(servletClass);
// Find the servletMapping that corresponds to the servletName
- for (Iterator i = servletMappings.iterator(); i.hasNext();)
+ if (JAXRSJEEUtils.isWebApp25or30(webAppObj)) {
+ servletInfoGroup.lstJAXRSServletURLPatterns.removeAll();
+
+ for (Iterator<ServletMapping> i = servletMappings.iterator(); i.hasNext();)
{
Object o = i.next();
if (o instanceof ServletMapping)
{
// init the servletMapping
- this.servletMapping = (ServletMapping) o;
- servletInfoGroup.lstJAXRSServletURLPatterns.removeAll();
- if (servletName.equals(servletMapping.getServletName()))
+ ServletMapping next = (ServletMapping) o;
+ if (servletName.equals(next.getServletName()))
{
+ this.servletMapping = next;
for (Iterator p = servletMapping.getUrlPatterns().iterator(); p.hasNext();)
{
UrlPatternType pattern = (UrlPatternType) p.next();
@@ -150,6 +157,28 @@ implements IJAXRSFacetInstallDataModelProperties
}
}
}
+ } else {
+ servletInfoGroup.lstJAXRSServletURLPatterns.removeAll();
+ for (Iterator<ServletMapping> i = servletMappings.iterator(); i.hasNext();)
+ {
+ Object o = i.next();
+ if (o instanceof org.eclipse.jst.j2ee.webapplication.ServletMapping)
+ {
+ // init the servletMapping
+ org.eclipse.jst.j2ee.webapplication.ServletMapping next = (org.eclipse.jst.j2ee.webapplication.ServletMapping) o;
+
+ if (servletName.equals(next.getServlet().getServletName()))
+ {
+ this.j2eeServletMapping = next;
+
+
+ String pattern = next.getUrlPattern();
+ servletInfoGroup.lstJAXRSServletURLPatterns.add(new String(pattern));
+
+ }
+ }
+ }
+ }
}
}

Back to the top