[jboss-cvs] JBossAS SVN: r73406 - in projects/ejb3/trunk/proxy/src: main/java/org/jboss/ejb3/proxy/factory/session/stateless and 8 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu May 15 01:29:47 EDT 2008
Author: ALRubinger
Date: 2008-05-15 01:29:46 -0400 (Thu, 15 May 2008)
New Revision: 73406
Added:
projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionRemoteProxyFactory.java
projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/
projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandler.java
projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandlerBase.java
projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/
projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionProxyInvocationHandler.java
projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionProxyInvocationHandlerBase.java
projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionSpecProxyInvocationHandler.java
projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionSpecProxyInvocationHandlerBase.java
projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/stateless/
projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/stateless/StatelessLocalProxyInvocationHandler.java
projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/stateless/StatelessRemoteProxyInvocationHandler.java
Modified:
projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiRegistrar.java
projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/McProxyObjectFactory.java
projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/StatelessContainer.java
projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/session/unit/ProxySessionTestCase.java
projects/ejb3/trunk/proxy/src/test/resources/org/jboss/ejb3/test/proxy/session/unit/ProxySessionTestCase-beans.xml
Log:
[EJBTHREE-1345] Added InvocationHandler hierarchy (some copied from EJB3 Core), JndiRegistrar now hooked into ProxySessionTestCase
Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionRemoteProxyFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionRemoteProxyFactory.java (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionRemoteProxyFactory.java 2008-05-15 05:29:46 UTC (rev 73406)
@@ -0,0 +1,92 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.proxy.factory.session.stateless;
+
+import org.jboss.ejb3.proxy.factory.session.SessionProxyFactory;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+
+/**
+ * StatelessSessionRemoteProxyFactory
+ *
+ * A SLSB Proxy Factory for Remote Views
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public class StatelessSessionRemoteProxyFactory extends StatelessSessionProxyFactoryBase implements SessionProxyFactory
+{
+ // --------------------------------------------------------------------------------||
+ // Class Members ------------------------------------------------------------------||
+ // --------------------------------------------------------------------------------||
+
+ private static final Logger logger = Logger.getLogger(StatelessSessionRemoteProxyFactory.class);
+
+ // --------------------------------------------------------------------------------||
+ // Constructor --------------------------------------------------------------------||
+ // --------------------------------------------------------------------------------||
+
+ /**
+ * Constructor
+ *
+ * @param metadata The metadata representing this SLSB
+ * @param classloader The ClassLoader associated with the StatelessContainer
+ * for which this ProxyFactory is to generate Proxies
+ */
+ public StatelessSessionRemoteProxyFactory(final JBossSessionBeanMetaData metadata, final ClassLoader classloader)
+ {
+ // Call Super
+ super(metadata, classloader);
+ }
+
+ // --------------------------------------------------------------------------------||
+ // Lifecycle Methods --------------------------------------------------------------||
+ // --------------------------------------------------------------------------------||
+
+ /**
+ * Lifecycle callback to be invoked by the ProxyFactoryDeployer
+ * before the ProxyFactory is able to service requests
+ *
+ * @throws Exception
+ */
+ @Override
+ public void start() throws Exception
+ {
+ super.start();
+ //TODO
+ }
+
+ /**
+ * Lifecycle callback to be invoked by the ProxyFactoryDeployer
+ * before the ProxyFactory is taken out of service,
+ * possibly GC'd
+ *
+ * @throws Exception
+ */
+ @Override
+ public void stop() throws Exception
+ {
+ super.stop();
+ //TODO
+ }
+
+}
Copied: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandler.java (from rev 73398, projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandler.java)
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandler.java (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandler.java 2008-05-15 05:29:46 UTC (rev 73406)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.ejb3.proxy.handler;
+
+import java.lang.reflect.InvocationHandler;
+
+/**
+ * ProxyInvocationHandler
+ *
+ * Defines contract for a generic EJB3 Proxy
+ * Invocation Handler
+ *
+ * @author <a href="mailto:kabir.khan at jboss.org">Kabir Khan</a>
+ * @version $Revision$
+ */
+public interface ProxyInvocationHandler extends InvocationHandler
+{
+ /**
+ * For use in hashCode, toString() and equals() *
+ */
+ String toString();
+
+ Object getAsynchronousProxy(Object proxy);
+}
\ No newline at end of file
Copied: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandlerBase.java (from rev 73398, projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/proxy/handler/BaseProxyInvocationHandler.java)
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandlerBase.java (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/ProxyInvocationHandlerBase.java 2008-05-15 05:29:46 UTC (rev 73406)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.proxy.handler;
+
+/**
+ * ProxyInvocationHandlerBase
+ *
+ * Abstract base from which all Proxy InvocationHandlers
+ * may extend
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public abstract class ProxyInvocationHandlerBase implements ProxyInvocationHandler
+{
+
+}
Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionProxyInvocationHandler.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionProxyInvocationHandler.java (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionProxyInvocationHandler.java 2008-05-15 05:29:46 UTC (rev 73406)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.ejb3.proxy.handler.session;
+
+import org.jboss.ejb3.proxy.handler.ProxyInvocationHandler;
+
+/**
+ * SessionProxyInvocationHandler
+ *
+ * Defines contract for operations required of
+ * a JBoss Session Bean Proxy Invocation Handler
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: 72638 $
+ */
+public interface SessionProxyInvocationHandler extends ProxyInvocationHandler
+{
+
+}
\ No newline at end of file
Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionProxyInvocationHandlerBase.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionProxyInvocationHandlerBase.java (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionProxyInvocationHandlerBase.java 2008-05-15 05:29:46 UTC (rev 73406)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.proxy.handler.session;
+
+import org.jboss.ejb3.proxy.handler.ProxyInvocationHandlerBase;
+
+/**
+ * SessionProxyInvocationHandlerBase
+ *
+ * Abstract base from which all JBoss Session Proxy InvocationHandlers
+ * may extend
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public abstract class SessionProxyInvocationHandlerBase extends ProxyInvocationHandlerBase
+ implements
+ SessionProxyInvocationHandler
+{
+
+}
Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionSpecProxyInvocationHandler.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionSpecProxyInvocationHandler.java (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionSpecProxyInvocationHandler.java 2008-05-15 05:29:46 UTC (rev 73406)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.ejb3.proxy.handler.session;
+
+/**
+ * SessionSpecProxyInvocationHandler
+ *
+ * Defines contract for operations required of
+ * a Session Bean Proxy Invocation Handler
+ * following the EJB3 Specification
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: 72638 $
+ */
+public interface SessionSpecProxyInvocationHandler extends SessionProxyInvocationHandler
+{
+ /**
+ * Returns the business interface upon which
+ * the current invocation was made. If null, this
+ * signifies a non-deterministic state in which any number
+ * of business interfaces may have been bound
+ * to this Proxy
+ *
+ * @return
+ */
+ String getBusinessInterfaceType();
+}
\ No newline at end of file
Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionSpecProxyInvocationHandlerBase.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionSpecProxyInvocationHandlerBase.java (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/SessionSpecProxyInvocationHandlerBase.java 2008-05-15 05:29:46 UTC (rev 73406)
@@ -0,0 +1,78 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.proxy.handler.session;
+
+/**
+ * SessionSpecProxyInvocationHandlerBase
+ *
+ * Abstract base from which all Session Proxy InvocationHandlers
+ * adhering to the EJB3 specification may extend
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public abstract class SessionSpecProxyInvocationHandlerBase extends SessionProxyInvocationHandlerBase
+ implements
+ SessionSpecProxyInvocationHandler
+{
+ // ------------------------------------------------------------------------------||
+ // Instance Members -------------------------------------------------------------||
+ // ------------------------------------------------------------------------------||
+
+ /**
+ * Fully-qualified name of the class targeted either for injection
+ * or casting to support getInvokedBusinessInterface. May be
+ * null to denote non-deterministic invocation
+ */
+ private String businessInterfaceType;
+
+ // ------------------------------------------------------------------------------||
+ // Constructors -----------------------------------------------------------------||
+ // ------------------------------------------------------------------------------||
+
+ /**
+ * Constructor
+ *
+ * @param businessInterfaceType The possibly null businessInterfaceType
+ * marking this invocation hander as specific to a given
+ * EJB3 Business Interface
+ */
+ protected SessionSpecProxyInvocationHandlerBase(String businessInterfaceType)
+ {
+ super();
+ this.setBusinessInterfaceType(businessInterfaceType);
+ }
+
+ // ------------------------------------------------------------------------------||
+ // Accessors / Mutators ---------------------------------------------------------||
+ // ------------------------------------------------------------------------------||
+
+ public String getBusinessInterfaceType()
+ {
+ return businessInterfaceType;
+ }
+
+ protected void setBusinessInterfaceType(String businessInterfaceType)
+ {
+ this.businessInterfaceType = businessInterfaceType;
+ }
+}
Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/stateless/StatelessLocalProxyInvocationHandler.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/stateless/StatelessLocalProxyInvocationHandler.java (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/stateless/StatelessLocalProxyInvocationHandler.java 2008-05-15 05:29:46 UTC (rev 73406)
@@ -0,0 +1,79 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.proxy.handler.session.stateless;
+
+import java.lang.reflect.Method;
+
+import org.jboss.ejb3.proxy.handler.session.SessionSpecProxyInvocationHandlerBase;
+import org.jboss.util.NotImplementedException;
+
+/**
+ * StatelessLocalProxyInvocationHandler
+ *
+ * Implementation of a SLSB Local Proxy Invocation Handler
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public class StatelessLocalProxyInvocationHandler extends SessionSpecProxyInvocationHandlerBase
+{
+
+ // ------------------------------------------------------------------------------||
+ // Constructors -----------------------------------------------------------------||
+ // ------------------------------------------------------------------------------||
+
+ /**
+ * Constructor
+ *
+ * @param businessInterfaceType The possibly null businessInterfaceType
+ * marking this invocation hander as specific to a given
+ * EJB3 Business Interface
+ */
+ protected StatelessLocalProxyInvocationHandler(String businessInterfaceType)
+ {
+ super(businessInterfaceType);
+ }
+
+ // ------------------------------------------------------------------------------||
+ // Required Implementations -----------------------------------------------------||
+ // ------------------------------------------------------------------------------||
+
+ //TODO
+
+ // ------------------------------------------------------------------------------||
+ // TO BE IMPLEMENTED ------------------------------------------------------------||
+ // ------------------------------------------------------------------------------||
+
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
+ {
+ throw new NotImplementedException("ALR");
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.ejb3.proxy.handler.ProxyInvocationHandler#getAsynchronousProxy(java.lang.Object)
+ */
+ public Object getAsynchronousProxy(Object proxy)
+ {
+ throw new NotImplementedException("ALR");
+ }
+
+}
Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/stateless/StatelessRemoteProxyInvocationHandler.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/stateless/StatelessRemoteProxyInvocationHandler.java (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/stateless/StatelessRemoteProxyInvocationHandler.java 2008-05-15 05:29:46 UTC (rev 73406)
@@ -0,0 +1,79 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.proxy.handler.session.stateless;
+
+import java.lang.reflect.Method;
+
+import org.jboss.ejb3.proxy.handler.session.SessionSpecProxyInvocationHandlerBase;
+import org.jboss.util.NotImplementedException;
+
+/**
+ * StatelessRemoteProxyInvocationHandler
+ *
+ * Implementation of a SLSB Remote Proxy Invocation Handler
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public class StatelessRemoteProxyInvocationHandler extends SessionSpecProxyInvocationHandlerBase
+{
+
+ // ------------------------------------------------------------------------------||
+ // Constructors -----------------------------------------------------------------||
+ // ------------------------------------------------------------------------------||
+
+ /**
+ * Constructor
+ *
+ * @param businessInterfaceType The possibly null businessInterfaceType
+ * marking this invocation hander as specific to a given
+ * EJB3 Business Interface
+ */
+ protected StatelessRemoteProxyInvocationHandler(String businessInterfaceType)
+ {
+ super(businessInterfaceType);
+ }
+
+ // ------------------------------------------------------------------------------||
+ // Required Implementations -----------------------------------------------------||
+ // ------------------------------------------------------------------------------||
+
+ //TODO
+
+ // ------------------------------------------------------------------------------||
+ // TO BE IMPLEMENTED ------------------------------------------------------------||
+ // ------------------------------------------------------------------------------||
+
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
+ {
+ throw new NotImplementedException("ALR");
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.ejb3.proxy.handler.ProxyInvocationHandler#getAsynchronousProxy(java.lang.Object)
+ */
+ public Object getAsynchronousProxy(Object proxy)
+ {
+ throw new NotImplementedException("ALR");
+ }
+
+}
Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiRegistrar.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiRegistrar.java 2008-05-15 05:26:23 UTC (rev 73405)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiRegistrar.java 2008-05-15 05:29:46 UTC (rev 73406)
@@ -35,6 +35,9 @@
import org.jboss.ejb3.common.lang.ClassHelper;
import org.jboss.ejb3.common.string.StringUtils;
import org.jboss.ejb3.proxy.factory.ProxyFactory;
+import org.jboss.ejb3.proxy.factory.session.stateless.StatelessSessionLocalProxyFactory;
+import org.jboss.ejb3.proxy.factory.session.stateless.StatelessSessionRemoteProxyFactory;
+import org.jboss.ejb3.proxy.spi.registry.ProxyFactoryAlreadyRegisteredException;
import org.jboss.ejb3.proxy.spi.registry.ProxyFactoryRegistry;
import org.jboss.logging.Logger;
import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
@@ -59,6 +62,23 @@
private static final Logger log = Logger.getLogger(JndiRegistrar.class);
+ /**
+ * The value appended to the key used to bind proxy factories to the registry
+ */
+ private static final String KEY_SUFFIX_PROXY_FACTORY_REGISTRY = "/ProxyFactory";
+
+ /**
+ * The value appended to the key used to bind local proxy factories to the registry
+ */
+ private static final String KEY_SUFFIX_PROXY_FACTORY_REGISTRY_LOCAL = JndiRegistrar.KEY_SUFFIX_PROXY_FACTORY_REGISTRY
+ + "/local";
+
+ /**
+ * The value appended to the key used to bind local remote factories to the registry
+ */
+ private static final String KEY_SUFFIX_PROXY_FACTORY_REGISTRY_REMOTE = JndiRegistrar.KEY_SUFFIX_PROXY_FACTORY_REGISTRY
+ + "/remote";
+
// --------------------------------------------------------------------------------||
// Instance Members ---------------------------------------------------------------||
// --------------------------------------------------------------------------------||
@@ -74,20 +94,8 @@
private ProxyFactoryRegistry registry;
/**
- * Class of the SLSB Local Proxy Factory
+ * Fully-qualified class name of the JNDI Object Factory to Reference for SLSBs
*/
- private Class<?> statelessSessionLocalProxyFactoryClass;
-
- /**
- * Class of the SLSB Remote Proxy Factory
- */
- private Class<?> statelessSessionRemoteProxyFactoryClass;
-
- //TODO MDB, @Service, SFSB Local/Remote
-
- /**
- * Full-qualified class name of the JNDI Object Factory to Reference for SLSBs
- */
private String statelessSessionProxyObjectFactoryType;
//TODO MDB, @Service, SFSB
@@ -102,58 +110,31 @@
*
* @param context The JNDI Context into which Objects will be bound
* @param registry The ProxyFactoryRegistry with which ProxyFactories will be registered
- * @param statelessSessionLocalProxyFactoryType String representation of the SLSB Local Proxy Factory Class
- * @param statelessSessionRemoteProxyFactoryType String representation of the SLSB Remote Proxy Factory Class
* @param statelessSessionProxyObjectFactoryType String representation of the JNDI Object Factory to use for SLSBs
*/
public JndiRegistrar(final Context context, final ProxyFactoryRegistry registry,
- final String statelessSessionLocalProxyFactoryType, final String statelessSessionRemoteProxyFactoryType,
- final String statelessSessionProxyObjectFactoryType)
+ String statelessSessionProxyObjectFactoryType)
{
// Set the Context
assert context != null : this + " may not be configured with null " + Context.class.getName();
this.setContext(context);
- log.debug(this + " has configured " + context);
+ log.debug("Using " + Context.class.getName() + ": " + context);
// Set the ProxyFactoryRegistry
assert registry != null : this + " may not be configured with null " + ProxyFactoryRegistry.class.getName();
this.setRegistry(registry);
- log.debug(this + " using " + registry);
+ log.debug("Using " + ProxyFactoryRegistry.class.getSimpleName() + ": " + registry);
/*
* Perform some assertions and logging
*/
- // SLSB Local
- assert statelessSessionLocalProxyFactoryType != null && !statelessSessionLocalProxyFactoryType.equals("") : "Stateless Session Local Proxy Factory Type must be specified.";
- log.debug(this + " has configured as SLSB Local Proxy Factory: " + statelessSessionLocalProxyFactoryType);
-
- // SLSB Remote
- assert statelessSessionRemoteProxyFactoryType != null && !statelessSessionRemoteProxyFactoryType.equals("") : "Stateless Session Remote Proxy Factory Type must be specified.";
- log.debug(this + " has configured as SLSB Remote Proxy Factory: " + statelessSessionRemoteProxyFactoryType);
-
- //TODO MBD, @Service, SFSB Local/Remote
-
- try
- {
- // Set Proxy Factory Classes
- this.setStatelessSessionLocalProxyFactoryClass(this.getClass().getClassLoader().loadClass(
- statelessSessionLocalProxyFactoryType));
- this.setStatelessSessionRemoteProxyFactoryClass(this.getClass().getClassLoader().loadClass(
- statelessSessionRemoteProxyFactoryType));
-
- //TODO MDB, @Service
- }
- catch (ClassNotFoundException cce)
- {
- throw new RuntimeException("A configured " + ProxyFactory.class.getSimpleName() + " could not be loaded by "
- + this, cce);
- }
-
// Set the SLSB Proxy Object Factory Type
assert statelessSessionProxyObjectFactoryType != null && !statelessSessionProxyObjectFactoryType.equals("") : "SLSB Proxy "
+ ObjectFactory.class.getSimpleName() + " must be specified.";
this.setStatelessSessionProxyObjectFactoryType(statelessSessionProxyObjectFactoryType);
+ log.debug(this + " has configured SLSB JNDI " + ObjectFactory.class.getSimpleName() + ": "
+ + this.getStatelessSessionProxyObjectFactoryType());
}
// --------------------------------------------------------------------------------||
@@ -167,9 +148,9 @@
* implementations required by the EJB
*
* @param md
- * @param containerCl The CL of the Container
+ * @param cl The CL of the Container
*/
- public void bindEjb(JBossEnterpriseBeanMetaData md, ClassLoader containerCl)
+ public void bindEjb(JBossEnterpriseBeanMetaData md, ClassLoader cl)
{
// If we've got a SessionBean
if (md.isSession())
@@ -190,7 +171,7 @@
// Delegate out to session-specific handling
log.debug("Found Session Bean: " + smd.getEjbName());
- this.bindSessionEjb(smd);
+ this.bindSessionEjb(smd, cl);
}
// If this is a MDB
@@ -220,8 +201,10 @@
* described by the specified metadata
*
* @param smd
+ * @param cl The classloader associated with the Container
+ * described by the specified metadata
*/
- protected void bindSessionEjb(JBossSessionBeanMetaData smd)
+ protected void bindSessionEjb(JBossSessionBeanMetaData smd, ClassLoader cl)
{
// If Stateful
if (smd.isStateful())
@@ -244,20 +227,35 @@
String remoteHome = StringUtils.adjustWhitespaceStringToNull(smd.getHome());
// Determine if there are local/remote views
- boolean hasLocalView = localHome != null & businessLocals.size() < 1;
- boolean hasRemoteView = remoteHome != null & businessRemotes.size() < 1;
-
+ boolean hasLocalView = (localHome != null || businessLocals.size() < 1);
+ boolean hasRemoteView = (remoteHome != null || businessRemotes.size() < 1);
+
// If no local or remote views
- if(!hasLocalView && !hasRemoteView)
+ if (!hasLocalView && !hasRemoteView)
{
throw new RuntimeException("EJB " + smd.getEjbName() + " has no local or remote views defined.");
}
- // Create and register Proxy Factories
- //if()
-
- //TODO Left off here
+ /*
+ * Create and register Proxy Factories
+ */
+ // If there's a local view
+ if (hasLocalView)
+ {
+ // Create and register a local proxy factory
+ ProxyFactory factory = new StatelessSessionLocalProxyFactory(smd, cl);
+ this.registerProxyFactory(factory, smd, true);
+ }
+
+ // If there's a remote view
+ if (hasRemoteView)
+ {
+ // Create and register a local proxy factory
+ ProxyFactory factory = new StatelessSessionRemoteProxyFactory(smd, cl);
+ this.registerProxyFactory(factory, smd, false);
+ }
+
// Bind OF to remote default (and possibly home)
// Bind OF to home (if not bound together)
@@ -286,6 +284,37 @@
// --------------------------------------------------------------------------------||
/**
+ * Returns the name of the unique key under which a Proxy Factory will
+ * be registered. Will follow form:
+ *
+ * ejbName/ProxyFactory/(local|remote)
+ *
+ * ...depending upon the specified "isLocal" flag
+ *
+ * @param md
+ * @param isLocal
+ */
+ protected String getProxyFactoryRegistryKey(JBossEnterpriseBeanMetaData md, boolean isLocal)
+ {
+ // Initialize
+ String suffix = null;
+
+ // Set Suffix
+ if (isLocal)
+ {
+ suffix = JndiRegistrar.KEY_SUFFIX_PROXY_FACTORY_REGISTRY_LOCAL;
+ }
+ else
+ {
+ suffix = JndiRegistrar.KEY_SUFFIX_PROXY_FACTORY_REGISTRY_REMOTE;
+ }
+
+ // Assemble and return
+ String key = md.getEjbName() + suffix;
+ return key;
+ }
+
+ /**
* Obtains the return types declared by the "create" methods for the specified home interface.
*
* @param homeInterface
@@ -358,6 +387,44 @@
return types;
}
+ /**
+ * Registers the specified proxy factory into the registry
+ *
+ * @param factory
+ * @param smd Metadata describing the EJB
+ * @param isLocal
+ */
+ protected void registerProxyFactory(ProxyFactory factory, JBossEnterpriseBeanMetaData smd, boolean isLocal)
+ {
+ // Get a unique key
+ String key = this.getProxyFactoryRegistryKey(smd, isLocal);
+ assert !this.getRegistry().isRegistered(key) : "Attempting to register " + factory + " with "
+ + this.getRegistry() + " an already registered key, \"" + key + "\"";
+
+ /*
+ * Note on registry key collisions:
+ *
+ * Indicates that either the keys created are not unique or that we're attempting to redeploy
+ * an EJB that was not properly deregistered. Either way, this is a programmatic problem
+ * and not the fault of the application developer/deployer
+ */
+
+ // Log
+ log.debug("Registering " + factory + " into " + ProxyFactoryRegistry.class.getSimpleName() + " under key \""
+ + key + "\"...");
+
+ // Register
+ try
+ {
+ this.getRegistry().registerProxyFactory(key, factory);
+ }
+ catch (ProxyFactoryAlreadyRegisteredException e)
+ {
+ throw new RuntimeException("Could not register " + factory + " under an already registered key, \"" + key
+ + "\", with " + this.getRegistry(), e);
+ }
+ }
+
// --------------------------------------------------------------------------------||
// Accessors / Mutators -----------------------------------------------------------||
// --------------------------------------------------------------------------------||
@@ -372,26 +439,6 @@
this.registry = registry;
}
- public Class<?> getStatelessSessionLocalProxyFactoryClass()
- {
- return statelessSessionLocalProxyFactoryClass;
- }
-
- public void setStatelessSessionLocalProxyFactoryClass(Class<?> statelessSessionLocalProxyFactoryClass)
- {
- this.statelessSessionLocalProxyFactoryClass = statelessSessionLocalProxyFactoryClass;
- }
-
- public Class<?> getStatelessSessionRemoteProxyFactoryClass()
- {
- return statelessSessionRemoteProxyFactoryClass;
- }
-
- public void setStatelessSessionRemoteProxyFactoryClass(Class<?> statelessSessionRemoteProxyFactoryClass)
- {
- this.statelessSessionRemoteProxyFactoryClass = statelessSessionRemoteProxyFactoryClass;
- }
-
public Context getContext()
{
return context;
Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/McProxyObjectFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/McProxyObjectFactory.java 2008-05-15 05:26:23 UTC (rev 73405)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/McProxyObjectFactory.java 2008-05-15 05:29:46 UTC (rev 73406)
@@ -63,11 +63,12 @@
public McProxyObjectFactory()
{
- //TODO This should not be hardcoded, rather injected, see:
+ //TODO This must not be hardcoded, rather injected, see:
// http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4150515
this.setProxyFactoryRegistry(new InMemoryProxyFactoryRegistry());
// Log warning along with a stacktrace
- log.warn(new RuntimeException(ProxyFactoryRegistry.class.getName() + " should be injected, not hardcoded, "
+ log.warn(new RuntimeException(ProxyFactoryRegistry.class.getName()
+ + " must be injected or looked up, not hardcoded as new instance, "
+ "see http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4150515"));
}
Modified: projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/StatelessContainer.java
===================================================================
--- projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/StatelessContainer.java 2008-05-15 05:26:23 UTC (rev 73405)
+++ projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/common/StatelessContainer.java 2008-05-15 05:29:46 UTC (rev 73406)
@@ -23,15 +23,12 @@
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import javax.naming.InitialContext;
-
-import org.jboss.ejb3.test.proxy.session.MyStatelessLocal;
+import org.jboss.ejb3.proxy.jndiregistrar.JndiRegistrar;
+import org.jboss.ejb3.proxy.mc.MicrocontainerBindings;
+import org.jboss.kernel.Kernel;
import org.jboss.logging.Logger;
import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
-import org.jboss.naming.Util;
-import org.jboss.util.naming.NonSerializableFactory;
/**
* A simple stateless container that binds proxies and can be invoked.
@@ -45,6 +42,7 @@
private JBossSessionBeanMetaData metaData;
private Class<?> beanClass;
+ private Kernel kernel;
private class StatelessInvocationHandler implements InvocationHandler
{
@@ -54,10 +52,11 @@
}
}
- public StatelessContainer(JBossSessionBeanMetaData metaData) throws ClassNotFoundException
+ public StatelessContainer(JBossSessionBeanMetaData metaData, Kernel kernel) throws ClassNotFoundException
{
this.metaData = metaData;
this.beanClass = Class.forName(metaData.getEjbClass());
+ this.kernel = kernel; //TODO Should be injected?, obtained more gracefully, until then hardcode the thing
}
private Object createInstance() throws InstantiationException, IllegalAccessException
@@ -78,20 +77,51 @@
// TODO: a lot
log.fatal("StatelessContainer.start doesn't really do what's really supposed to happen");
- InitialContext ctx = new InitialContext();
- //String jndiName = metaData.determineLocalJndiName();
- String jndiName = "MyStatelessBean/local";
- ClassLoader classLoader = beanClass.getClassLoader();
- Class<?> interfaces[] = { MyStatelessLocal.class };
- InvocationHandler handler = new StatelessInvocationHandler();
- Object proxy = Proxy.newProxyInstance(classLoader, interfaces, handler);
- Util.createSubcontext(ctx, "MyStatelessBean");
- // TODO: should no be non-serializable (how to get Kernel instance?)
- NonSerializableFactory.rebind(ctx, jndiName, proxy);
+ // Carlo's original code
+// InitialContext ctx = new InitialContext();
+// //String jndiName = metaData.determineLocalJndiName();
+// String jndiName = "MyStatelessBean/local";
+// ClassLoader classLoader = beanClass.getClassLoader();
+// Class<?> interfaces[] = { MyStatelessLocal.class };
+// InvocationHandler handler = new StatelessInvocationHandler();
+// Object proxy = Proxy.newProxyInstance(classLoader, interfaces, handler);
+// Util.createSubcontext(ctx, "MyStatelessBean");
+// // TODO: should no be non-serializable (how to get Kernel instance?)
+// NonSerializableFactory.rebind(ctx, jndiName, proxy);
+
+ // Obtain registrar
+ JndiRegistrar registrar = this.getJndiRegistrar();
+
+ // Obtain the TCL
+ //TODO Previously the CL was a member of the Container itself, this should fly for now
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+
+ // Bind all appropriate references/factories to Global JNDI for Client access
+ registrar.bindEjb(this.metaData, cl);
+
}
public void stop()
{
log.info("Stopping " + this);
+
+ //TODO We need to unbind the EJB, something like:
+ //registrar.unbindEjb(this.metaData);
+ // or some key by which the registrar will keep track of all bindings
}
+
+ /**
+ * Obtains the JndiRegistrar from MC
+ *
+ * @return
+ */
+ protected JndiRegistrar getJndiRegistrar()
+ {
+ // Lookup
+ JndiRegistrar registrar = (JndiRegistrar) this.kernel.getController().getInstalledContext(
+ MicrocontainerBindings.MC_BEAN_NAME_JNDI_REGISTRAR).getTarget();
+
+ // Return
+ return registrar;
+ }
}
Modified: projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/session/unit/ProxySessionTestCase.java
===================================================================
--- projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/session/unit/ProxySessionTestCase.java 2008-05-15 05:26:23 UTC (rev 73405)
+++ projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/session/unit/ProxySessionTestCase.java 2008-05-15 05:29:46 UTC (rev 73406)
@@ -119,7 +119,9 @@
log.info("Local Home JNDI Name: " + beanMetaData.determineResolvedJndiName(beanMetaData.getLocalHome()));
log.info("Home JNDI Name: " + beanMetaData.determineResolvedJndiName(beanMetaData.getHome()));
- StatelessContainer container = new StatelessContainer(beanMetaData);
+ // Make a Container
+ //TODO Kernel shouldn't be constructor argument
+ StatelessContainer container = new StatelessContainer(beanMetaData, bootstrap.getKernel());
bootstrap.installInstance("jboss.j2ee:service=EJB3,name=" + beanMetaData.getEjbName(), container);
}
Modified: projects/ejb3/trunk/proxy/src/test/resources/org/jboss/ejb3/test/proxy/session/unit/ProxySessionTestCase-beans.xml
===================================================================
--- projects/ejb3/trunk/proxy/src/test/resources/org/jboss/ejb3/test/proxy/session/unit/ProxySessionTestCase-beans.xml 2008-05-15 05:26:23 UTC (rev 73405)
+++ projects/ejb3/trunk/proxy/src/test/resources/org/jboss/ejb3/test/proxy/session/unit/ProxySessionTestCase-beans.xml 2008-05-15 05:29:46 UTC (rev 73406)
@@ -1,6 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
-<deployment xmlns="urn:jboss:bean-deployer:2.0">
- <!-- JNDI -->
- <bean name="NameServer" class="org.jnp.server.SingletonNamingServer"/>
-
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:jboss:bean-deployer:2.0 bean-deployer_2_0.xsd"
+ xmlns="urn:jboss:bean-deployer:2.0">
+
+ <!-- JNDI -->
+ <bean name="NameServer" class="org.jnp.server.SingletonNamingServer" />
+
+ <!--
+
+ JNDI Registrar
+
+ The JNDI Registrar is responsible for all JNDI Bindings for
+ an EJB. Its constructor takes the following arguments, in order:
+
+ javax.naming.Context (JNDI Context into which to bind objects)
+ org.jboss.ejb3.proxy.spi.registry.ProxyFactoryRegistry (Implementation of ProxyFactoryRegistry)
+ String statelessSessionProxyObjectFactoryType The JNDI ObjectFactory implementation to use for SLSB
+ ...more later when SFSB, @Service, MDB Implemented
+
+ -->
+ <bean name="org.jboss.ejb3.JndiRegistrar"
+ class="org.jboss.ejb3.proxy.jndiregistrar.JndiRegistrar">
+ <constructor>
+ <parameter><inject bean="org.jboss.ejb3.JndiContext" /></parameter>
+ <parameter><inject bean="org.jboss.ejb3.ProxyFactoryRegistry" /></parameter>
+ <parameter>org.jboss.ejb3.proxy.objectfactory.session.stateless.StatelessSessionProxyObjectFactory</parameter>
+ </constructor>
+ <depends>NameServer</depends>
+ </bean>
+
+
+ <bean name="org.jboss.ejb3.JndiContext" class="javax.naming.InitialContext"/>
+ <bean name="org.jboss.ejb3.ProxyFactoryRegistry" class="org.jboss.ejb3.proxy.plugin.inmemory.registry.InMemoryProxyFactoryRegistry" />
+
</deployment>
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list