Author: Grid.Qian
Date: 2008-06-04 01:10:56 -0400 (Wed, 04 Jun 2008)
New Revision: 8530
Modified:
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboss/tools/ws/creation/core/commands/MergeWebXMLCommand.java
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboss/tools/ws/creation/core/messages/JBossWSCreationCore.properties
Log:
JBIDE-2047: when merge web.xml, add support for jee project and j2ee project
Modified:
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboss/tools/ws/creation/core/commands/MergeWebXMLCommand.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboss/tools/ws/creation/core/commands/MergeWebXMLCommand.java 2008-06-04
02:26:52 UTC (rev 8529)
+++
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboss/tools/ws/creation/core/commands/MergeWebXMLCommand.java 2008-06-04
05:10:56 UTC (rev 8530)
@@ -7,7 +7,7 @@
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
+ ******************************************************************************/
package org.jboss.tools.ws.creation.core.commands;
@@ -50,12 +50,13 @@
throws ExecutionException {
IEnvironment environment = getEnvironment();
IStatus status = null;
- ServletDescriptor[] servletDescriptors = new
ServletDescriptor[model.getServiceClasses().size()];
+ ServletDescriptor[] servletDescriptors = new ServletDescriptor[model
+ .getServiceClasses().size()];
List<String> serviceClasses = model.getServiceClasses();
- for(int i = 0; i < serviceClasses.size(); i++){
- servletDescriptors[i] = getAxisServletDescriptor(serviceClasses.get(i));
+ for (int i = 0; i < serviceClasses.size(); i++) {
+ servletDescriptors[i] = getServletDescriptor(serviceClasses.get(i));
}
-
+
status = mergeWebXML(servletDescriptors);
if (status.getSeverity() == Status.ERROR) {
environment.getStatusHandler().reportError(status);
@@ -72,21 +73,64 @@
provider.modify(new Runnable() {
public void run() {
Object object = provider.getModelObject();
- if (object instanceof org.eclipse.jst.javaee.web.WebApp) {
+ if (object instanceof WebApp) {
WebApp webApp = (WebApp) object;
- for(int i = 0; i < servletDescriptors.length; i++){
- addServlet(JBossWSCreationUtils.getProjectByName(model
- .getWebProjectName()), servletDescriptors[i], webApp);
+ for (int i = 0; i < servletDescriptors.length; i++) {
+ addjeeServlet(JBossWSCreationUtils
+ .getProjectByName(model.getWebProjectName()),
+ servletDescriptors[i], webApp);
}
}
+ if (object instanceof org.eclipse.jst.j2ee.webapplication.WebApp) {
+ org.eclipse.jst.j2ee.webapplication.WebApp webApp =
(org.eclipse.jst.j2ee.webapplication.WebApp) object;
+ for (int i = 0; i < servletDescriptors.length; i++) {
+ addServlet(JBossWSCreationUtils.getProjectByName(model
+ .getWebProjectName()), servletDescriptors[i],
+ webApp);
+ }
+ }
}
}, null);
return status;
}
- private ServletDescriptor getAxisServletDescriptor(String clsName) {
+ @SuppressWarnings("unchecked")
+ protected void addServlet(IProject projectByName,
+ ServletDescriptor servletDescriptor,
+ org.eclipse.jst.j2ee.webapplication.WebApp webapp) {
+ List theServlets = webapp.getServlets();
+ for (int i = 0; i < theServlets.size(); i++) {
+ Servlet aServlet = (Servlet) theServlets.get(i);
+ if (aServlet.getServletName().equals(servletDescriptor._name)) {
+ return;
+ }
+ }
+ org.eclipse.jst.j2ee.webapplication.WebapplicationFactory factory =
org.eclipse.jst.j2ee.webapplication.WebapplicationFactory.eINSTANCE;
+ org.eclipse.jst.j2ee.webapplication.Servlet servlet = factory
+ .createServlet();
+ org.eclipse.jst.j2ee.webapplication.ServletType servletType = factory
+ .createServletType();
+ servlet.setWebType(servletType);
+ servlet.setServletName(servletDescriptor._name);
+ servletType.setClassName(servletDescriptor._className);
+ if (servletDescriptor._displayName != null) {
+ servlet.setDisplayName(servletDescriptor._displayName);
+ }
+ webapp.getServlets().add(servlet);
+ if (servletDescriptor._mappings != null) {
+ org.eclipse.jst.j2ee.webapplication.ServletMapping servletMapping = factory
+ .createServletMapping();
+ servletMapping.setServlet(servlet);
+ servletMapping.setUrlPattern(servletDescriptor._mappings);
+ webapp.getServletMappings().add(servletMapping);
+ }
+
+ }
+
+ private ServletDescriptor getServletDescriptor(String clsName) {
+
ServletDescriptor sd = new ServletDescriptor();
sd._name = JBossWSCreationUtils.classNameFromQualifiedName(clsName);
sd._displayName = sd._name;
@@ -96,7 +140,7 @@
}
@SuppressWarnings("unchecked")
- public void addServlet(IProject webProject,
+ public void addjeeServlet(IProject webProject,
ServletDescriptor servletDescriptor, WebApp webapp) {
List theServlets = webapp.getServlets();
for (int i = 0; i < theServlets.size(); i++) {
Modified:
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboss/tools/ws/creation/core/messages/JBossWSCreationCore.properties
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboss/tools/ws/creation/core/messages/JBossWSCreationCore.properties 2008-06-04
02:26:52 UTC (rev 8529)
+++
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboss/tools/ws/creation/core/messages/JBossWSCreationCore.properties 2008-06-04
05:10:56 UTC (rev 8530)
@@ -15,7 +15,7 @@
ERROR_NO_ANNOTATION=This class has no required JAXWS Annotation!
WEBSERVICE_ANNOTATION_CHECK=@WebService(
WEBSERVICE_ANNOTATION=@WebService
-ERROR_NO_CLASS= The class '{0}' cannot be loaded via project {1}.Check that the
project contains the class, or that the class is loadable according to the Java Build Path
of the project.
+ERROR_NO_CLASS= The class {0} cannot be loaded via project {1}.Check that the project
contains the class, or that the class is loadable according to the Java Build Path of the
project.
ERROR_WS_LOCATION=The JBoss WS Runtime Location is NULL. Please set the location on JBoss
WS preferences page.
WEBSERVICEClient_ANNOTATION=@WebServiceClient
CLIENTSAMPLEPACKAGENAME=.clientsample
Show replies by thread