You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2007/04/29 15:50:50 UTC
svn commit: r533505 - in /incubator/cxf/trunk:
api/src/main/java/org/apache/cxf/
rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/
rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/
rt/transports/http/src/main/java/org/apache/cxf/transport/s...
Author: dkulp
Date: Sun Apr 29 06:50:48 2007
New Revision: 533505
URL: http://svn.apache.org/viewvc?view=rev&rev=533505
Log:
Fix issue with using the wrong bus in servlets
Modified:
incubator/cxf/trunk/api/src/main/java/org/apache/cxf/BusFactory.java
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java
incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletTransportFactory.java
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http/HTTPConduitTest.java
Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/BusFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/BusFactory.java?view=diff&rev=533505&r1=533504&r2=533505
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/BusFactory.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/BusFactory.java Sun Apr 29 06:50:48 2007
@@ -76,6 +76,7 @@
*/
public static synchronized void setDefaultBus(Bus bus) {
defaultBus = bus;
+ setThreadDefaultBus(bus);
}
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java?view=diff&rev=533505&r1=533504&r2=533505
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java Sun Apr 29 06:50:48 2007
@@ -196,12 +196,7 @@
if (null != server) {
server.stop();
}
- }
-
- public ServerImpl getServer() {
- return (ServerImpl) server;
- }
-
+ }
/**
* inject resources into servant. The resources are injected
@@ -243,74 +238,87 @@
protected void doPublish(String addr) {
checkPublishPermission();
- checkProperties();
-
- // Initialize the endpointName so we can do configureObject
- if (endpointName == null) {
- JaxWsImplementorInfo implInfo = new JaxWsImplementorInfo(implementor.getClass());
- endpointName = implInfo.getEndpointName();
- }
-
- configureObject(this);
-
- // Set up the server factory
- serverFactory.setAddress(addr);
- serverFactory.setStart(false);
- serverFactory.setEndpointName(endpointName);
- serverFactory.setServiceBean(implementor);
- serverFactory.setBus(bus);
- serverFactory.setFeatures(features);
-
- // Be careful not to override any serverfactory settings as a user might
- // have supplied their own.
- if (getWsdlLocation() != null) {
- serverFactory.setWsdlURL(getWsdlLocation());
- }
-
- if (bindingUri != null) {
- serverFactory.setBindingId(bindingUri);
- }
-
- if (serviceName != null) {
- serverFactory.getServiceFactory().setServiceName(serviceName);
- }
-
- configureObject(serverFactory);
- server = serverFactory.create();
-
- init();
-
- org.apache.cxf.endpoint.Endpoint endpoint = getEndpoint();
- if (getInInterceptors() != null) {
- endpoint.getInInterceptors().addAll(getInInterceptors());
- }
- if (getOutInterceptors() != null) {
- endpoint.getOutInterceptors().addAll(getOutInterceptors());
- }
- if (getInFaultInterceptors() != null) {
- endpoint.getInFaultInterceptors().addAll(getInFaultInterceptors());
- }
- if (getOutFaultInterceptors() != null) {
- endpoint.getOutFaultInterceptors().addAll(getOutFaultInterceptors());
- }
-
- if (properties != null) {
- endpoint.putAll(properties);
+ ServerImpl serv = getServer(addr);
+ if (addr != null) {
+ serv.getEndpoint().getEndpointInfo().setAddress(addr);
}
+ serv.start();
+ }
+
+ public ServerImpl getServer() {
+ return getServer(null);
+ }
+ public synchronized ServerImpl getServer(String addr) {
+ if (server == null) {
+ checkProperties();
+
+ // Initialize the endpointName so we can do configureObject
+ if (endpointName == null) {
+ JaxWsImplementorInfo implInfo = new JaxWsImplementorInfo(implementor.getClass());
+ endpointName = implInfo.getEndpointName();
+ }
- if (endpointName != null) {
- serverFactory.getServiceFactory().setEndpointName(endpointName);
+ if (serviceName != null) {
+ serverFactory.getServiceFactory().setServiceName(serviceName);
+ }
+
+ configureObject(this);
+
+ // Set up the server factory
+ serverFactory.setAddress(addr);
+ serverFactory.setStart(false);
+ serverFactory.setEndpointName(endpointName);
+ serverFactory.setServiceBean(implementor);
+ serverFactory.setBus(bus);
+ serverFactory.setFeatures(features);
+
+ // Be careful not to override any serverfactory settings as a user might
+ // have supplied their own.
+ if (getWsdlLocation() != null) {
+ serverFactory.setWsdlURL(getWsdlLocation());
+ }
+
+ if (bindingUri != null) {
+ serverFactory.setBindingId(bindingUri);
+ }
+
+ if (serviceName != null) {
+ serverFactory.getServiceFactory().setServiceName(serviceName);
+ }
+
+ configureObject(serverFactory);
+
+ server = serverFactory.create();
+
+ init();
+
+ org.apache.cxf.endpoint.Endpoint endpoint = getEndpoint();
+ if (getInInterceptors() != null) {
+ endpoint.getInInterceptors().addAll(getInInterceptors());
+ }
+ if (getOutInterceptors() != null) {
+ endpoint.getOutInterceptors().addAll(getOutInterceptors());
+ }
+ if (getInFaultInterceptors() != null) {
+ endpoint.getInFaultInterceptors().addAll(getInFaultInterceptors());
+ }
+ if (getOutFaultInterceptors() != null) {
+ endpoint.getOutFaultInterceptors().addAll(getOutFaultInterceptors());
+ }
+
+ if (properties != null) {
+ endpoint.putAll(properties);
+ }
+
+ configureObject(endpoint.getService());
+ configureObject(endpoint);
}
-
- configureObject(endpoint.getService());
- configureObject(endpoint);
-
- server.start();
+ return (ServerImpl) server;
}
org.apache.cxf.endpoint.Endpoint getEndpoint() {
- return ((ServerImpl)getServer()).getEndpoint();
+ return ((ServerImpl)getServer(null)).getEndpoint();
}
private void configureObject(Object instance) {
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java?view=diff&rev=533505&r1=533504&r2=533505
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java Sun Apr 29 06:50:48 2007
@@ -67,20 +67,20 @@
String binding = getBindingId();
if (binding == null) {
binding = jaxBid;
-
- if (binding.equals(SOAPBinding.SOAP11HTTP_BINDING)
- || binding.equals(SOAPBinding.SOAP11HTTP_MTOM_BINDING)
- || binding.equals(SOAPBinding.SOAP12HTTP_BINDING)
- || binding.equals(SOAPBinding.SOAP12HTTP_MTOM_BINDING)) {
- binding = "http://schemas.xmlsoap.org/soap/";
-
- if (getBindingConfig() == null) {
- setBindingConfig(new JaxWsSoapBindingConfiguration(sf));
- }
- }
-
setBindingId(binding);
}
+
+ if (binding.equals(SOAPBinding.SOAP11HTTP_BINDING)
+ || binding.equals(SOAPBinding.SOAP11HTTP_MTOM_BINDING)
+ || binding.equals(SOAPBinding.SOAP12HTTP_BINDING)
+ || binding.equals(SOAPBinding.SOAP12HTTP_MTOM_BINDING)) {
+ binding = "http://schemas.xmlsoap.org/soap/";
+ setBindingId(binding);
+ if (getBindingConfig() == null) {
+ setBindingConfig(new JaxWsSoapBindingConfiguration(sf));
+ }
+ }
+
boolean messageMode = implInfo.getServiceMode().equals(javax.xml.ws.Service.Mode.MESSAGE);
if (getBindingConfig() instanceof JaxWsSoapBindingConfiguration) {
@@ -94,7 +94,6 @@
conf.setVersion(Soap12.getInstance());
conf.setMtomEnabled(true);
}
-
if (jaxBid.equals(SOAPBinding.SOAP11HTTP_MTOM_BINDING)) {
conf.setMtomEnabled(true);
}
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java?view=diff&rev=533505&r1=533504&r2=533505
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java Sun Apr 29 06:50:48 2007
@@ -51,7 +51,7 @@
public ServiceDelegate createServiceDelegate(URL url,
QName qname,
Class cls) {
- Bus bus = BusFactory.getDefaultBus();
+ Bus bus = BusFactory.getThreadDefaultBus();
return new ServiceImpl(bus, url, qname, cls);
}
@@ -60,7 +60,7 @@
Endpoint ep = null;
if (EndpointUtils.isValidImplementor(implementor)) {
- Bus bus = BusFactory.getDefaultBus();
+ Bus bus = BusFactory.getThreadDefaultBus();
ep = new EndpointImpl(bus, implementor, bindingId);
return ep;
} else {
Modified: incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletTransportFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletTransportFactory.java?view=diff&rev=533505&r1=533504&r2=533505
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletTransportFactory.java (original)
+++ incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletTransportFactory.java Sun Apr 29 06:50:48 2007
@@ -73,6 +73,9 @@
}
private String getTrimmedPath(String path) {
+ if (path == null) {
+ return "/";
+ }
final String lh = "http://localhost/";
final String lhs = "https://localhost/";
Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http/HTTPConduitTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http/HTTPConduitTest.java?view=diff&rev=533505&r1=533504&r2=533505
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http/HTTPConduitTest.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http/HTTPConduitTest.java Sun Apr 29 06:50:48 2007
@@ -29,6 +29,7 @@
import javax.xml.namespace.QName;
import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
import org.apache.cxf.bus.spring.SpringBusFactory;
import org.apache.cxf.configuration.security.AuthorizationPolicy;
import org.apache.cxf.configuration.security.FiltersType;
@@ -245,7 +246,8 @@
class DefaultBusFactory extends SpringBusFactory {
public Bus createBus(URL config) {
Bus bus = super.createBus(config, true);
- defaultBus = bus;
+ BusFactory.setDefaultBus(bus);
+ BusFactory.setThreadDefaultBus(bus);
return bus;
}
}