[jboss-cvs] JBossAS SVN: r80773 - in projects/ejb3/trunk/proxy/src: main/java/org/jboss/ejb3/proxy/factory/session and 14 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Nov 10 19:10:32 EST 2008


Author: ALRubinger
Date: 2008-11-10 19:10:31 -0500 (Mon, 10 Nov 2008)
New Revision: 80773

Added:
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionSpecProxyFactory.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/service/
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/service/
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/service/
   projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/session/unit/ProxyServiceTestCase.java
Removed:
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/service/
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/service/
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/service/
   projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/service/
Modified:
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionProxyFactory.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionProxyFactoryBase.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/service/ServiceLocalProxyFactory.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/service/ServiceProxyFactory.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/service/ServiceProxyFactoryBase.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/service/ServiceRemoteProxyFactory.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateful/StatefulSessionLocalProxyFactory.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateful/StatefulSessionProxyFactory.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateful/StatefulSessionRemoteProxyFactory.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionLocalProxyFactory.java
   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/session/service/ServiceLocalProxyInvocationHandler.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/service/ServiceProxyInvocationHandler.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/service/ServiceProxyInvocationHandlerBase.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/service/ServiceRemoteProxyInvocationHandler.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiServiceRegistrar.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiSessionRegistrarBase.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiStatefulSessionRegistrar.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiStatelessSessionRegistrar.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/SessionProxyObjectFactory.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/service/ServiceProxyObjectFactory.java
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectstore/ObjectStoreBindings.java
   projects/ejb3/trunk/proxy/src/test/resources/org/jboss/ejb3/test/proxy/common/SessionTestCaseBase-jboss-beans.xml
Log:
[EJBTHREE-1573] Correct @Service hierarchies to extend from Session handling

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionProxyFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionProxyFactory.java	2008-11-10 23:19:18 UTC (rev 80772)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionProxyFactory.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -35,12 +35,6 @@
  */
 public interface SessionProxyFactory extends ProxyFactory
 {
-   /**
-    * Create an EJB2.x Home Proxy
-    * 
-    * @return
-    */
-   Object createProxyHome();
 
    /**
     * Create an EJB3 Business proxy with no 
@@ -54,21 +48,4 @@
     * @return
     */
    Object createProxyDefault();
-
-   /**
-    * Create an EJB3 Business Proxy specific to the specified
-    * target business interface name (expressed as 
-    * a fully-qualified class name)
-    * 
-    * @param businessInterfaceName
-    * @return
-    */
-   Object createProxyBusiness(String businessInterfaceName);
-
-   /**
-    * Create an EJB2.x Proxy 
-    * 
-    * @return
-    */
-   Object createProxyEjb2x();
 }

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionProxyFactoryBase.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionProxyFactoryBase.java	2008-11-10 23:19:18 UTC (rev 80772)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionProxyFactoryBase.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -51,7 +51,7 @@
  * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
  * @version $Revision: $
  */
-public abstract class SessionProxyFactoryBase extends ProxyFactoryBase implements SessionProxyFactory
+public abstract class SessionProxyFactoryBase extends ProxyFactoryBase implements SessionSpecProxyFactory
 {
 
    // --------------------------------------------------------------------------------||
@@ -207,7 +207,7 @@
 
          // Create a new Proxy instance
          Object proxy = constructor.newInstance(handler);
-         
+
          // Return
          return proxy;
       }

Added: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionSpecProxyFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionSpecProxyFactory.java	                        (rev 0)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/SessionSpecProxyFactory.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -0,0 +1,60 @@
+/*
+ * 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;
+
+/**
+ * SessionSpecProxyFactory
+ * 
+ * Contract for a Proxy Factory responsible
+ * for creation of both EJB3 and EJB2.x 
+ * Session Bean Proxies as defined by the EJB3 
+ * specification
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public interface SessionSpecProxyFactory extends SessionProxyFactory
+{
+   /**
+    * Create an EJB2.x Home Proxy
+    * 
+    * @return
+    */
+   Object createProxyHome();
+
+   /**
+    * Create an EJB3 Business Proxy specific to the specified
+    * target business interface name (expressed as 
+    * a fully-qualified class name)
+    * 
+    * @param businessInterfaceName
+    * @return
+    */
+   Object createProxyBusiness(String businessInterfaceName);
+
+   /**
+    * Create an EJB2.x Proxy 
+    * 
+    * @return
+    */
+   Object createProxyEjb2x();
+}

Copied: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/service (from rev 80744, projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/service)

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/service/ServiceLocalProxyFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/service/ServiceLocalProxyFactory.java	2008-11-10 15:49:45 UTC (rev 80744)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/service/ServiceLocalProxyFactory.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -19,14 +19,14 @@
  * 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.service;
