[jboss-cvs] JBossAS SVN: r75047 - trunk/webservices/src/main/org/jboss/wsf/container/jboss50/invocation.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Jun 25 03:20:53 EDT 2008
Author: heiko.braun at jboss.com
Date: 2008-06-25 03:20:53 -0400 (Wed, 25 Jun 2008)
New Revision: 75047
Modified:
trunk/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerEJB3.java
Log:
InvocationHandlerEJB3: lazy initialize invocation target
Modified: trunk/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerEJB3.java
===================================================================
--- trunk/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerEJB3.java 2008-06-25 06:58:10 UTC (rev 75046)
+++ trunk/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerEJB3.java 2008-06-25 07:20:53 UTC (rev 75047)
@@ -49,8 +49,9 @@
private String containerName;
private KernelController houston;
- private ServiceEndpointContainer invocationTarget;
+ private ServiceEndpointContainer serviceEndpointContainer;
+
InvocationHandlerEJB3()
{
houston = KernelLocator.getKernel().getController();
@@ -65,19 +66,30 @@
{
containerName = (String)ep.getProperty(InvocationHandlerEJB3.CONTAINER_NAME);
assert containerName!=null : "Target container name not set";
-
- ControllerContext context = houston.getInstalledContext(containerName);
- if (context == null)
- throw new WebServiceException("Cannot find service endpoint target: " + containerName);
-
- assert (context.getTarget() instanceof ServiceEndpointContainer) : "Invocation target mismatch";
- this.invocationTarget = (ServiceEndpointContainer) context.getTarget();
+
}
+ private ServiceEndpointContainer lazyInitializeInvocationTarget()
+ {
+ if(null==this.serviceEndpointContainer)
+ {
+ ControllerContext context = houston.getInstalledContext(containerName);
+ if (context == null)
+ throw new WebServiceException("Cannot find service endpoint target: " + containerName);
+
+ assert (context.getTarget() instanceof ServiceEndpointContainer) : "Invocation target mismatch";
+ this.serviceEndpointContainer = (ServiceEndpointContainer) context.getTarget();
+ }
+
+ return this.serviceEndpointContainer;
+ }
+
public void invoke(Endpoint ep, Invocation wsInv) throws Exception
{
try
- {
+ {
+ ServiceEndpointContainer invocationTarget = lazyInitializeInvocationTarget();
+
Class beanClass = invocationTarget.getServiceImplementationClass();
Method method = getImplMethod(beanClass, wsInv.getJavaMethod());
Object[] args = wsInv.getArgs();
More information about the jboss-cvs-commits
mailing list