You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2007/02/26 16:05:45 UTC

svn commit: r511843 - in /webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb: EJBInOnlyMessageReceiver.java EJBInOutAsyncMessageReceiver.java EJBMessageReceiver.java EJBUtil.java

Author: dims
Date: Mon Feb 26 07:05:44 2007
New Revision: 511843

URL: http://svn.apache.org/viewvc?view=rev&rev=511843
Log:
oops! looks like i run patch twice

Modified:
    webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBInOnlyMessageReceiver.java
    webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBInOutAsyncMessageReceiver.java
    webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBMessageReceiver.java
    webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBUtil.java

Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBInOnlyMessageReceiver.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBInOnlyMessageReceiver.java?view=diff&rev=511843&r1=511842&r2=511843
==============================================================================
--- webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBInOnlyMessageReceiver.java (original)
+++ webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBInOnlyMessageReceiver.java Mon Feb 26 07:05:44 2007
@@ -25,30 +25,3 @@
         return EJBUtil.makeNewServiceObject(msgContext);
     }
 }
-package org.apache.axis2.rpc.receivers.ejb;
-
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver;
-/*
-* Copyright 2004,2005 The Apache Software Foundation.
-*
-* Licensed 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.
-*/
-
-public class EJBInOnlyMessageReceiver extends RPCInOnlyMessageReceiver {
-
-    protected Object makeNewServiceObject(MessageContext msgContext) throws AxisFault {
-        return EJBUtil.makeNewServiceObject(msgContext);
-    }
-}

Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBInOutAsyncMessageReceiver.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBInOutAsyncMessageReceiver.java?view=diff&rev=511843&r1=511842&r2=511843
==============================================================================
--- webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBInOutAsyncMessageReceiver.java (original)
+++ webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBInOutAsyncMessageReceiver.java Mon Feb 26 07:05:44 2007
@@ -25,30 +25,3 @@
         return EJBUtil.makeNewServiceObject(msgContext);
     }
 }
-package org.apache.axis2.rpc.receivers.ejb;
-
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.rpc.receivers.RPCInOutAsyncMessageReceiver;
-/*
-* Copyright 2004,2005 The Apache Software Foundation.
-*
-* Licensed 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.
-*/
-
-public class EJBInOutAsyncMessageReceiver extends RPCInOutAsyncMessageReceiver {
-
-    protected Object makeNewServiceObject(MessageContext msgContext) throws AxisFault {
-        return EJBUtil.makeNewServiceObject(msgContext);
-    }
-}

Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBMessageReceiver.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBMessageReceiver.java?view=diff&rev=511843&r1=511842&r2=511843
==============================================================================
--- webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBMessageReceiver.java (original)
+++ webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBMessageReceiver.java Mon Feb 26 07:05:44 2007
@@ -25,30 +25,3 @@
         return EJBUtil.makeNewServiceObject(msgContext);
     }
 }
-package org.apache.axis2.rpc.receivers.ejb;
-
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.rpc.receivers.RPCMessageReceiver;
-/*
-* Copyright 2004,2005 The Apache Software Foundation.
-*
-* Licensed 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.
-*/
-
-public class EJBMessageReceiver extends RPCMessageReceiver {
-
-    protected Object makeNewServiceObject(MessageContext msgContext) throws AxisFault {
-        return EJBUtil.makeNewServiceObject(msgContext);
-    }
-}

Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBUtil.java?view=diff&rev=511843&r1=511842&r2=511843
==============================================================================
--- webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBUtil.java (original)
+++ webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/ejb/EJBUtil.java Mon Feb 26 07:05:44 2007
@@ -290,295 +290,3 @@
         }
     }
 }
