dev@glassfish.java.net

request for approval (issue 10776 redux)

From: Bobby Bissett <Robert.Bissett_at_Sun.COM>
Date: Wed, 18 Nov 2009 21:46:37 -0500

Jerome,

This is basically the same diff as before, but I removed the web
services class from the EJBInvocation interface that was causing
trouble with the web profile and replaced it with Object. The related
cts test passes and am running QL now.

if (QLWebPass && QLGlassfishPass && youApproveAgain) {
        commit();
}

https://glassfish.dev.java.net/issues/show_bug.cgi?id=10776

Thanks,
Bobby


----------------------------------------

Index: webservices/jsr109-impl/src/main/java/org/glassfish/webservices/
EjbRuntimeEndpointInfo.java
===================================================================
--- webservices/jsr109-impl/src/main/java/org/glassfish/webservices/
EjbRuntimeEndpointInfo.java (revision 34517)
+++ webservices/jsr109-impl/src/main/java/org/glassfish/webservices/
EjbRuntimeEndpointInfo.java (working copy)
@@ -1,7 +1,7 @@
/*
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
  *
- * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
  *
  * The contents of this file are subject to the terms of either the GNU
  * General Public License Version 2 only ("GPL") or the Common
Development
@@ -62,6 +62,7 @@
import org.glassfish.api.invocation.ComponentInvocation;
import org.glassfish.api.invocation.InvocationManager;
import org.glassfish.api.admin.ServerEnvironment;
+import org.glassfish.ejb.api.EJBInvocation;


/**
@@ -120,7 +121,7 @@

     public Object prepareInvocation(boolean doPreInvoke)
         throws Exception {
- ComponentInvocation inv;
+ ComponentInvocation inv = null;
         AdapterInvocationInfo adapterInvInfo = new
AdapterInvocationInfo();
         // For proper injection of handlers, we have to configure
handler
         // after invManager.preInvoke but the Invocation.contextData
has to be set
@@ -176,7 +177,6 @@
         if(doPreInvoke) {
             inv = container.startInvocation();
             adapterInvInfo.setInv(inv);
-
         }

         // Now process handlers and init jaxws RI
@@ -310,7 +310,10 @@
         //does not have the jaxwsContextDelegate set
         //set it using this method
         addWSContextInfo(wsCtxt);
-
+ if (inv != null) {
+ EJBInvocation ejbInv = (EJBInvocation) inv;
+ ejbInv.setWebServiceContext(wsCtxt);
+ }
         adapterInvInfo.setAdapter(adapter);
         return adapterInvInfo;
     }

Index: ejb/ejb-container/src/main/java/com/sun/ejb/EjbInvocation.java
===================================================================
--- ejb/ejb-container/src/main/java/com/sun/ejb/EjbInvocation.java
(revision 34517)
+++ ejb/ejb-container/src/main/java/com/sun/ejb/EjbInvocation.java
(working copy)
@@ -2,7 +2,7 @@
/*
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
  *
- * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
  *
  * The contents of this file are subject to the terms of either the GNU
  * General Public License Version 2 only ("GPL") or the Common
Development
@@ -497,11 +497,16 @@
         InterceptorUtil.checkSetParameters(params, getMethod());
         this.methodParams = params;
     }
-
- //The following method is not part of InvocationContext interface
- // but needed for JAXWS message context propagation
- public void setContextData(WebServiceContext context) {
- this.webServiceContext = context;
+
+ /*
+ * Method takes Object to decouple EJBInvocation interface
+ * from jaxws (which isn't available in all profiles).
+ */
+ public void setWebServiceContext(Object webServiceContext) {
+ // shouldn't be necessary, but to be safe
+ if (webServiceContext instanceof WebServiceContext) {
+ this.webServiceContext = (WebServiceContext)
webServiceContext;
+ }
     }

     /**
Index: ejb/ejb-internal-api/src/main/java/org/glassfish/ejb/api/
EJBInvocation.java
===================================================================
--- ejb/ejb-internal-api/src/main/java/org/glassfish/ejb/api/
EJBInvocation.java (revision 34517)
+++ ejb/ejb-internal-api/src/main/java/org/glassfish/ejb/api/
EJBInvocation.java (working copy)
@@ -1,7 +1,7 @@
/*
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
  *
- * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
  *
  * The contents of this file are subject to the terms of either the GNU
  * General Public License Version 2 only ("GPL") or the Common
Development
@@ -121,4 +121,5 @@

     public void setWebServiceMethod(Method method);
     public Method getWebServiceMethod();
+ public void setWebServiceContext(Object webServiceContext);
}