Author: cschneider
Date: Sun Mar 27 22:00:23 2011
New Revision: 1086052
URL: http://svn.apache.org/viewvc?rev=1086052&view=rev
Log:
CXF-3419 Created new HttpTransportFactory that replaces http client only, http
jetty, http osgi and http servlet transport. Some broken jaxrs tests remain and
the destinationRegistry is not yet correctly pulled in osgi
Added:
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyDestinationFactory.java
- copied, changed from r1085147,
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPTransportFactory.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPTransportFactory.java
- copied, changed from r1085147,
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPTransportFactory.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HttpDestinationFactory.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletDestinationFactory.java
cxf/trunk/rt/transports/http/src/main/resources/META-INF/spring/
cxf/trunk/rt/transports/http/src/main/resources/META-INF/spring/osgiservlet.xml
- copied, changed from r1085147,
cxf/trunk/rt/transports/http-osgi/src/main/resources/META-INF/spring/cxf-transport-osgi.xml
Removed:
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPTransportFactory.java
cxf/trunk/rt/transports/http-osgi/src/main/java/org/apache/cxf/transport/http_osgi/OsgiServlet.java
cxf/trunk/rt/transports/http-osgi/src/main/java/org/apache/cxf/transport/http_osgi/SpringOsgiServlet.java
cxf/trunk/rt/transports/http-osgi/src/test/java/org/apache/cxf/transport/http_osgi/OsgiServletTest.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPTransportFactory.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/ClientOnlyHTTPTransportFactory.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/AbstractCXFServlet.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/CXFNonSpringServlet.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/CXFSpringServlet.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletTransportFactory.java
cxf/trunk/rt/transports/http/src/test/java/org/apache/cxf/transport/servlet/AbstractCXFServletTest.java
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ClientConfiguration.java
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/servlet/CXFNonSpringJaxrsServlet.java
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
cxf/trunk/rt/transports/http-jetty/src/main/resources/META-INF/cxf/bus-extensions.txt
cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java
cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactoryTest.java
cxf/trunk/rt/transports/http-osgi/src/main/resources/META-INF/cxf/osgi/cxf-extension-osgi.xml
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/DestinationRegistry.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/DestinationRegistryImpl.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/CXFServlet.java
cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/bus-extensions.txt
cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/cxf-servlet.xml
cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/servlet/NoSpringServletServer.java
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java?rev=1086052&r1=1086051&r2=1086052&view=diff
==============================================================================
---
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
(original)
+++
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
Sun Mar 27 22:00:23 2011
@@ -48,7 +48,6 @@ import javax.ws.rs.ext.MessageBodyReader
import javax.ws.rs.ext.MessageBodyWriter;
import org.apache.cxf.Bus;
-import org.apache.cxf.BusException;
import org.apache.cxf.common.i18n.BundleUtils;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.endpoint.ConduitSelector;
@@ -70,9 +69,7 @@ import org.apache.cxf.phase.PhaseChainCa
import org.apache.cxf.phase.PhaseInterceptorChain;
import org.apache.cxf.phase.PhaseManager;
import org.apache.cxf.service.Service;
-import org.apache.cxf.transport.ConduitInitiatorManager;
import org.apache.cxf.transport.MessageObserver;
-import org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory;
/**
* Common proxy and http-centric client implementation
@@ -540,20 +537,7 @@ public class AbstractClient implements C
try {
cfg.prepareConduitSelector(message);
} catch (Fault ex) {
- LOG.fine("Failure to prepare a message from conduit selector");
- if (ex.getCause() instanceof BusException) {
- String code = ((BusException)ex.getCause()).getCode();
- if ("NO_CONDUIT_INITIATOR".equals(code)) {
- ConduitInitiatorManager cim =
cfg.getBus().getExtension(ConduitInitiatorManager.class);
- ClientOnlyHTTPTransportFactory factory = new
ClientOnlyHTTPTransportFactory();
- factory.setBus(cfg.getBus());
- cim.registerConduitInitiator(
-
cfg.getConduitSelector().getEndpoint().getEndpointInfo().getTransportId(),
factory);
- cfg.prepareConduitSelector(message);
- } else {
- throw ex;
- }
- }
+ LOG.warning("Failure to prepare a message from conduit selector");
}
message.getExchange().put(ConduitSelector.class,
cfg.getConduitSelector());
}
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ClientConfiguration.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ClientConfiguration.java?rev=1086052&r1=1086051&r2=1086052&view=diff
==============================================================================
---
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ClientConfiguration.java
(original)
+++
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ClientConfiguration.java
Sun Mar 27 22:00:23 2011
@@ -24,7 +24,6 @@ import java.util.Map;
import java.util.logging.Logger;
import org.apache.cxf.Bus;
-import org.apache.cxf.BusException;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.common.util.ModCountCopyOnWriteArrayList;
import org.apache.cxf.endpoint.ConduitSelector;
@@ -36,9 +35,7 @@ import org.apache.cxf.message.ExchangeIm
import org.apache.cxf.message.Message;
import org.apache.cxf.message.MessageImpl;
import org.apache.cxf.transport.Conduit;
-import org.apache.cxf.transport.ConduitInitiatorManager;
import org.apache.cxf.transport.MessageObserver;
-import org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory;
import org.apache.cxf.transport.http.HTTPConduit;
/**
@@ -83,19 +80,6 @@ public class ClientConfiguration impleme
getConduitSelector().prepare(message);
} catch (Fault ex) {
LOG.fine("Failure to prepare a message from conduit selector");
- if (ex.getCause() instanceof BusException) {
- String code = ((BusException)ex.getCause()).getCode();
- if ("NO_CONDUIT_INITIATOR".equals(code)) {
- ConduitInitiatorManager cim =
getBus().getExtension(ConduitInitiatorManager.class);
- ClientOnlyHTTPTransportFactory factory = new
ClientOnlyHTTPTransportFactory();
- factory.setBus(getBus());
- cim.registerConduitInitiator(
-
getConduitSelector().getEndpoint().getEndpointInfo().getTransportId(), factory);
- getConduitSelector().prepare(message);
- } else {
- throw ex;
- }
- }
}
}
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/servlet/CXFNonSpringJaxrsServlet.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/servlet/CXFNonSpringJaxrsServlet.java?rev=1086052&r1=1086051&r2=1086052&view=diff
==============================================================================
---
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/servlet/CXFNonSpringJaxrsServlet.java
(original)
+++
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/servlet/CXFNonSpringJaxrsServlet.java
Sun Mar 27 22:00:23 2011
@@ -42,9 +42,9 @@ import org.apache.cxf.jaxrs.lifecycle.Si
import org.apache.cxf.jaxrs.utils.ResourceUtils;
import org.apache.cxf.message.Message;
import org.apache.cxf.message.MessageUtils;
-import org.apache.cxf.transport.servlet.CXFNonSpringServlet;
+import org.apache.cxf.transport.servlet.CXFServlet;
-public class CXFNonSpringJaxrsServlet extends CXFNonSpringServlet {
+public class CXFNonSpringJaxrsServlet extends CXFServlet {
private static final Logger LOG =
LogUtils.getL7dLogger(CXFNonSpringJaxrsServlet.class);
@@ -62,10 +62,10 @@ public class CXFNonSpringJaxrsServlet ex
private static final String JAXRS_APPLICATION_PARAM =
"javax.ws.rs.Application";
+
@Override
- public void loadBus(ServletConfig servletConfig) throws ServletException {
- super.loadBus(servletConfig);
-
+ public void init(ServletConfig servletConfig) throws ServletException {
+ super.init(servletConfig);
String applicationClass =
servletConfig.getInitParameter(JAXRS_APPLICATION_PARAM);
if (applicationClass != null) {
createServerFromApplication(applicationClass, servletConfig);
@@ -73,6 +73,7 @@ public class CXFNonSpringJaxrsServlet ex
}
JAXRSServerFactoryBean bean = new JAXRSServerFactoryBean();
+ bean.setBus(getBus());
String address = servletConfig.getInitParameter(SERVICE_ADDRESS_PARAM);
if (address == null) {
Copied:
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyDestinationFactory.java
(from r1085147,
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPTransportFactory.java)
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyDestinationFactory.java?p2=cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyDestinationFactory.java&p1=cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPTransportFactory.java&r1=1085147&r2=1086052&rev=1086052&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPTransportFactory.java
(original)
+++
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyDestinationFactory.java
Sun Mar 27 22:00:23 2011
@@ -20,94 +20,21 @@ package org.apache.cxf.transport.http_je
import java.io.IOException;
-import java.security.GeneralSecurityException;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.Resource;
-import javax.imageio.IIOException;
-
import org.apache.cxf.Bus;
import org.apache.cxf.common.injection.NoJSR250Annotations;
import org.apache.cxf.service.model.EndpointInfo;
-import org.apache.cxf.transport.Destination;
-import org.apache.cxf.transport.DestinationFactory;
import org.apache.cxf.transport.http.AbstractHTTPDestination;
-import org.apache.cxf.transport.http.AbstractHTTPTransportFactory;
-
-@NoJSR250Annotations(unlessNull = { "bus" })
-public class JettyHTTPTransportFactory extends AbstractHTTPTransportFactory
- implements DestinationFactory {
+import org.apache.cxf.transport.http.DestinationRegistry;
+import org.apache.cxf.transport.http.HttpDestinationFactory;
- public JettyHTTPTransportFactory() {
- super();
- }
- public JettyHTTPTransportFactory(Bus b) {
- super(b);
- }
-
- @Resource
- public void setBus(Bus b) {
- super.setBus(b);
- }
-
- @PostConstruct
- public final void finalizeConfig() {
- if (null == bus) {
- return;
- }
- // This call will register the server engine factory
- // with the Bus.
- getJettyHTTPServerEngineFactory();
- }
-
- /**
- * This method returns the Jetty HTTP Server Engine Factory.
- */
- protected JettyHTTPServerEngineFactory getJettyHTTPServerEngineFactory() {
- // We have got to *always* get this off the bus, because it may have
- // been overridden by Spring Configuration initially.
- // Spring Configuration puts it on the correct bus.
- JettyHTTPServerEngineFactory serverEngineFactory =
- getBus().getExtension(JettyHTTPServerEngineFactory.class);
- // If it's not there, then create it and register it.
- // Spring may override it later, but we need it here for default
- // with no spring configuration.
- if (serverEngineFactory == null) {
- serverEngineFactory = new JettyHTTPServerEngineFactory();
- serverEngineFactory.setBus(getBus());
- }
- return serverEngineFactory;
- }
-
- public synchronized Destination getDestination(EndpointInfo endpointInfo)
- throws IOException {
-
- String addr = endpointInfo.getAddress();
- AbstractHTTPDestination destination =
registry.getDestinationForPath(addr);
- if (destination == null) {
- destination = createDestination(endpointInfo);
- }
-
- return destination;
- }
-
- private synchronized AbstractHTTPDestination createDestination(
- EndpointInfo endpointInfo
- ) throws IOException {
- JettyHTTPDestination destination =
- new JettyHTTPDestination(getBus(),
- registry,
- endpointInfo,
- this.getJettyHTTPServerEngineFactory());
+@NoJSR250Annotations()
+public class JettyDestinationFactory implements HttpDestinationFactory {
- registry.addDestination(endpointInfo.getAddress(), destination);
- configure(destination);
- try {
- destination.finalizeConfig();
- } catch (GeneralSecurityException ex) {
- throw new IIOException("JSSE Security Exception ", ex);
- }
- return destination;
+ public AbstractHTTPDestination createDestination(EndpointInfo
endpointInfo, Bus bus,
+ DestinationRegistry
registry) throws IOException {
+ JettyHTTPServerEngineFactory serverEngineFactory = bus
+ .getExtension(JettyHTTPServerEngineFactory.class);
+ return new JettyHTTPDestination(bus, registry, endpointInfo,
serverEngineFactory);
}
}
Modified:
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java?rev=1086052&r1=1086051&r2=1086052&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
(original)
+++
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
Sun Mar 27 22:00:23 2011
@@ -139,13 +139,14 @@ public class JettyHTTPDestination extend
* after the configuration items have been set.
*
*/
- public void finalizeConfig()
- throws GeneralSecurityException,
- IOException {
-
+ public void finalizeConfig() {
assert !configFinalized;
- retrieveEngine();
+ try {
+ retrieveEngine();
+ } catch (Exception e) {
+ throw new RuntimeException(e.getMessage(), e);
+ }
configFinalized = true;
}
Modified:
cxf/trunk/rt/transports/http-jetty/src/main/resources/META-INF/cxf/bus-extensions.txt
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/main/resources/META-INF/cxf/bus-extensions.txt?rev=1086052&r1=1086051&r2=1086052&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http-jetty/src/main/resources/META-INF/cxf/bus-extensions.txt
(original)
+++
cxf/trunk/rt/transports/http-jetty/src/main/resources/META-INF/cxf/bus-extensions.txt
Sun Mar 27 22:00:23 2011
@@ -1,3 +1,3 @@
-org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory::true
+org.apache.cxf.transport.http_jetty.JettyDestinationFactory::true
org.apache.cxf.transport.http_jetty.JettyHTTPServerEngineFactory::true
Modified:
cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java?rev=1086052&r1=1086051&r2=1086052&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java
(original)
+++
cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java
Sun Mar 27 22:00:23 2011
@@ -61,6 +61,7 @@ import org.apache.cxf.transport.Destinat
import org.apache.cxf.transport.MessageObserver;
import org.apache.cxf.transport.http.AbstractHTTPDestination;
import org.apache.cxf.transport.http.DestinationRegistry;
+import org.apache.cxf.transport.http.HTTPTransportFactory;
import org.apache.cxf.transports.http.QueryHandler;
import org.apache.cxf.transports.http.QueryHandlerRegistry;
import org.apache.cxf.transports.http.StemMatchingQueryHandler;
@@ -110,7 +111,7 @@ public class JettyHTTPDestinationTest ex
private QueryHandler wsdlQueryHandler;
private QueryHandlerRegistry queryHandlerRegistry;
private List<QueryHandler> queryHandlerList;
- private JettyHTTPTransportFactory transportFactory;
+ private HTTPTransportFactory transportFactory;
/**
* This class replaces the engine in the Jetty Destination.
@@ -169,8 +170,8 @@ public class JettyHTTPDestinationTest ex
@Test
public void testRandomPortAllocation() throws Exception {
- transportFactory = new JettyHTTPTransportFactory();
- transportFactory.setBus(new CXFBusImpl());
+ transportFactory = new HTTPTransportFactory();
+ transportFactory.setBus(BusFactory.getDefaultBus());
ServiceInfo serviceInfo = new ServiceInfo();
serviceInfo.setName(new QName("bla", "Service"));
EndpointInfo ei = new EndpointInfo(serviceInfo, "");
@@ -221,17 +222,16 @@ public class JettyHTTPDestinationTest ex
return httpEngine;
}
};
- transportFactory = new JettyHTTPTransportFactory();
+ transportFactory = new HTTPTransportFactory();
transportFactory.setBus(new CXFBusImpl());
transportFactory.getBus().setExtension(
factory, JettyHTTPServerEngineFactory.class);
-
TestJettyDestination testDestination =
new TestJettyDestination(transportFactory.getBus(),
transportFactory.getRegistry(),
- ei,
-
transportFactory.getJettyHTTPServerEngineFactory());
+ ei,
+ factory);
testDestination.finalizeConfig();
Message mi = testDestination.retrieveFromContinuation(httpRequest);
assertNull("Continuations must be ignored", mi);
@@ -239,8 +239,8 @@ public class JettyHTTPDestinationTest ex
@Test
public void testGetMultiple() throws Exception {
- transportFactory = new JettyHTTPTransportFactory();
- transportFactory.setBus(new CXFBusImpl());
+ transportFactory = new HTTPTransportFactory();
+ transportFactory.setBus(BusFactory.getDefaultBus(true));
ServiceInfo serviceInfo = new ServiceInfo();
serviceInfo.setName(new QName("bla", "Service"));
@@ -432,7 +432,7 @@ public class JettyHTTPDestinationTest ex
address = getEPR("bar/foo");
bus = new CXFBusImpl();
- transportFactory = new JettyHTTPTransportFactory();
+ transportFactory = new HTTPTransportFactory();
transportFactory.setBus(bus);
ServiceInfo serviceInfo = new ServiceInfo();
@@ -527,16 +527,7 @@ public class JettyHTTPDestinationTest ex
address = getEPR("bar/foo");
- transportFactory = new JettyHTTPTransportFactory() {
- JettyHTTPServerEngineFactory serverEngineFactory;
- @Override
- public JettyHTTPServerEngineFactory
getJettyHTTPServerEngineFactory() {
- if (serverEngineFactory == null) {
- serverEngineFactory = new JettyHTTPServerEngineFactory();
- }
- return serverEngineFactory;
- }
- };
+ transportFactory = new HTTPTransportFactory();
final ConduitInitiator ci = new ConduitInitiator() {
public Conduit getConduit(EndpointInfo targetInfo) throws
IOException {
Modified:
cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactoryTest.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactoryTest.java?rev=1086052&r1=1086051&r2=1086052&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactoryTest.java
(original)
+++
cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactoryTest.java
Sun Mar 27 22:00:23 2011
@@ -27,6 +27,8 @@ import org.apache.cxf.BusFactory;
import org.apache.cxf.bus.spring.SpringBusFactory;
import org.apache.cxf.transport.DestinationFactory;
import org.apache.cxf.transport.DestinationFactoryManager;
+import org.apache.cxf.transport.http.HTTPTransportFactory;
+
import org.junit.After;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -78,7 +80,7 @@ public class JettyHTTPServerEngineFactor
destFM.getDestinationFactory(
"http://cxf.apache.org/transports/http");
assertNotNull("No DestinationFactory", destF);
- assertTrue(JettyHTTPTransportFactory.class.isInstance(destF));
+ assertTrue(HTTPTransportFactory.class.isInstance(destF));
// And the JettyHTTPServerEngineFactory should be there.
JettyHTTPServerEngineFactory factory =
Modified:
cxf/trunk/rt/transports/http-osgi/src/main/resources/META-INF/cxf/osgi/cxf-extension-osgi.xml
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-osgi/src/main/resources/META-INF/cxf/osgi/cxf-extension-osgi.xml?rev=1086052&r1=1086051&r2=1086052&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http-osgi/src/main/resources/META-INF/cxf/osgi/cxf-extension-osgi.xml
(original)
+++
cxf/trunk/rt/transports/http-osgi/src/main/resources/META-INF/cxf/osgi/cxf-extension-osgi.xml
Sun Mar 27 22:00:23 2011
@@ -24,13 +24,6 @@
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/osgi
http://www.springframework.org/schema/osgi/spring-osgi.xsd">
- <bean id="ServletTransportFactory"
- class="org.apache.cxf.transport.servlet.ServletTransportFactory"
- lazy-init="true">
- <constructor-arg ref="osgiDestinationRegistry"/>
- <property name="bus" ref="cxf"/>
- </bean>
-
<osgi:reference id="osgiDestinationRegistry"
interface="org.apache.cxf.transport.http.DestinationRegistry" />
Modified:
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java?rev=1086052&r1=1086051&r2=1086052&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
(original)
+++
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
Sun Mar 27 22:00:23 2011
@@ -632,6 +632,9 @@ public abstract class AbstractHTTPDestin
protected boolean contextMatchOnExact() {
return "exact".equals(contextMatchStrategy);
}
+
+ public void finalizeConfig() {
+ }
public String getBeanName() {
String beanName = null;
Modified:
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/DestinationRegistry.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/DestinationRegistry.java?rev=1086052&r1=1086051&r2=1086052&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/DestinationRegistry.java
(original)
+++
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/DestinationRegistry.java
Sun Mar 27 22:00:23 2011
@@ -25,7 +25,7 @@ import org.apache.cxf.transport.Abstract
public interface DestinationRegistry {
- void addDestination(String path, AbstractHTTPDestination destination);
+ void addDestination(AbstractHTTPDestination destination);
void removeDestination(String path);
@@ -41,5 +41,4 @@ public interface DestinationRegistry {
Set<String> getDestinationsPaths();
- String getTrimmedPath(String path);
}
Modified:
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/DestinationRegistryImpl.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/DestinationRegistryImpl.java?rev=1086052&r1=1086051&r2=1086052&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/DestinationRegistryImpl.java
(original)
+++
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/DestinationRegistryImpl.java
Sun Mar 27 22:00:23 2011
@@ -42,11 +42,11 @@ public class DestinationRegistryImpl imp
public DestinationRegistryImpl() {
}
- public void addDestination(String path, AbstractHTTPDestination
destination) {
- String p = getTrimmedPath(path);
- destinations.putIfAbsent(p, destination);
+ public void addDestination(AbstractHTTPDestination destination) {
+ String path =
getTrimmedPath(destination.getEndpointInfo().getAddress());
+ destinations.putIfAbsent(path, destination);
try {
- decodedDestinations.put(URLDecoder.decode(p, "ISO-8859-1"),
destination);
+ decodedDestinations.put(URLDecoder.decode(path, "ISO-8859-1"),
destination);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("Unsupported Encoding", e);
}
@@ -127,7 +127,7 @@ public class DestinationRegistryImpl imp
* @param path
* @return trimmed path
*/
- public String getTrimmedPath(String path) {
+ public static String getTrimmedPath(String path) {
if (path == null) {
return "/";
}
Copied:
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPTransportFactory.java
(from r1085147,
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPTransportFactory.java)
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPTransportFactory.java?p2=cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPTransportFactory.java&p1=cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPTransportFactory.java&r1=1085147&r2=1086052&rev=1086052&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPTransportFactory.java
(original)
+++
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPTransportFactory.java
Sun Mar 27 22:00:23 2011
@@ -19,6 +19,7 @@
package org.apache.cxf.transport.http;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -27,17 +28,25 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;
+import javax.annotation.Resource;
import javax.wsdl.extensions.http.HTTPAddress;
import javax.wsdl.extensions.soap.SOAPAddress;
import javax.xml.namespace.QName;
import org.apache.cxf.Bus;
+import org.apache.cxf.common.injection.NoJSR250Annotations;
import org.apache.cxf.configuration.Configurer;
import org.apache.cxf.service.Service;
import org.apache.cxf.service.model.BindingInfo;
import org.apache.cxf.service.model.EndpointInfo;
import org.apache.cxf.service.model.ServiceInfo;
import org.apache.cxf.transport.AbstractTransportFactory;
+import org.apache.cxf.transport.Conduit;
+import org.apache.cxf.transport.ConduitInitiator;
+import org.apache.cxf.transport.Destination;
+import org.apache.cxf.transport.DestinationFactory;
+import org.apache.cxf.transport.servlet.ServletDestinationFactory;
+import org.apache.cxf.ws.addressing.EndpointReferenceType;
import org.apache.cxf.wsdl.http.AddressType;
import org.apache.cxf.wsdl11.WSDLEndpointFactory;
@@ -45,9 +54,10 @@ import org.apache.cxf.wsdl11.WSDLEndpoin
/**
*
*/
-public abstract class AbstractHTTPTransportFactory
+@NoJSR250Annotations(unlessNull = "bus")
+public class HTTPTransportFactory
extends AbstractTransportFactory
- implements WSDLEndpointFactory {
+ implements WSDLEndpointFactory, ConduitInitiator, DestinationFactory {
public static final List<String> DEFAULT_NAMESPACES
= Arrays.asList(
@@ -69,21 +79,26 @@ public abstract class AbstractHTTPTransp
protected final DestinationRegistry registry;
- public AbstractHTTPTransportFactory() {
+ public HTTPTransportFactory() {
this(new DestinationRegistryImpl());
}
- public AbstractHTTPTransportFactory(Bus b) {
+ public HTTPTransportFactory(Bus b) {
this(b, new DestinationRegistryImpl());
}
- public AbstractHTTPTransportFactory(Bus b, DestinationRegistry registry) {
+ public HTTPTransportFactory(Bus b, DestinationRegistry registry) {
super(DEFAULT_NAMESPACES, b);
this.registry = registry;
}
- public AbstractHTTPTransportFactory(DestinationRegistry registry) {
+ public HTTPTransportFactory(DestinationRegistry registry) {
super(DEFAULT_NAMESPACES);
this.registry = registry;
}
+
+ @Resource
+ public void setBus(Bus b) {
+ super.setBus(b);
+ }
public DestinationRegistry getRegistry() {
return registry;
@@ -199,5 +214,52 @@ public abstract class AbstractHTTPTransp
}
}
+
+ /**
+ * This call creates a new HTTPConduit for the endpoint. It is equivalent
+ * to calling getConduit without an EndpointReferenceType.
+ */
+ public Conduit getConduit(EndpointInfo endpointInfo) throws IOException {
+ return getConduit(endpointInfo, endpointInfo.getTarget());
+ }
+
+ /**
+ * This call creates a new HTTP Conduit based on the EndpointInfo and
+ * EndpointReferenceType.
+ * TODO: What are the formal constraints on EndpointInfo and
+ * EndpointReferenceType values?
+ */
+ public Conduit getConduit(
+ EndpointInfo endpointInfo,
+ EndpointReferenceType target
+ ) throws IOException {
+ HTTPConduit conduit = new HTTPConduit(bus, endpointInfo, target);
+ // Spring configure the conduit.
+ String address = conduit.getAddress();
+ if (address != null && address.indexOf('?') != -1) {
+ address = address.substring(0, address.indexOf('?'));
+ }
+ configure(conduit, conduit.getBeanName(), address);
+ conduit.finalizeConfig();
+ return conduit;
+ }
+
+ public Destination getDestination(EndpointInfo endpointInfo) throws
IOException {
+ AbstractHTTPDestination d =
registry.getDestinationForPath(endpointInfo.getAddress());
+ if (d == null) {
+ HttpDestinationFactory jettyFactory =
bus.getExtension(HttpDestinationFactory.class);
+ HttpDestinationFactory servletFactory = new
ServletDestinationFactory();
+ String addr = endpointInfo.getAddress();
+ HttpDestinationFactory factory = servletFactory;
+ if (jettyFactory != null && (addr == null ||
addr.startsWith("http"))) {
+ factory = jettyFactory;
+ }
+ d = factory.createDestination(endpointInfo, getBus(), registry);
+ registry.addDestination(d);
+ configure(d);
+ d.finalizeConfig();
+ }
+ return d;
+ }
}
Added:
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HttpDestinationFactory.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HttpDestinationFactory.java?rev=1086052&view=auto
==============================================================================
---
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HttpDestinationFactory.java
(added)
+++
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HttpDestinationFactory.java
Sun Mar 27 22:00:23 2011
@@ -0,0 +1,30 @@
+/**
+ * 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.cxf.transport.http;
+
+import java.io.IOException;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.service.model.EndpointInfo;
+
+public interface HttpDestinationFactory {
+ AbstractHTTPDestination createDestination(EndpointInfo endpointInfo,
+ Bus bus,
+ DestinationRegistry registry)
throws IOException;
+}
Modified:
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/CXFServlet.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/CXFServlet.java?rev=1086052&r1=1086051&r2=1086052&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/CXFServlet.java
(original)
+++
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/CXFServlet.java
Sun Mar 27 22:00:23 2011
@@ -16,200 +16,98 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.cxf.transport.servlet;
-import java.io.IOException;
-import java.io.InputStream;
-
-import java.util.Collection;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
import javax.servlet.ServletException;
-
-
-import org.apache.cxf.bus.spring.BusApplicationContext;
-import org.apache.cxf.bus.spring.SpringBusFactory;
-import org.apache.cxf.common.classloader.ClassLoaderUtils;
-import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.helpers.CastUtils;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusException;
+import org.apache.cxf.BusFactory;
import org.apache.cxf.resource.ResourceManager;
-import org.apache.cxf.resource.URIResolver;
-import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
+import org.apache.cxf.transport.DestinationFactory;
+import org.apache.cxf.transport.DestinationFactoryManager;
+import org.apache.cxf.transport.http.HTTPTransportFactory;
+import
org.apache.cxf.transport.servlet.servicelist.ServiceListGeneratorServlet;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationEvent;
-import org.springframework.context.ApplicationListener;
-import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.context.event.ContextRefreshedEvent;
-import org.springframework.context.support.AbstractApplicationContext;
-import org.springframework.context.support.GenericApplicationContext;
-import org.springframework.core.io.InputStreamResource;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.web.context.support.WebApplicationContextUtils;
+public class CXFServlet extends AbstractHTTPServlet {
-/**
- * A Servlet which supports loading of JAX-WS endpoints from an
- * XML file and handling requests for endpoints created via other means
- * such as Spring beans, or the Java API. All requests are passed on
- * to the {@link ServletController}.
- *
- */
-public class CXFServlet extends AbstractCXFServlet implements
ApplicationListener {
-
- private GenericApplicationContext childCtx;
- private boolean inRefresh;
-
-
- public static Logger getLogger() {
- return LogUtils.getL7dLogger(CXFServlet.class);
- }
+ private HTTPTransportFactory transportFactory;
+ private Bus bus;
+
+ private ServletController controller;
- public void loadBus(ServletConfig servletConfig) throws ServletException {
- String springCls = "org.springframework.context.ApplicationContext";
- try {
- ClassLoaderUtils.loadClass(springCls, getClass());
- loadSpringBus(servletConfig);
- } catch (ClassNotFoundException e) {
- LOG.log(Level.SEVERE, "FAILED_TO_LOAD_SPRING_BUS", new
Object[]{e});
- throw new ServletException("Can't load bus with Spring context
class", e);
- }
+ public CXFServlet() {
}
-
-
- private void loadSpringBus(ServletConfig servletConfig) throws
ServletException {
-
- // try to pull an existing ApplicationContext out of the
- // ServletContext
- ServletContext svCtx = getServletContext();
-
- // Spring 1.x
- ApplicationContext ctx = (ApplicationContext)svCtx
- .getAttribute("interface
org.springframework.web.context.WebApplicationContext.ROOT");
-
- // Spring 2.0
- if (ctx == null) {
- Object ctxObject = svCtx
-
.getAttribute("org.springframework.web.context.WebApplicationContext.ROOT");
- if (ctxObject instanceof ApplicationContext) {
- ctx = (ApplicationContext) ctxObject;
- } else if (ctxObject != null) {
- // it should be a runtime exception
- Exception ex = (Exception) ctxObject;
- throw new ServletException(ex);
- }
- }
-
- updateContext(servletConfig, ctx);
- if (ctx instanceof ConfigurableApplicationContext) {
- ((ConfigurableApplicationContext)ctx).addApplicationListener(this);
- }
- if (ctx instanceof AbstractApplicationContext) {
- Collection<ApplicationListener> lst = getListeners(ctx);
- if (lst != null && !lst.contains(this)) {
- lst.add(this);
+ @Override
+ public void init(ServletConfig sc) throws ServletException {
+ super.init(sc);
+ if (this.bus == null) {
+ ApplicationContext wac = WebApplicationContextUtils.
+ getWebApplicationContext(sc.getServletContext());
+ String configLocation = sc.getInitParameter("config-location");
+ if (wac == null && (configLocation != null)) {
+ wac = new ClassPathXmlApplicationContext(configLocation);
}
- }
- }
- private Collection<ApplicationListener> getListeners(ApplicationContext
ctx) {
- try {
- Object o =
ctx.getClass().getMethod("getApplicationListeners").invoke(ctx);
- return CastUtils.cast((Collection<?>)o);
- } catch (Exception e) {
- //ignore
- }
- return null;
- }
-
- private void updateContext(ServletConfig servletConfig, ApplicationContext
ctx) {
- /* If ctx is null, normally no ContextLoaderListener
- * was defined in web.xml. Default bus with all extensions
- * will be created in this case.
- *
- * If ctx not null, was already created by ContextLoaderListener.
- * Bus with only those extensions defined in the ctx will be created.
- */
- if (ctx == null) {
- LOG.info("LOAD_BUS_WITHOUT_APPLICATION_CONTEXT");
- bus = new SpringBusFactory().createBus(new String[0]);
- ctx = bus.getExtension(BusApplicationContext.class);
- } else {
- LOG.info("LOAD_BUS_WITH_APPLICATION_CONTEXT");
- inRefresh = true;
- try {
- bus = new SpringBusFactory(ctx).createBus();
- } finally {
- inRefresh = false;
+ if (wac != null) {
+ this.bus = wac.getBean("cxf", Bus.class);
+ } else {
+ this.bus = BusFactory.newInstance().createBus();
}
- }
-
+ }
+
ResourceManager resourceManager =
bus.getExtension(ResourceManager.class);
resourceManager.addResourceResolver(new ServletContextResourceResolver(
-
servletConfig.getServletContext()));
-
- replaceDestinationFactory();
-
- // Set up the ServletController
- controller = createServletController(servletConfig);
-
- // build endpoints from the web.xml or a config file
- loadAdditionalConfig(ctx, servletConfig);
- }
-
- private void loadAdditionalConfig(ApplicationContext ctx,
- ServletConfig servletConfig) {
- String location = servletConfig.getInitParameter("config-location");
- if (location == null) {
- location = "/WEB-INF/cxf-servlet.xml";
- }
- InputStream is = null;
- try {
- is =
servletConfig.getServletContext().getResourceAsStream(location);
-
- if (is == null || is.available() == -1) {
- URIResolver resolver = new URIResolver(location);
+ sc.getServletContext()));
- if (resolver.isResolved()) {
- is = resolver.getInputStream();
+ if (transportFactory == null) {
+ DestinationFactoryManager dfm =
bus.getExtension(DestinationFactoryManager.class);
+ try {
+ DestinationFactory df = dfm
+
.getDestinationFactory("http://cxf.apache.org/transports/http/configuration");
+ if (df instanceof HTTPTransportFactory) {
+ transportFactory = (HTTPTransportFactory)df;
}
+ } catch (BusException e) {
+ // why are we throwing a busexception if the DF isn't found?
}
- } catch (IOException e) {
- //throw new ServletException(e);
- }
-
- if (is != null) {
- LOG.log(Level.INFO, "BUILD_ENDPOINTS_FROM_CONFIG_LOCATION", new
Object[]{location});
- childCtx = new GenericApplicationContext(ctx);
-
- XmlBeanDefinitionReader reader = new
XmlBeanDefinitionReader(childCtx);
- reader.setValidationMode(XmlBeanDefinitionReader.VALIDATION_XSD);
- reader.loadBeanDefinitions(new InputStreamResource(is, location));
-
- childCtx.refresh();
- }
- }
-
- public void destroy() {
- if (childCtx != null) {
- childCtx.destroy();
}
- super.destroy();
+ this.controller = createServletController(sc);
}
- public void onApplicationEvent(ApplicationEvent event) {
- if (!inRefresh && event instanceof ContextRefreshedEvent &&
getServletConfig() != null) {
- //need to re-do the bus/controller stuff
- try {
- inRefresh = true;
- updateContext(this.getServletConfig(),
-
((ContextRefreshedEvent)event).getApplicationContext());
- } finally {
- inRefresh = false;
- }
+ private ServletController createServletController(ServletConfig
servletConfig) {
+ HttpServlet serviceListGeneratorServlet =
+ new ServiceListGeneratorServlet(transportFactory.getRegistry(),
bus);
+ ServletController newController =
+ new ServletController(transportFactory.getRegistry(),
+ servletConfig,
+ serviceListGeneratorServlet);
+ return newController;
+ }
+
+ public Bus getBus() {
+ return bus;
+ }
+
+ public void setBus(Bus bus) {
+ this.bus = bus;
+ }
+
+ @Override
+ protected void invoke(HttpServletRequest request, HttpServletResponse
response) throws ServletException {
+ try {
+ BusFactory.setThreadDefaultBus(bus);
+ controller.invoke(request, response);
+ } finally {
+ BusFactory.setThreadDefaultBus(null);
}
}
-
}
Added:
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletDestinationFactory.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletDestinationFactory.java?rev=1086052&view=auto
==============================================================================
---
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletDestinationFactory.java
(added)
+++
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletDestinationFactory.java
Sun Mar 27 22:00:23 2011
@@ -0,0 +1,35 @@
+/**
+ * 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.cxf.transport.servlet;
+
+import java.io.IOException;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.service.model.EndpointInfo;
+import org.apache.cxf.transport.http.AbstractHTTPDestination;
+import org.apache.cxf.transport.http.DestinationRegistry;
+import org.apache.cxf.transport.http.HttpDestinationFactory;
+
+public class ServletDestinationFactory implements HttpDestinationFactory {
+ public AbstractHTTPDestination createDestination(EndpointInfo
endpointInfo,
+ Bus bus,
+ DestinationRegistry
registry) throws IOException {
+ return new ServletDestination(bus, registry, endpointInfo,
endpointInfo.getAddress());
+ }
+}
Modified:
cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/bus-extensions.txt
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/bus-extensions.txt?rev=1086052&r1=1086051&r2=1086052&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/bus-extensions.txt
(original)
+++
cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/bus-extensions.txt
Sun Mar 27 22:00:23 2011
@@ -1,4 +1,4 @@
-org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory::true
+org.apache.cxf.transport.http.HTTPTransportFactory::true
org.apache.cxf.transport.http.HTTPWSDLExtensionLoader::true
org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder::true
org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder::true
Modified:
cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/cxf-servlet.xml
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/cxf-servlet.xml?rev=1086052&r1=1086051&r2=1086052&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/cxf-servlet.xml
(original)
+++
cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/cxf-servlet.xml
Sun Mar 27 22:00:23 2011
@@ -23,8 +23,5 @@
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
- <bean class="org.apache.cxf.transport.servlet.ServletTransportFactory"
- id="org.apache.cxf.transport.servlet.ServletTransportFactory">
- <property name="bus" ref="cxf"/>
- </bean>
+
</beans>
Copied:
cxf/trunk/rt/transports/http/src/main/resources/META-INF/spring/osgiservlet.xml
(from r1085147,
cxf/trunk/rt/transports/http-osgi/src/main/resources/META-INF/spring/cxf-transport-osgi.xml)
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/resources/META-INF/spring/osgiservlet.xml?p2=cxf/trunk/rt/transports/http/src/main/resources/META-INF/spring/osgiservlet.xml&p1=cxf/trunk/rt/transports/http-osgi/src/main/resources/META-INF/spring/cxf-transport-osgi.xml&r1=1085147&r2=1086052&rev=1086052&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http-osgi/src/main/resources/META-INF/spring/cxf-transport-osgi.xml
(original)
+++
cxf/trunk/rt/transports/http/src/main/resources/META-INF/spring/osgiservlet.xml
Sun Mar 27 22:00:23 2011
@@ -45,7 +45,7 @@ http://www.springframework.org/schema/co
<bean id="destinationRegistry"
class="org.apache.cxf.transport.http.DestinationRegistryImpl" />
- <bean id="osgiServlet"
class="org.apache.cxf.transport.http_osgi.SpringOsgiServlet">
+ <bean id="osgiServlet" class="org.apache.cxf.transport.servlet.CXFServlet">
<constructor-arg ref="destinationRegistry"/>
</bean>
@@ -68,4 +68,4 @@ http://www.springframework.org/schema/co
</osgi:service>
</beans>
-
+
Modified:
cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/servlet/NoSpringServletServer.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/servlet/NoSpringServletServer.java?rev=1086052&r1=1086051&r2=1086052&view=diff
==============================================================================
---
cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/servlet/NoSpringServletServer.java
(original)
+++
cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/servlet/NoSpringServletServer.java
Sun Mar 27 22:00:23 2011
@@ -24,7 +24,7 @@ import org.apache.cxf.Bus;
import org.apache.cxf.BusFactory;
import org.apache.cxf.jaxws.EndpointImpl;
import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
-import org.apache.cxf.transport.servlet.CXFNonSpringServlet;
+import org.apache.cxf.transport.servlet.CXFServlet;
import org.apache.hello_world_soap_http.GreeterImpl;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
@@ -48,16 +48,15 @@ public class NoSpringServletServer exten
ServletContextHandler root = new ServletContextHandler(contexts,
"/",
ServletContextHandler.SESSIONS);
-
- CXFNonSpringServlet cxf = new CXFNonSpringServlet();
+ Bus bus = BusFactory.getDefaultBus(true);
+ CXFServlet cxf = new CXFServlet();
+ cxf.setBus(bus);
ServletHolder servlet = new ServletHolder(cxf);
servlet.setName("soap");
servlet.setForcedPath("soap");
root.addServlet(servlet, "/soap/*");
httpServer.start();
-
- Bus bus = cxf.getBus();
setBus(bus);
BusFactory.setDefaultBus(bus);
GreeterImpl impl = new GreeterImpl();
@@ -65,7 +64,7 @@ public class NoSpringServletServer exten
HelloImpl helloImpl = new HelloImpl();
Endpoint.publish("/Hello", helloImpl);
- ((EndpointImpl)Endpoint.create(helloImpl)).publish();
+ ((EndpointImpl)Endpoint.create(helloImpl)).publish("/");
} catch (Exception e) {
throw new RuntimeException(e);