Author: alessio.soldano(a)jboss.com
Date: 2011-04-07 09:41:58 -0400 (Thu, 07 Apr 2011)
New Revision: 14035
Modified:
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/AbstractInvoker.java
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/InvokerEJB3.java
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/InvokerJSE.java
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/ServletControllerExt.java
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/transport/ServletHelper.java
Log:
Refactor WebServiceContextFactory lookup in cxf invokers + use server integration
classloader for SPI lookups in endpoint at runtime (ServletControllerExt and
ServletHelper)
Modified:
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/AbstractInvoker.java
===================================================================
---
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/AbstractInvoker.java 2011-04-07
13:40:02 UTC (rev 14034)
+++
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/AbstractInvoker.java 2011-04-07
13:41:58 UTC (rev 14035)
@@ -73,10 +73,14 @@
import org.apache.cxf.service.Service;
import org.apache.cxf.service.invoker.Invoker;
import org.apache.cxf.service.model.BindingOperationInfo;
+import org.jboss.wsf.spi.SPIProvider;
+import org.jboss.wsf.spi.SPIProviderResolver;
+import org.jboss.wsf.spi.classloading.ClassLoaderProvider;
import org.jboss.wsf.spi.deployment.Endpoint;
import org.jboss.wsf.spi.invocation.Invocation;
import org.jboss.wsf.spi.invocation.InvocationContext;
import org.jboss.wsf.spi.invocation.InvocationHandler;
+import org.jboss.wsf.spi.invocation.WebServiceContextFactory;
/**
* An abstract CXF invoker
@@ -91,6 +95,7 @@
{
private static final Object[] NO_ARGS = new Object[]{};
private Object targetBean;
+ private WebServiceContextFactory contextFactory;
public void setTargetBean(Object targetBean)
{
@@ -327,5 +332,16 @@
ctx.put(key.getKey(), key.getValue(), Scope.HANDLER);
}
}
+
+ protected WebServiceContextFactory getWebServiceContextFactory()
+ {
+ if (contextFactory == null)
+ {
+ ClassLoader cl =
ClassLoaderProvider.getDefaultProvider().getServerIntegrationClassLoader();
+ SPIProvider spiProvider = SPIProviderResolver.getInstance(cl).getProvider();
+ contextFactory = spiProvider.getSPI(WebServiceContextFactory.class, cl);
+ }
+ return contextFactory;
+ }
}
Modified:
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/InvokerEJB3.java
===================================================================
---
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/InvokerEJB3.java 2011-04-07
13:40:02 UTC (rev 14034)
+++
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/InvokerEJB3.java 2011-04-07
13:41:58 UTC (rev 14035)
@@ -24,10 +24,7 @@
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
-import org.jboss.wsf.spi.SPIProvider;
-import org.jboss.wsf.spi.SPIProviderResolver;
import org.jboss.wsf.spi.invocation.InvocationType;
-import org.jboss.wsf.spi.invocation.WebServiceContextFactory;
/**
* An XFire invoker for EJB3
@@ -40,8 +37,6 @@
{
protected WebServiceContext getWebServiceContext(MessageContext msgCtx)
{
- SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
- WebServiceContextFactory contextFactory =
spiProvider.getSPI(WebServiceContextFactory.class);
- return contextFactory.newWebServiceContext(InvocationType.JAXWS_EJB3, msgCtx);
+ return
getWebServiceContextFactory().newWebServiceContext(InvocationType.JAXWS_EJB3, msgCtx);
}
}
Modified:
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/InvokerJSE.java
===================================================================
---
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/InvokerJSE.java 2011-04-07
13:40:02 UTC (rev 14034)
+++
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/InvokerJSE.java 2011-04-07
13:41:58 UTC (rev 14035)
@@ -24,10 +24,7 @@
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
-import org.jboss.wsf.spi.SPIProvider;
-import org.jboss.wsf.spi.SPIProviderResolver;
import org.jboss.wsf.spi.invocation.InvocationType;
-import org.jboss.wsf.spi.invocation.WebServiceContextFactory;
/**
* An CXF invoker for JSE
@@ -40,8 +37,6 @@
{
protected WebServiceContext getWebServiceContext(MessageContext msgCtx)
{
- SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
- WebServiceContextFactory contextFactory =
spiProvider.getSPI(WebServiceContextFactory.class);
- return contextFactory.newWebServiceContext(InvocationType.JAXWS_JSE, msgCtx);
+ return getWebServiceContextFactory().newWebServiceContext(InvocationType.JAXWS_JSE,
msgCtx);
}
}
Modified:
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/ServletControllerExt.java
===================================================================
---
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/ServletControllerExt.java 2011-04-07
13:40:02 UTC (rev 14034)
+++
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/ServletControllerExt.java 2011-04-07
13:41:58 UTC (rev 14035)
@@ -41,6 +41,7 @@
import org.apache.cxf.transports.http.QueryHandlerRegistry;
import org.jboss.wsf.spi.SPIProvider;
import org.jboss.wsf.spi.SPIProviderResolver;
+import org.jboss.wsf.spi.classloading.ClassLoaderProvider;
import org.jboss.wsf.spi.deployment.Endpoint;
import org.jboss.wsf.spi.management.EndpointMetrics;
import org.jboss.wsf.spi.management.ServerConfig;
@@ -63,8 +64,9 @@
super(cxfTransport, config, servletCtx, bus);
this.cxfTransport = cxfTransport;
this.bus = bus;
- SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
- serverConfig = spiProvider.getSPI(ServerConfigFactory.class).getServerConfig();
+ ClassLoader cl =
ClassLoaderProvider.getDefaultProvider().getServerIntegrationClassLoader();
+ SPIProvider spiProvider = SPIProviderResolver.getInstance(cl).getProvider();
+ serverConfig = spiProvider.getSPI(ServerConfigFactory.class,
cl).getServerConfig();
}
/**
Modified:
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/transport/ServletHelper.java
===================================================================
---
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/transport/ServletHelper.java 2011-04-07
13:40:02 UTC (rev 14034)
+++
stack/cxf/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/cxf/transport/ServletHelper.java 2011-04-07
13:41:58 UTC (rev 14035)
@@ -45,6 +45,7 @@
import org.jboss.wsf.common.injection.InjectionHelper;
import org.jboss.wsf.spi.SPIProvider;
import org.jboss.wsf.spi.SPIProviderResolver;
+import org.jboss.wsf.spi.classloading.ClassLoaderProvider;
import org.jboss.wsf.spi.deployment.Endpoint;
import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
import org.jboss.wsf.spi.invocation.EndpointAssociation;
@@ -66,8 +67,9 @@
public static Endpoint initEndpoint(ServletConfig servletConfig, String servletName)
{
- SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
- EndpointRegistry epRegistry =
spiProvider.getSPI(EndpointRegistryFactory.class).getEndpointRegistry();
+ ClassLoader cl =
ClassLoaderProvider.getDefaultProvider().getServerIntegrationClassLoader();
+ SPIProvider spiProvider = SPIProviderResolver.getInstance(cl).getProvider();
+ EndpointRegistry epRegistry = spiProvider.getSPI(EndpointRegistryFactory.class,
cl).getEndpointRegistry();
ServletContext context = servletConfig.getServletContext();
String contextPath = context.getContextPath();
Show replies by date