+package org.jboss.ejb3.proxy.factory.session.service;
 
 import java.util.Set;
 
 import org.jboss.aop.Advisor;
 import org.jboss.aop.advice.Interceptor;
-import org.jboss.ejb3.proxy.handler.service.ServiceLocalProxyInvocationHandler;
-import org.jboss.ejb3.proxy.handler.service.ServiceProxyInvocationHandler;
+import org.jboss.ejb3.proxy.handler.session.service.ServiceLocalProxyInvocationHandler;
+import org.jboss.ejb3.proxy.handler.session.service.ServiceProxyInvocationHandler;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.ejb.jboss.JBossServiceBeanMetaData;
 

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/service/ServiceProxyFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/service/ServiceProxyFactory.java	2008-11-10 15:49:45 UTC (rev 80744)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/service/ServiceProxyFactory.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -19,9 +19,9 @@
  * 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.service;
+package org.jboss.ejb3.proxy.factory.session.service;
 
-import org.jboss.ejb3.proxy.factory.ProxyFactory;
+import org.jboss.ejb3.proxy.factory.session.SessionProxyFactory;
 
 /**
  * ServiceProxyFactory
@@ -33,13 +33,7 @@
  * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
  * @version $Revision: $
  */
-public interface ServiceProxyFactory extends ProxyFactory
+public interface ServiceProxyFactory extends SessionProxyFactory
 {
-   /**
-    * Create a JBoss Service EJB3 proxy implementing all appropriate
-    * business interfaces. 
-    * 
-    * @return
-    */
-   Object createProxy();
+
 }

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/service/ServiceProxyFactoryBase.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/service/ServiceProxyFactoryBase.java	2008-11-10 15:49:45 UTC (rev 80744)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/service/ServiceProxyFactoryBase.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -19,7 +19,7 @@
  * 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.service;
+package org.jboss.ejb3.proxy.factory.session.service;
 
 import java.lang.reflect.Constructor;
 import java.util.HashSet;
@@ -27,7 +27,7 @@
 
 import org.jboss.aop.Advisor;
 import org.jboss.ejb3.proxy.factory.ProxyFactoryBase;
-import org.jboss.ejb3.proxy.handler.service.ServiceProxyInvocationHandler;
+import org.jboss.ejb3.proxy.handler.session.service.ServiceProxyInvocationHandler;
 import org.jboss.ejb3.proxy.intf.ServiceProxy;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.ejb.jboss.JBossServiceBeanMetaData;
@@ -99,7 +99,7 @@
     * 
     * @return
     */
