diff options
author | edpeters | 2010-03-26 17:13:33 +0000 |
---|---|---|
committer | edpeters | 2010-03-26 17:13:33 +0000 |
commit | e698e55684bd7e30703f06437b9cd579cdf1529d (patch) | |
tree | 84f6ff7039d6ea4b61adbc5924c8d87a442eb29f | |
parent | 1890eeb062ed2ab97a66fc484736f02f2279ca45 (diff) | |
download | webtools.webservices-e698e55684bd7e30703f06437b9cd579cdf1529d.tar.gz webtools.webservices-e698e55684bd7e30703f06437b9cd579cdf1529d.tar.xz webtools.webservices-e698e55684bd7e30703f06437b9cd579cdf1529d.zip |
[307059] JAX-RS properties page- fields empty or incorrect
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)); + + } + } + } + } } } |