You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ff...@apache.org on 2009/01/06 11:24:14 UTC
svn commit: r731906 - in /servicemix/smx3/branches/servicemix-3.2:
deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/
distributions/apache-servicemix-web/
distributions/apache-servicemix-web/src/main/java/org/apa...
Author: ffang
Date: Tue Jan 6 02:24:12 2009
New Revision: 731906
URL: http://svn.apache.org/viewvc?rev=731906&view=rev
Log:
[SM-1756]add CXFManagedServlet to apache-servicemix-web to enable servicemix-cxf-bc endpoint deploy into servlet container without starting jetty
Added:
servicemix/smx3/branches/servicemix-3.2/distributions/apache-servicemix-web/src/main/java/org/apache/servicemix/web/cxf/
servicemix/smx3/branches/servicemix-3.2/distributions/apache-servicemix-web/src/main/java/org/apache/servicemix/web/cxf/CXFManagedServlet.java (with props)
Modified:
servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/CxfBcConsumer.java
servicemix/smx3/branches/servicemix-3.2/distributions/apache-servicemix-web/pom.xml
servicemix/smx3/branches/servicemix-3.2/distributions/apache-servicemix-web/src/main/webapp/WEB-INF/web.xml
Modified: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/CxfBcConsumer.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/CxfBcConsumer.java?rev=731906&r1=731905&r2=731906&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/CxfBcConsumer.java (original)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/CxfBcConsumer.java Tue Jan 6 02:24:12 2009
@@ -47,6 +47,7 @@
import com.ibm.wsdl.extensions.soap.SOAPBindingImpl;
import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
import org.apache.cxf.attachment.AttachmentImpl;
import org.apache.cxf.binding.AbstractBindingFactory;
import org.apache.cxf.binding.jbi.JBIFault;
@@ -555,6 +556,11 @@
if (bus == null) {
SpringBusFactory bf = new SpringBusFactory();
bus = bf.createBus(getBusCfg());
+ if (locationURI != null && locationURI.startsWith("/")) {
+ //it's in the servlet container
+ //set this bus so that it could be used in CXFManagerServlet
+ BusFactory.setDefaultBus(bus);
+ }
}
return bus;
} else {
Modified: servicemix/smx3/branches/servicemix-3.2/distributions/apache-servicemix-web/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/distributions/apache-servicemix-web/pom.xml?rev=731906&r1=731905&r2=731906&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/distributions/apache-servicemix-web/pom.xml (original)
+++ servicemix/smx3/branches/servicemix-3.2/distributions/apache-servicemix-web/pom.xml Tue Jan 6 02:24:12 2009
@@ -128,6 +128,26 @@
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-transports-http</artifactId>
+ <version>${cxf-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxws</artifactId>
+ <version>${cxf-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-transports-jbi</artifactId>
+ <version>${cxf-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-bindings-jbi</artifactId>
+ <version>${cxf-version}</version>
+ </dependency>
</dependencies>
<build>
Added: servicemix/smx3/branches/servicemix-3.2/distributions/apache-servicemix-web/src/main/java/org/apache/servicemix/web/cxf/CXFManagedServlet.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/distributions/apache-servicemix-web/src/main/java/org/apache/servicemix/web/cxf/CXFManagedServlet.java?rev=731906&view=auto
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/distributions/apache-servicemix-web/src/main/java/org/apache/servicemix/web/cxf/CXFManagedServlet.java (added)
+++ servicemix/smx3/branches/servicemix-3.2/distributions/apache-servicemix-web/src/main/java/org/apache/servicemix/web/cxf/CXFManagedServlet.java Tue Jan 6 02:24:12 2009
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.servicemix.web.cxf;
+
+
+import java.util.logging.Logger;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.resource.ResourceManager;
+import org.apache.cxf.transport.servlet.CXFNonSpringServlet;
+import org.apache.cxf.transport.servlet.ServletContextResourceResolver;
+
+
+
+public class CXFManagedServlet extends CXFNonSpringServlet {
+
+ static final Logger LOG = getLogger();
+ @Override
+ public void loadBus(ServletConfig servletConfig) throws ServletException {
+ loadBusNoConfig(servletConfig);
+ // You could add the endpoint publish codes here
+ }
+
+ private void loadBusNoConfig(ServletConfig servletConfig) throws ServletException {
+
+ bus = BusFactory.getDefaultBus();
+ ResourceManager resourceManager = bus.getExtension(ResourceManager.class);
+ resourceManager.addResourceResolver(new ServletContextResourceResolver(
+ servletConfig.getServletContext()));
+
+ replaceDestinationFactory();
+ // Set up the ServletController
+ controller = createServletController(servletConfig);
+
+ }
+}
Propchange: servicemix/smx3/branches/servicemix-3.2/distributions/apache-servicemix-web/src/main/java/org/apache/servicemix/web/cxf/CXFManagedServlet.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: servicemix/smx3/branches/servicemix-3.2/distributions/apache-servicemix-web/src/main/java/org/apache/servicemix/web/cxf/CXFManagedServlet.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: servicemix/smx3/branches/servicemix-3.2/distributions/apache-servicemix-web/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/distributions/apache-servicemix-web/src/main/webapp/WEB-INF/web.xml?rev=731906&r1=731905&r2=731906&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/distributions/apache-servicemix-web/src/main/webapp/WEB-INF/web.xml (original)
+++ servicemix/smx3/branches/servicemix-3.2/distributions/apache-servicemix-web/src/main/webapp/WEB-INF/web.xml Tue Jan 6 02:24:12 2009
@@ -104,6 +104,18 @@
<url-pattern>/jbi/*</url-pattern>
</servlet-mapping>
+ <servlet>
+ <servlet-name>cxf</servlet-name>
+ <display-name>cxf</display-name>
+ <description>Apache CXF Endpoint</description>
+ <servlet-class>org.apache.servicemix.web.cxf.CXFManagedServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>cxf</servlet-name>
+ <url-pattern>/services/*</url-pattern>
+ </servlet-mapping>
+
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>