-   public Object createProxy()
+   public Object createProxyDefault()
    {
       // Obtain Constructor to Default Proxy
       Constructor<?> constructor = this.getProxyConstructor();

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/service/ServiceRemoteProxyFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/service/ServiceRemoteProxyFactory.java	2008-11-10 15:49:45 UTC (rev 80744)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/service/ServiceRemoteProxyFactory.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -19,14 +19,14 @@
  * 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.service;
+package org.jboss.ejb3.proxy.factory.session.service;
 
 import java.util.Set;
 
 import org.jboss.aop.Advisor;
 import org.jboss.aop.advice.Interceptor;
-import org.jboss.ejb3.proxy.handler.service.ServiceProxyInvocationHandler;
-import org.jboss.ejb3.proxy.handler.service.ServiceRemoteProxyInvocationHandler;
+import org.jboss.ejb3.proxy.handler.session.service.ServiceProxyInvocationHandler;
+import org.jboss.ejb3.proxy.handler.session.service.ServiceRemoteProxyInvocationHandler;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.ejb.jboss.JBossServiceBeanMetaData;
 

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateful/StatefulSessionLocalProxyFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateful/StatefulSessionLocalProxyFactory.java	2008-11-10 23:19:18 UTC (rev 80772)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateful/StatefulSessionLocalProxyFactory.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -25,7 +25,7 @@
 
 import org.jboss.aop.Advisor;
 import org.jboss.aop.advice.Interceptor;
-import org.jboss.ejb3.proxy.factory.session.SessionProxyFactory;
+import org.jboss.ejb3.proxy.factory.session.SessionSpecProxyFactory;
 import org.jboss.ejb3.proxy.handler.session.SessionProxyInvocationHandler;
 import org.jboss.ejb3.proxy.handler.session.stateful.StatefulLocalProxyInvocationHandler;
 import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
@@ -38,7 +38,9 @@
  * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
  * @version $Revision: $
  */
-public class StatefulSessionLocalProxyFactory extends StatefulSessionProxyFactoryBase implements SessionProxyFactory
+public class StatefulSessionLocalProxyFactory extends StatefulSessionProxyFactoryBase
+      implements
+         SessionSpecProxyFactory
 {
    // --------------------------------------------------------------------------------||
    // Class Members ------------------------------------------------------------------||

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateful/StatefulSessionProxyFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateful/StatefulSessionProxyFactory.java	2008-11-10 23:19:18 UTC (rev 80772)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateful/StatefulSessionProxyFactory.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -23,7 +23,7 @@
 
 import java.io.Serializable;
 
-import org.jboss.ejb3.proxy.factory.session.SessionProxyFactory;
+import org.jboss.ejb3.proxy.factory.session.SessionSpecProxyFactory;
 
 /**
  * StatefulSessionProxyFactory
@@ -36,7 +36,7 @@
  * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
  * @version $Revision: $
  */
-public interface StatefulSessionProxyFactory extends SessionProxyFactory
+public interface StatefulSessionProxyFactory extends SessionSpecProxyFactory
 {
    /**
     * Create an EJB2.x Home Proxy

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateful/StatefulSessionRemoteProxyFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateful/StatefulSessionRemoteProxyFactory.java	2008-11-10 23:19:18 UTC (rev 80772)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateful/StatefulSessionRemoteProxyFactory.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -25,7 +25,7 @@
 
 import org.jboss.aop.Advisor;
 import org.jboss.aop.advice.Interceptor;
-import org.jboss.ejb3.proxy.factory.session.SessionProxyFactory;
+import org.jboss.ejb3.proxy.factory.session.SessionSpecProxyFactory;
 import org.jboss.ejb3.proxy.handler.session.SessionProxyInvocationHandler;
 import org.jboss.ejb3.proxy.handler.session.stateful.StatefulRemoteProxyInvocationHandler;
 import org.jboss.logging.Logger;
@@ -39,7 +39,9 @@
  * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
  * @version $Revision: $
  */
-public class StatefulSessionRemoteProxyFactory extends StatefulSessionProxyFactoryBase implements SessionProxyFactory
+public class StatefulSessionRemoteProxyFactory extends StatefulSessionProxyFactoryBase
+      implements
+         SessionSpecProxyFactory
 {
    // --------------------------------------------------------------------------------||
    // Class Members ------------------------------------------------------------------||

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionLocalProxyFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionLocalProxyFactory.java	2008-11-10 23:19:18 UTC (rev 80772)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionLocalProxyFactory.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -25,7 +25,7 @@
 
 import org.jboss.aop.Advisor;
 import org.jboss.aop.advice.Interceptor;
-import org.jboss.ejb3.proxy.factory.session.SessionProxyFactory;
+import org.jboss.ejb3.proxy.factory.session.SessionSpecProxyFactory;
 import org.jboss.ejb3.proxy.handler.session.SessionProxyInvocationHandler;
 import org.jboss.ejb3.proxy.handler.session.stateless.StatelessLocalProxyInvocationHandler;
 import org.jboss.logging.Logger;
@@ -39,7 +39,9 @@
  * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
  * @version $Revision: $
  */
-public class StatelessSessionLocalProxyFactory extends StatelessSessionProxyFactoryBase implements SessionProxyFactory
+public class StatelessSessionLocalProxyFactory extends StatelessSessionProxyFactoryBase
+      implements
+         SessionSpecProxyFactory
 {
    // --------------------------------------------------------------------------------||
    // Class Members ------------------------------------------------------------------||
@@ -126,8 +128,8 @@
 
       // Return
       return handler;
-   }   
-   
+   }
+
    @Override
    protected SessionProxyInvocationHandler createBusinessDefaultInvocationHandler()
    {

Modified: 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	2008-11-10 23:19:18 UTC (rev 80772)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/factory/session/stateless/StatelessSessionRemoteProxyFactory.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -25,7 +25,7 @@
 
 import org.jboss.aop.Advisor;
 import org.jboss.aop.advice.Interceptor;
-import org.jboss.ejb3.proxy.factory.session.SessionProxyFactory;
+import org.jboss.ejb3.proxy.factory.session.SessionSpecProxyFactory;
 import org.jboss.ejb3.proxy.handler.session.SessionProxyInvocationHandler;
 import org.jboss.ejb3.proxy.handler.session.stateless.StatelessRemoteProxyInvocationHandler;
 import org.jboss.logging.Logger;
@@ -39,7 +39,9 @@
  * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
  * @version $Revision: $
  */
-public class StatelessSessionRemoteProxyFactory extends StatelessSessionProxyFactoryBase implements SessionProxyFactory
+public class StatelessSessionRemoteProxyFactory extends StatelessSessionProxyFactoryBase
+      implements
+         SessionSpecProxyFactory
 {
    // --------------------------------------------------------------------------------||
    // Class Members ------------------------------------------------------------------||

Copied: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/service (from rev 80744, projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/service)

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/service/ServiceLocalProxyInvocationHandler.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/service/ServiceLocalProxyInvocationHandler.java	2008-11-10 15:49:45 UTC (rev 80744)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/service/ServiceLocalProxyInvocationHandler.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -19,7 +19,7 @@
  * 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.service;
+package org.jboss.ejb3.proxy.handler.session.service;
 
 import java.io.Serializable;
 

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/service/ServiceProxyInvocationHandler.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/service/ServiceProxyInvocationHandler.java	2008-11-10 15:49:45 UTC (rev 80744)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/service/ServiceProxyInvocationHandler.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -20,7 +20,7 @@
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 
-package org.jboss.ejb3.proxy.handler.service;
+package org.jboss.ejb3.proxy.handler.session.service;
 
 import java.io.Serializable;
 import java.lang.reflect.InvocationHandler;

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/service/ServiceProxyInvocationHandlerBase.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/service/ServiceProxyInvocationHandlerBase.java	2008-11-10 15:49:45 UTC (rev 80744)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/service/ServiceProxyInvocationHandlerBase.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -19,7 +19,7 @@
  * 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.service;
+package org.jboss.ejb3.proxy.handler.session.service;
 
 import java.io.Serializable;
 import java.lang.reflect.InvocationHandler;

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/service/ServiceRemoteProxyInvocationHandler.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/service/ServiceRemoteProxyInvocationHandler.java	2008-11-10 15:49:45 UTC (rev 80744)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/handler/session/service/ServiceRemoteProxyInvocationHandler.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -19,7 +19,7 @@
  * 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.service;
+package org.jboss.ejb3.proxy.handler.session.service;
 
 import java.io.Serializable;
 

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiServiceRegistrar.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiServiceRegistrar.java	2008-11-10 23:19:18 UTC (rev 80772)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiServiceRegistrar.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -24,11 +24,11 @@
 import org.jboss.aop.Advisor;
 import org.jboss.aop.Dispatcher;
 import org.jboss.ejb3.proxy.factory.ProxyFactory;
-import org.jboss.ejb3.proxy.factory.service.ServiceLocalProxyFactory;
-import org.jboss.ejb3.proxy.factory.service.ServiceRemoteProxyFactory;
+import org.jboss.ejb3.proxy.factory.session.service.ServiceLocalProxyFactory;
+import org.jboss.ejb3.proxy.factory.session.service.ServiceRemoteProxyFactory;
 import org.jboss.logging.Logger;
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossServiceBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
 
 /**
  * JndiServiceRegistrar
@@ -81,7 +81,7 @@
     */
    @Override
    protected ProxyFactory createLocalProxyFactory(final String name, final String containerName,
-         final String containerGuid, final JBossEnterpriseBeanMetaData smd, final ClassLoader cl, final Advisor advisor)
+         final String containerGuid, final JBossSessionBeanMetaData smd, final ClassLoader cl, final Advisor advisor)
    {
       assert (smd instanceof JBossServiceBeanMetaData) : "Specified metadata was not of expected type "
             + JBossServiceBeanMetaData.class.getSimpleName();
@@ -105,7 +105,7 @@
     */
    @Override
    protected ProxyFactory createRemoteProxyFactory(final String name, final String containerName,
-         final String containerGuid, final JBossEnterpriseBeanMetaData smd, final ClassLoader cl, final String url,
+         final String containerGuid, final JBossSessionBeanMetaData smd, final ClassLoader cl, final String url,
          final Advisor advisor, final String interceptorStackName)
    {
       // Ensure metadata is of expected type

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiSessionRegistrarBase.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiSessionRegistrarBase.java	2008-11-10 23:19:18 UTC (rev 80772)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiSessionRegistrarBase.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -715,7 +715,7 @@
     * @param advisor The Advisor for proxies created by this factory
     */
    protected abstract ProxyFactory createLocalProxyFactory(final String name, final String containerName,
-         final String containerGuid, final JBossEnterpriseBeanMetaData smd, final ClassLoader cl, final Advisor advisor);
+         final String containerGuid, final JBossSessionBeanMetaData smd, final ClassLoader cl, final Advisor advisor);
 
    /**
     * Creates and returns a new remote proxy factory for this Session Bean
@@ -732,7 +732,7 @@
     *       If null the default will apply.
     */
    protected abstract ProxyFactory createRemoteProxyFactory(final String name, final String containerName,
-         final String containerGuid, final JBossEnterpriseBeanMetaData smd, final ClassLoader cl, final String url,
+         final String containerGuid, final JBossSessionBeanMetaData smd, final ClassLoader cl, final String url,
          final Advisor advisor, final String interceptorStackName);
 
    // --------------------------------------------------------------------------------||

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiStatefulSessionRegistrar.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiStatefulSessionRegistrar.java	2008-11-10 23:19:18 UTC (rev 80772)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiStatefulSessionRegistrar.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -27,7 +27,6 @@
 import org.jboss.ejb3.proxy.factory.session.stateful.StatefulSessionLocalProxyFactory;
 import org.jboss.ejb3.proxy.factory.session.stateful.StatefulSessionRemoteProxyFactory;
 import org.jboss.logging.Logger;
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
 
 /**
@@ -81,12 +80,9 @@
     */
    @Override
    protected ProxyFactory createLocalProxyFactory(final String name, final String containerName,
-         final String containerGuid, final JBossEnterpriseBeanMetaData smd, final ClassLoader cl, final Advisor advisor)
+         final String containerGuid, final JBossSessionBeanMetaData smd, final ClassLoader cl, final Advisor advisor)
    {
-      assert (smd instanceof JBossSessionBeanMetaData) : "Specified metadata was not of expected type "
-            + JBossSessionBeanMetaData.class.getSimpleName() + " but was instead " + smd;
-      JBossSessionBeanMetaData sessionMd = (JBossSessionBeanMetaData) smd;
-      return new StatefulSessionLocalProxyFactory(name, containerName, containerGuid, sessionMd, cl, advisor);
+      return new StatefulSessionLocalProxyFactory(name, containerName, containerGuid, smd, cl, advisor);
    }
 
    /**
@@ -105,19 +101,12 @@
     */
    @Override
    protected ProxyFactory createRemoteProxyFactory(final String name, final String containerName,
-         final String containerGuid, final JBossEnterpriseBeanMetaData smd, final ClassLoader cl, final String url,
+         final String containerGuid, final JBossSessionBeanMetaData smd, final ClassLoader cl, final String url,
          final Advisor advisor, final String interceptorStackName)
    {
-      // Ensure metadata is of expected type
-      assert (smd instanceof JBossSessionBeanMetaData) : "Specified metadata was not of expected type "
-            + JBossSessionBeanMetaData.class.getSimpleName() + " but was instead " + smd;
-
-      // Cast
-      JBossSessionBeanMetaData sessionMd = (JBossSessionBeanMetaData) smd;
-
       // Create
-      ProxyFactory factory = new StatefulSessionRemoteProxyFactory(name, containerName, containerGuid, sessionMd, cl,
-            url, advisor, interceptorStackName);
+      ProxyFactory factory = new StatefulSessionRemoteProxyFactory(name, containerName, containerGuid, smd, cl, url,
+            advisor, interceptorStackName);
 
       // Register with Remoting
       log.debug("Registering with Remoting Dispatcher under name \"" + factory.getName() + "\": " + factory);

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiStatelessSessionRegistrar.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiStatelessSessionRegistrar.java	2008-11-10 23:19:18 UTC (rev 80772)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiStatelessSessionRegistrar.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -27,7 +27,6 @@
 import org.jboss.ejb3.proxy.factory.session.stateless.StatelessSessionLocalProxyFactory;
 import org.jboss.ejb3.proxy.factory.session.stateless.StatelessSessionRemoteProxyFactory;
 import org.jboss.logging.Logger;
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
 
 /**
@@ -81,12 +80,9 @@
     */
    @Override
    protected ProxyFactory createLocalProxyFactory(final String name, final String containerName,
-         final String containerGuid, final JBossEnterpriseBeanMetaData smd, final ClassLoader cl, final Advisor advisor)
+         final String containerGuid, final JBossSessionBeanMetaData smd, final ClassLoader cl, final Advisor advisor)
    {
-      assert (smd instanceof JBossSessionBeanMetaData) : "Specified metadata was not of expected type "
-            + JBossSessionBeanMetaData.class.getSimpleName();
-      JBossSessionBeanMetaData sessionMd = (JBossSessionBeanMetaData) smd;
-      return new StatelessSessionLocalProxyFactory(name, containerName, containerGuid, sessionMd, cl, advisor);
+      return new StatelessSessionLocalProxyFactory(name, containerName, containerGuid, smd, cl, advisor);
    }
 
    /**
@@ -105,19 +101,12 @@
     */
    @Override
    protected ProxyFactory createRemoteProxyFactory(final String name, final String containerName,
-         final String containerGuid, final JBossEnterpriseBeanMetaData smd, final ClassLoader cl, final String url,
+         final String containerGuid, final JBossSessionBeanMetaData smd, final ClassLoader cl, final String url,
          final Advisor advisor, final String interceptorStackName)
    {
-      // Ensure metadata is of expected type
-      assert (smd instanceof JBossSessionBeanMetaData) : "Specified metadata was not of expected type "
-            + JBossSessionBeanMetaData.class.getSimpleName();
-
-      // Cast
-      JBossSessionBeanMetaData sessionMd = (JBossSessionBeanMetaData) smd;
-
       // Create
-      ProxyFactory factory = new StatelessSessionRemoteProxyFactory(name, containerName, containerGuid, sessionMd, cl,
-            url, advisor, interceptorStackName);
+      ProxyFactory factory = new StatelessSessionRemoteProxyFactory(name, containerName, containerGuid, smd, cl, url,
+            advisor, interceptorStackName);
 
       // Register with Remoting
       log.debug("Registering with Remoting Dispatcher under name \"" + factory.getName() + "\": " + factory);

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/SessionProxyObjectFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/SessionProxyObjectFactory.java	2008-11-10 23:19:18 UTC (rev 80772)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/SessionProxyObjectFactory.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -27,7 +27,7 @@
 import javax.naming.Name;
 
 import org.jboss.ejb3.proxy.factory.ProxyFactory;
-import org.jboss.ejb3.proxy.factory.session.SessionProxyFactory;
+import org.jboss.ejb3.proxy.factory.session.SessionSpecProxyFactory;
 import org.jboss.ejb3.proxy.objectfactory.Ejb3RegistrarProxyObjectFactory;
 import org.jboss.ejb3.proxy.objectfactory.ProxyFactoryReferenceAddressTypes;
 import org.jboss.logging.Logger;
@@ -77,16 +77,16 @@
       boolean hasBusiness = this.hasBusiness(name, referenceAddresses);
 
       // Cast
-      SessionProxyFactory sFactory = null;
+      SessionSpecProxyFactory sFactory = null;
       try
       {
-         sFactory = this.getProxyFactoryClass().cast(factory);
+         sFactory = (SessionSpecProxyFactory) this.getProxyFactoryClass().cast(factory);
       }
       catch (ClassCastException cce)
       {
          throw new RuntimeException(ProxyFactory.class.getSimpleName() + " used in "
                + SessionProxyObjectFactory.class.getSimpleName() + " must be of type "
-               + SessionProxyFactory.class.getName() + " but was instead " + factory, cce);
+               + SessionSpecProxyFactory.class.getName() + " but was instead " + factory, cce);
       }
 
       // If home and business are bound together
@@ -163,9 +163,9 @@
     * @return
     */
    @Override
-   protected Class<SessionProxyFactory> getProxyFactoryClass()
+   protected Class<SessionSpecProxyFactory> getProxyFactoryClass()
    {
-      return SessionProxyFactory.class;
+      return SessionSpecProxyFactory.class;
    }
 
    // --------------------------------------------------------------------------------||

Copied: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/service (from rev 80744, projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/service)

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/service/ServiceProxyObjectFactory.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/service/ServiceProxyObjectFactory.java	2008-11-10 15:49:45 UTC (rev 80744)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectfactory/session/service/ServiceProxyObjectFactory.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -19,7 +19,7 @@
  * 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.objectfactory.service;
+package org.jboss.ejb3.proxy.objectfactory.session.service;
 
 import java.util.List;
 import java.util.Map;
@@ -27,9 +27,9 @@
 import javax.naming.Name;
 
 import org.jboss.ejb3.proxy.factory.ProxyFactory;
-import org.jboss.ejb3.proxy.factory.service.ServiceProxyFactory;
+import org.jboss.ejb3.proxy.factory.session.service.ServiceProxyFactory;
+import org.jboss.ejb3.proxy.objectfactory.Ejb3RegistrarProxyObjectFactory;
 import org.jboss.ejb3.proxy.objectfactory.ProxyFactoryReferenceAddressTypes;
-import org.jboss.ejb3.proxy.objectfactory.ProxyObjectFactory;
 import org.jboss.logging.Logger;
 
 /**
@@ -41,7 +41,7 @@
  * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
  * @version $Revision: $
  */
-public class ServiceProxyObjectFactory extends ProxyObjectFactory
+public class ServiceProxyObjectFactory extends Ejb3RegistrarProxyObjectFactory
 {
    // --------------------------------------------------------------------------------||
    // Class Members  -----------------------------------------------------------------||
@@ -100,7 +100,7 @@
       if (hasBusiness)
       {
          // Use a general-purpose proxy for all business interfaces
-         proxy = sFactory.createProxy();
+         proxy = sFactory.createProxyDefault();
          log.debug("Created Proxy of type " + proxy.getClass().getSimpleName() + ".");
 
       }

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectstore/ObjectStoreBindings.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectstore/ObjectStoreBindings.java	2008-11-10 23:19:18 UTC (rev 80772)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/objectstore/ObjectStoreBindings.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -108,7 +108,7 @@
    /**
     * Bind name for @Service JNDI Registrar
     */
-   String OBJECTSTORE_BEAN_NAME_JNDI_REGISTRAR_SERVICE = ObjectStoreBindings.OBJECTSTORE_NAMESPACE_JNDI_REGISTRAR
+   String OBJECTSTORE_BEAN_NAME_JNDI_REGISTRAR_SERVICE = ObjectStoreBindings.OBJECTSTORE_NAMESPACE_JNDI_REGISTRAR_SESSION
          + "ServiceJndiRegistrar";
 
 }

Copied: projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/session/unit/ProxyServiceTestCase.java (from rev 80744, projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/service/unit/ProxyServiceTestCase.java)
===================================================================
--- projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/session/unit/ProxyServiceTestCase.java	                        (rev 0)
+++ projects/ejb3/trunk/proxy/src/test/java/org/jboss/ejb3/test/proxy/session/unit/ProxyServiceTestCase.java	2008-11-11 00:10:31 UTC (rev 80773)
@@ -0,0 +1,237 @@
+/*
+ * 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.test.proxy.session.unit;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertTrue;
+
+import javax.naming.InitialContext;
+
+import org.jboss.ejb3.common.registrar.spi.Ejb3RegistrarLocator;
+import org.jboss.ejb3.test.proxy.common.SessionTestCaseBase;
+import org.jboss.ejb3.test.proxy.common.Utils;
+import org.jboss.ejb3.test.proxy.common.container.ServiceContainer;
+import org.jboss.ejb3.test.proxy.common.ejb.service.MyServiceBean;
+import org.jboss.ejb3.test.proxy.common.ejb.service.MyServiceBeanWithExplicitJndiBindings;
+import org.jboss.ejb3.test.proxy.common.ejb.service.MyServiceLocalBusiness;
+import org.jboss.ejb3.test.proxy.common.ejb.service.MyServiceRemoteBusiness;
+import org.jboss.logging.Logger;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * ProxyServiceTestCase
+ *
+ * General tests for @Service beans:
+ * 
+ * - Bound as expected
+ * - May be invoked
+ * - .equals() implementation of Proxies is correct
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public class ProxyServiceTestCase extends SessionTestCaseBase
+{
+   // --------------------------------------------------------------------------------||
+   // Class Members ------------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   private static final Logger log = Logger.getLogger(ProxyServiceTestCase.class);
+
+   private static InitialContext context;
+
+   // --------------------------------------------------------------------------------||
+   // Tests --------------------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   /**
+    * Tests binding and invocation upon the local business 
+    * interface
+    */
+   @Test
+   public void testLocalDefaultBindings() throws Exception
+   {
+      // Define the JNDI name to use
+      String jndiName = "MyServiceBean/local";
+
+      // Run test
+      this.runLocalTest(jndiName);
+   }
+
+   /**
+    * Tests binding and invocation upon the remote business 
+    * interface
+    */
+   @Test
+   public void testRemoteDefaultBindings() throws Exception
+   {
+      // Define the JNDI name to use
+      String jndiName = "MyServiceBean/remote";
+
+      // Run test
+      this.runRemoteTest(jndiName);
+   }
+
+   /**
+    * Tests binding and invocation upon the local business 
+    * interface using @LocalBinding.jnidBinding value
+    */
+   @Test
+   public void testLocalExplicitBindings() throws Exception
+   {
+      // Define the JNDI name to use
+      String jndiName = MyServiceBeanWithExplicitJndiBindings.JNDI_NAME_LOCAL;
+
+      // Run test
+      this.runLocalTest(jndiName);
+   }
+
+   /**
+    * Tests binding and invocation upon the remote business 
+    * interface using @RemoteBinding.jnidBinding value
+    */
+   @Test
+   public void testRemoteExplicitBindings() throws Exception
+   {
+      // Define the JNDI name to use
+      String jndiName = MyServiceBeanWithExplicitJndiBindings.JNDI_NAME_REMOTE;
+
+      // Run test
+      this.runRemoteTest(jndiName);
+   }
+
+   /**
+    * Tests that proxies with the same target container are
+    * equal
+    */
+   @Test
+   public void testProxiesSameTargetContainerEqual() throws Exception
+   {
+      // Lookup
+      Object bean1 = context.lookup("MyServiceBean/local");
+      Object bean2 = context.lookup("MyServiceBean/remote");
+
+      // Ensure equal
+      assertEquals("@Service proxies with the same target container must be equal", bean1, bean2);
+   }
+
+   /**
+    * Tests that proxies with the different target containers are
+    * not equal
+    */
+   @Test
+   public void testProxiesDifferentTargetContainersNotEqual() throws Exception
+   {
+      // Lookup
+      Object bean1 = context.lookup("MyServiceBean/local");
+      Object bean2 = context.lookup(MyServiceBeanWithExplicitJndiBindings.JNDI_NAME_LOCAL);
+
+      // Ensure equal
+      assertNotSame("@Service proxies with the different target containers must not be equal", bean1, bean2);
+   }
+
+   // --------------------------------------------------------------------------------||
+   // Internal Helper Methods --------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   /**
+    * Run the local test using the specified lookup name
+    * 
+    * @param jndiName
+    */
+   protected void runLocalTest(String jndiName) throws Exception
+   {
+      // Lookup
+      Object bean = context.lookup(jndiName);
+
+      // Ensure expected type
+      assertTrue(bean instanceof MyServiceLocalBusiness);
+
+      // Cast
+      MyServiceLocalBusiness ejb = (MyServiceLocalBusiness) bean;
+
+      // Invoke and log
+      log.info("Invoked upon @Service local business view: " + ejb.getUuid());
+   }
+
+   /**
+    * Run the remote test using the specified lookup name
+    * 
+    * @param jndiName
+    */
+   protected void runRemoteTest(String jndiName) throws Exception
+   {
+      // Lookup
+      Object bean = context.lookup(jndiName);
+
+      // Ensure expected type
+      assertTrue(bean instanceof MyServiceRemoteBusiness);
+
+      // Cast
+      MyServiceRemoteBusiness ejb = (MyServiceRemoteBusiness) bean;
+
+      // Invoke and log
+      log.info("Invoked upon @Service remote business view: " + ejb.getUuid());
+   }
+
+   // --------------------------------------------------------------------------------||
+   // Lifecycle Methods --------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   /**
+    * Perform setup before any tests
+    * 
+    * @throws Throwable
+    */
+   @BeforeClass
+   public static void setUpBeforeClass() throws Throwable
+   {
+      // Create Bootstrap and Deploy
+      SessionTestCaseBase.setUpBeforeClass();
+
+      // Deploy MC Beans
+      ProxyServiceTestCase.bootstrap.deploy(SessionTestCaseBase.class);
+
+      // Create @Service containers
+      ServiceContainer defaultBindingsContainer = Utils.createService(MyServiceBean.class);
+      ServiceContainer explicitBindingsContainer = Utils.createService(MyServiceBeanWithExplicitJndiBindings.class);
+
+      // Install
+      Ejb3RegistrarLocator.locateRegistrar().bind(defaultBindingsContainer.getName(), defaultBindingsContainer);
+      Ejb3RegistrarLocator.locateRegistrar().bind(explicitBindingsContainer.getName(), explicitBindingsContainer);
+
+      // Set Naming COntext
+      ProxyServiceTestCase.context = new InitialContext(); // Props from jndi.properties
+
+   }
+
+   @AfterClass
+   public static void tearDownAfterClass() throws Exception
+   {
+      if (bootstrap != null)
+         bootstrap.shutdown();
+      bootstrap = null;
+   }
+}

Modified: projects/ejb3/trunk/proxy/src/test/resources/org/jboss/ejb3/test/proxy/common/SessionTestCaseBase-jboss-beans.xml
===================================================================
--- projects/ejb3/trunk/proxy/src/test/resources/org/jboss/ejb3/test/proxy/common/SessionTestCaseBase-jboss-beans.xml	2008-11-10 23:19:18 UTC (rev 80772)
+++ projects/ejb3/trunk/proxy/src/test/resources/org/jboss/ejb3/test/proxy/common/SessionTestCaseBase-jboss-beans.xml	2008-11-11 00:10:31 UTC (rev 80773)
@@ -40,11 +40,11 @@
   </bean>
   
   <!-- @Service JNDI Registrar -->
-  <bean name="org.jboss.ejb3.JndiRegistrar.ServiceJndiRegistrar"
+  <bean name="org.jboss.ejb3.JndiRegistrar.Session.ServiceJndiRegistrar"
     class="org.jboss.ejb3.proxy.jndiregistrar.JndiServiceRegistrar">
     <constructor>
       <parameter>
-        org.jboss.ejb3.proxy.objectfactory.service.ServiceProxyObjectFactory
+        org.jboss.ejb3.proxy.objectfactory.session.service.ServiceProxyObjectFactory
       </parameter>
     </constructor>
     <depends>NameServer</depends>




More information about the jboss-cvs-commits mailing list