-package org.apache.axis2.rpc.receivers.ejb;
-
-import edu.emory.mathcs.backport.java.util.concurrent.*;
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.description.AxisService;
-import org.apache.axis2.description.Parameter;
-import org.apache.axis2.util.threadpool.DefaultThreadFactory;
-
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import java.lang.reflect.Method;
-import java.util.Properties;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-/*
-* Copyright 2004,2005 The Apache Software Foundation.
-*
-* Licensed 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.
-*/
-
-public class EJBUtil {
-    public static final java.lang.String EJB_JNDI_NAME = "beanJndiName";
-    public static final java.lang.String EJB_HOME_INTERFACE_NAME = "homeInterfaceName";
-    public static final java.lang.String EJB_REMOTE_INTERFACE_NAME = "remoteInterfaceName";
-    public static final java.lang.String EJB_LOCAL_HOME_INTERFACE_NAME = "localHomeInterfaceName";
-    public static final java.lang.String EJB_LOCAL_INTERFACE_NAME = "localInterfaceName";
-    public static final java.lang.String EJB_INITIAL_CONTEXT_FACTORY = "jndiContextClass";
-    public static final java.lang.String EJB_PROVIDER_URL = "providerUrl";
-    public static final java.lang.String EJB_JNDI_USERNAME = "jndiUser";
-    public static final java.lang.String EJB_JNDI_PASSWORD = "jndiPassword";
-
-    private static ExecutorService workerPool = null;
-
-    static {
-        workerPool = new ThreadPoolExecutor(1, 50, 150L, TimeUnit.SECONDS, new LinkedBlockingQueue(),
-                new DefaultThreadFactory(new ThreadGroup("EJB provider thread group"), "EJBProvider"));
-    }
-
-    /**
-     * Return a object which implements the service.
-     *
-     * @param msgContext the message context
-     * @return an object that implements the service
-     * @throws AxisFault if fails
-     */
-    protected static Object makeNewServiceObject(MessageContext msgContext) throws AxisFault {
-        CountDownLatch startLatch = new CountDownLatch(1);
-        CountDownLatch stopLatch = new CountDownLatch(1);
-        EJBClientWorker worker = new EJBClientWorker(msgContext, startLatch, stopLatch);
-        workerPool.execute(worker);
-        startLatch.countDown();
-        try {
-            stopLatch.await();
-        } catch (InterruptedException e) {
-            throw AxisFault.makeFault(e);
-        }
-
-        if (worker.getException()!=null) {
-            throw AxisFault.makeFault(worker.getException());
-        }
-
-        return worker.getReturnedValue();
-    }
-
-    private static class EJBClientWorker implements Runnable {
-
-        private MessageContext msgContext = null;
-        private CountDownLatch startLatch = null;
-        private CountDownLatch stopLatch = null;
-        protected static final Class[] empty_class_array = new Class[0];
-        protected static final Object[] empty_object_array = new Object[0];
-        private static InitialContext cached_context = null;
-        private Exception exception = null;
-        private Object returnedValue = null;
-
-        public EJBClientWorker(MessageContext msgContext, CountDownLatch startLatch, CountDownLatch stopLatch) {
-            this.msgContext = msgContext;
-            this.startLatch = startLatch;
-            this.stopLatch = stopLatch;
-        }
-
-        public void run() {
-            try {
-                startLatch.await();
-                final AxisService service = msgContext.getAxisService();
-                AccessController.doPrivileged(
-                        new PrivilegedAction() {
-                            public Object run() {
-                                Thread.currentThread().setContextClassLoader(service.getClassLoader());
-                                return null;
-                            }
-                        }
-                );
-                Parameter remoteHomeName = service.getParameter(EJB_HOME_INTERFACE_NAME);
-                Parameter localHomeName = service.getParameter(EJB_LOCAL_HOME_INTERFACE_NAME);
-                Parameter jndiName = service.getParameter(EJB_JNDI_NAME);
-                Parameter homeName = (remoteHomeName != null ? remoteHomeName:localHomeName);
-
-                if (jndiName == null || jndiName.getValue() == null) {
-                    throw new AxisFault("jndi name is not specified");
-                } else if (homeName == null || homeName.getValue() == null) {
-                    // cannot find both remote home and local home
-                    throw new AxisFault("ejb remote/local home class name is not specified");
-                }
-
-                // we create either the ejb using either the RemoteHome or LocalHome object
-                if (remoteHomeName != null)
-                    returnedValue = createRemoteEJB(msgContext, ((String) jndiName.getValue()).trim(), ((String) homeName.getValue()).trim());
-                else
-                    returnedValue = createLocalEJB(msgContext, ((String) jndiName.getValue()).trim(), ((String) homeName.getValue()).trim());
-            } catch (Exception e) {
-                e.printStackTrace();
-                exception = e;
-            } finally {
-                stopLatch.countDown();
-            }
-        }
-
-        /**
-         * Create an EJB using a remote home object
-         *
-         * @param msgContext the message context
-         * @param beanJndiName The JNDI name of the EJB remote home class
-         * @param homeName the name of the home interface class
-         * @return an EJB
-         * @throws Exception If fails
-         */
-        private Object createRemoteEJB(MessageContext msgContext, String beanJndiName, String homeName) throws Exception {
-            // Get the EJB Home object from JNDI
-            Object ejbHome = getEJBHome(msgContext.getAxisService(), beanJndiName);
-            Class cls = getContextClassLoader().loadClass(homeName);
-            Object ehome = javax.rmi.PortableRemoteObject.narrow(ejbHome, cls);
-
-            // Invoke the create method of the ejbHome class without actually
-            // touching any EJB classes (i.e. no cast to EJBHome)
-            Method createMethod = cls.getMethod("create", empty_class_array);
-
-            return createMethod.invoke(ehome, empty_object_array);
-        }
-
-        /**
-         * Create an EJB using a local home object
-         *
-         * @param msgContext the message context
-         * @param beanJndiName The JNDI name of the EJB local home class
-         * @param homeName the name of the home interface class
-         * @return an EJB
-         * @throws Exception if fails
-         */
-        private Object createLocalEJB(MessageContext msgContext, String beanJndiName, String homeName)
-                throws Exception {
-            // Get the EJB Home object from JNDI
-            Object ejbHome = getEJBHome(msgContext.getAxisService(), beanJndiName);
-
-            // the home object is a local home object
-            Object ehome;
-
-            Class cls = getContextClassLoader().loadClass(homeName);
-
-            if (cls.isInstance(ejbHome))
-                ehome = ejbHome;
-            else {
-                throw new ClassCastException("bad ejb home type");
-            }
-
-            // Invoke the create method of the ejbHome class without actually
-            // touching any EJB classes (i.e. no cast to EJBLocalHome)
-            Method createMethod = cls.getMethod("create", empty_class_array);
-
-            return createMethod.invoke(ehome, empty_object_array);
-        }
-
-        /**
-         * Common routine to do the JNDI lookup on the Home interface object
-         * username and password for jndi lookup are got from the configuration or from
-         * the messageContext if not found in the configuration
-         * @param service AxisService object
-         * @param beanJndiName JNDI name of the EJB home object
-         * @return EJB home object
-         * @throws AxisFault If fals
-         */
-        private Object getEJBHome(AxisService service, String beanJndiName) throws AxisFault {
-            Object ejbHome;
-
-            // Set up an InitialContext and use it get the beanJndiName from JNDI
-            try {
-                Properties properties = null;
-
-                // collect all the properties we need to access JNDI:
-                // username, password, factoryclass, contextUrl
-
-                // username
-                Parameter username = service.getParameter(EJB_JNDI_USERNAME);
-                if (username != null) {
-                    if (properties == null)
-                        properties = new Properties();
-                    properties.setProperty(Context.SECURITY_PRINCIPAL, ((String) username.getValue()).trim());
-                }
-
-                // password
-                Parameter password = service.getParameter(EJB_JNDI_PASSWORD);
-                if (password != null) {
-                    if (properties == null)
-                        properties = new Properties();
-                    properties.setProperty(Context.SECURITY_CREDENTIALS, ((String) password.getValue()).trim());
-                }
-
-                // factory class
-                Parameter factoryClass = service.getParameter(EJB_INITIAL_CONTEXT_FACTORY);
-                if (factoryClass != null) {
-                    if (properties == null)
-                        properties = new Properties();
-                    properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, ((String) factoryClass.getValue()).trim());
-                }
-
-                // contextUrl
-                Parameter contextUrl = service.getParameter(EJB_PROVIDER_URL);
-                if (contextUrl != null) {
-                    if (properties == null)
-                        properties = new Properties();
-                    properties.setProperty(Context.PROVIDER_URL, ((String) contextUrl.getValue()).trim());
-                }
-
-                // get context using these properties
-                InitialContext context = getContext(properties);
-
-                // if we didn't get a context, fail
-                if (context == null)
-                    throw new AxisFault("cannot create initial context");
-
-                ejbHome = getEJBHome(context, beanJndiName);
-
-                if (ejbHome == null)
-                    throw new AxisFault("cannot find jndi home");
-            }
-            catch (Exception exception) {
-                throw AxisFault.makeFault(exception);
-            }
-
-            return ejbHome;
-        }
-
-        private InitialContext getCachedContext()
-                throws javax.naming.NamingException {
-            if (cached_context == null)
-                cached_context = new InitialContext();
-            return cached_context;
-        }
-
-
-        private InitialContext getContext(Properties properties)
-                throws AxisFault, javax.naming.NamingException {
-            return ((properties == null)
-                    ? getCachedContext()
-                    : new InitialContext(properties));
-        }
-
-        private Object getEJBHome(InitialContext context, String beanJndiName)
-                throws AxisFault, javax.naming.NamingException {
-            return context.lookup(beanJndiName);
-        }
-
-        private ClassLoader getContextClassLoader() {
-            return (ClassLoader) AccessController.doPrivileged(
-                    new PrivilegedAction() {
-                        public Object run() {
-                            return Thread.currentThread().getContextClassLoader();
-                        }
-                    }
-            );
-        }
-
-        public Exception getException() {
-            return exception;
-        }
-
-        public Object getReturnedValue() {
-            return returnedValue;
-        }
-    }
-}



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org