[jboss-cvs] JBossAS SVN: r86208 - in projects/ejb3/trunk: endpoint-deployer and 31 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Mar 23 10:48:14 EDT 2009


Author: wolfc
Date: 2009-03-23 10:48:14 -0400 (Mon, 23 Mar 2009)
New Revision: 86208

Added:
   projects/ejb3/trunk/endpoint-deployer/
   projects/ejb3/trunk/endpoint-deployer/.classpath
   projects/ejb3/trunk/endpoint-deployer/.project
   projects/ejb3/trunk/endpoint-deployer/.settings/
   projects/ejb3/trunk/endpoint-deployer/.settings/org.eclipse.jdt.core.prefs
   projects/ejb3/trunk/endpoint-deployer/.settings/org.maven.ide.eclipse.prefs
   projects/ejb3/trunk/endpoint-deployer/ObjectStore/
   projects/ejb3/trunk/endpoint-deployer/ObjectStore/HashedActionStore/
   projects/ejb3/trunk/endpoint-deployer/ObjectStore/HashedActionStore/defaultStore/
   projects/ejb3/trunk/endpoint-deployer/ObjectStore/HashedActionStore/defaultStore/Recovery/
   projects/ejb3/trunk/endpoint-deployer/ObjectStore/HashedActionStore/defaultStore/Recovery/TransactionStatusManager/
   projects/ejb3/trunk/endpoint-deployer/pom.xml
   projects/ejb3/trunk/endpoint-deployer/src/
   projects/ejb3/trunk/endpoint-deployer/src/main/
   projects/ejb3/trunk/endpoint-deployer/src/main/java/
   projects/ejb3/trunk/endpoint-deployer/src/main/java/org/
   projects/ejb3/trunk/endpoint-deployer/src/main/java/org/jboss/
   projects/ejb3/trunk/endpoint-deployer/src/main/java/org/jboss/ejb3/
   projects/ejb3/trunk/endpoint-deployer/src/main/java/org/jboss/ejb3/endpoint/
   projects/ejb3/trunk/endpoint-deployer/src/main/java/org/jboss/ejb3/endpoint/deployers/
   projects/ejb3/trunk/endpoint-deployer/src/main/java/org/jboss/ejb3/endpoint/deployers/EJB3EndpointDeployer.java
   projects/ejb3/trunk/endpoint-deployer/src/main/java/org/jboss/ejb3/endpoint/deployers/EJBIdentifier.java
   projects/ejb3/trunk/endpoint-deployer/src/main/java/org/jboss/ejb3/endpoint/deployers/impl/
   projects/ejb3/trunk/endpoint-deployer/src/main/java/org/jboss/ejb3/endpoint/deployers/impl/EndpointImpl.java
   projects/ejb3/trunk/endpoint-deployer/src/main/resources/
   projects/ejb3/trunk/endpoint-deployer/src/main/resources/META-INF/
   projects/ejb3/trunk/endpoint-deployer/src/main/resources/META-INF/jboss-beans.xml
   projects/ejb3/trunk/endpoint-deployer/src/test/
   projects/ejb3/trunk/endpoint-deployer/src/test/java/
   projects/ejb3/trunk/endpoint-deployer/src/test/java/org/
   projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/
   projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/
   projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/
   projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/
   projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/
   projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/common/
   projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/common/MockEJBIdentifier.java
   projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/common/MockTimerServiceFactory.java
   projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/simple/
   projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/simple/Greeter.java
   projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/simple/MyStatelessBean.java
   projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/simple/unit/
   projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/simple/unit/DeployEndpointTestCase.java
   projects/ejb3/trunk/endpoint-deployer/src/test/resources/
   projects/ejb3/trunk/endpoint-deployer/src/test/resources/conf/
   projects/ejb3/trunk/endpoint-deployer/src/test/resources/conf/bootstrap.xml
   projects/ejb3/trunk/endpoint-deployer/src/test/resources/conf/bootstrap/
   projects/ejb3/trunk/endpoint-deployer/src/test/resources/conf/bootstrap/aop.xml
   projects/ejb3/trunk/endpoint-deployer/src/test/resources/conf/bootstrap/classloader.xml
   projects/ejb3/trunk/endpoint-deployer/src/test/resources/conf/bootstrap/deployers.xml
   projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/
   projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/ejb-container-beans.xml
   projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/ejb-deployers-beans.xml
   projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/jpa-deployers-beans.xml
   projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/naming-beans.xml
   projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/transactionmanager-beans.xml
   projects/ejb3/trunk/endpoint-deployer/src/test/resources/log4j.xml
Log:
EJBTHREE-1786: initial setup of an endpoint deployer


Property changes on: projects/ejb3/trunk/endpoint-deployer
___________________________________________________________________
Name: svn:ignore
   + eclipse-target
target


Added: projects/ejb3/trunk/endpoint-deployer/.classpath
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/.classpath	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/.classpath	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,9 @@
+<classpath>
+  <classpathentry kind="src" path="src/main/java"/>
+  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
+  <classpathentry kind="src" path="src/test/java" output="eclipse-target/tests-classes"/>
+  <classpathentry kind="src" path="src/test/resources" output="eclipse-target/tests-classes" excluding="**/*.java"/>
+  <classpathentry kind="output" path="eclipse-target/classes"/>
+  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+  <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+</classpath>
\ No newline at end of file

Added: projects/ejb3/trunk/endpoint-deployer/.project
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/.project	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/.project	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,18 @@
+<projectDescription>
+  <name>jboss-ejb3-endpoint-deployer</name>
+  <comment>The Endpoint Deployer is an adapter for component
+    for Core, which deploys Endpoints for each session container.</comment>
+  <projects/>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+    <buildCommand>
+      <name>org.maven.ide.eclipse.maven2Builder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+    <nature>org.maven.ide.eclipse.maven2Nature</nature>
+  </natures>
+</projectDescription>
\ No newline at end of file

Added: projects/ejb3/trunk/endpoint-deployer/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/.settings/org.eclipse.jdt.core.prefs	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/.settings/org.eclipse.jdt.core.prefs	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,5 @@
+#Mon Mar 23 10:51:10 CET 2009
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5

Added: projects/ejb3/trunk/endpoint-deployer/.settings/org.maven.ide.eclipse.prefs
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/.settings/org.maven.ide.eclipse.prefs	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/.settings/org.maven.ide.eclipse.prefs	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,8 @@
+#Mon Mar 23 11:42:22 CET 2009
+activeProfiles=eclipse
+eclipse.preferences.version=1
+fullBuildGoals=
+includeModules=false
+resolveWorkspaceProjects=false
+resourceFilterGoals=
+version=1

Added: projects/ejb3/trunk/endpoint-deployer/pom.xml
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/pom.xml	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/pom.xml	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,101 @@
+<!--
+  vi:ts=2:sw=2:expandtab
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+  <parent>
+    <groupId>org.jboss.ejb3</groupId>
+    <artifactId>jboss-ejb3-build</artifactId>
+    <version>1.0.2</version>
+  </parent>
+
+  <modelVersion>4.0.0</modelVersion>
+
+  <!-- Artifact Configuration -->
+  <groupId>org.jboss.ejb3</groupId>
+  <artifactId>jboss-ejb3-endpoint-deployer</artifactId>
+  <version>0.1.0-SNAPSHOT</version>
+  <name>JBoss EJB 3.x Endpoint Deployer</name>
+  <description>
+    The Endpoint Deployer is an adapter for component
+    for Core, which deploys Endpoints for each session container.
+  </description>
+  <url>http://www.jboss.org/jbossejb3</url>
+
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.jboss.bootstrap</groupId>
+      <artifactId>jboss-bootstrap</artifactId>
+      <version>1.0.0-Beta-2</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.jboss.deployers</groupId>
+      <artifactId>jboss-deployers-vfs</artifactId>
+      <version>${version.org.jboss.deployers}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-aop-deployers</artifactId>
+      <version>0.1.0-SNAPSHOT</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <!-- TODO: this should come in via ejb3-deployers, for now we want to override embedded -->
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-core</artifactId>
+      <version>1.1.3-SNAPSHOT</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.jboss.jbossas</groupId>
+          <artifactId>jboss-as-bootstrap</artifactId>
+        </exclusion>
+      </exclusions>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-endpoint</artifactId>
+      <version>0.1.0-SNAPSHOT</version>
+    </dependency>
+    
+    <!-- FIXME: this must be ejb3-deployers, because else we get a recursive dependency -->
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-embedded</artifactId>
+      <version>1.0.0-SNAPSHOT</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <!--
+    <dependency>
+      <groupId>org.jboss.logging</groupId>
+      <artifactId>jboss-logging-spi</artifactId>
+    </dependency>
+    -->
+
+    <dependency>
+      <groupId>org.jboss.microcontainer</groupId>
+      <artifactId>jboss-aop-mc-int</artifactId>
+      <version>2.0.0.CR5</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.jboss.logging</groupId>
+      <artifactId>jboss-logging-log4j</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+</project>

Added: projects/ejb3/trunk/endpoint-deployer/src/main/java/org/jboss/ejb3/endpoint/deployers/EJB3EndpointDeployer.java
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/src/main/java/org/jboss/ejb3/endpoint/deployers/EJB3EndpointDeployer.java	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/src/main/java/org/jboss/ejb3/endpoint/deployers/EJB3EndpointDeployer.java	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,101 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, 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.endpoint.deployers;
+
+import org.jboss.beans.metadata.api.annotations.Inject;
+import org.jboss.beans.metadata.plugins.builder.BeanMetaDataBuilderFactory;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.ejb3.endpoint.deployers.impl.EndpointImpl;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class EJB3EndpointDeployer extends AbstractSimpleRealDeployer<JBossMetaData>
+{
+   private EJBIdentifier identifier;
+
+   public EJB3EndpointDeployer()
+   {
+      super(JBossMetaData.class);
+      setOutput(BeanMetaData.class);
+   }
+
+   @Override
+   public void deploy(DeploymentUnit unit, JBossMetaData metaData) throws DeploymentException
+   {
+      JBossEnterpriseBeansMetaData beans = metaData.getEnterpriseBeans();
+      for (JBossEnterpriseBeanMetaData bean : beans)
+      {
+         if (bean.isSession())
+         {
+            log.debug("found bean " + bean);
+            // Create view for each bean
+            deploy(unit, (JBossSessionBeanMetaData) bean);
+         }
+      }
+   }
+
+   protected void deploy(DeploymentUnit unit, JBossSessionBeanMetaData beanMetaData) throws DeploymentException
+   {
+      String ejbBeanName = identifier.identifyEJB(unit, beanMetaData.getEjbName());
+      String name = ejbBeanName + "_endpoint";
+      BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder(name, EndpointImpl.class.getName());
+      builder.addPropertyMetaData("container", builder.createInject(ejbBeanName));
+      BeanMetaData bmd = builder.getBeanMetaData();
+      log.info("Deploy " + bmd);
+      unit.addAttachment(BeanMetaData.class + ":" + name, bmd);
+   }
+   
+   @Inject
+   public void setEJBIdentifier(EJBIdentifier identifier)
+   {
+      this.identifier = identifier;
+   }
+   
+   @Override
+   public void undeploy(DeploymentUnit unit, JBossMetaData metaData)
+   {
+      JBossEnterpriseBeansMetaData beans = metaData.getEnterpriseBeans();
+      for (JBossEnterpriseBeanMetaData bean : beans)
+      {
+         if (bean.isSession())
+         {
+            log.debug("found bean " + bean);
+            // Create view for each bean
+            undeploy(unit, (JBossSessionBeanMetaData) bean);
+         }
+      }
+   }
+
+   protected void undeploy(DeploymentUnit unit, JBossSessionBeanMetaData bean)
+   {
+   }
+}

Added: projects/ejb3/trunk/endpoint-deployer/src/main/java/org/jboss/ejb3/endpoint/deployers/EJBIdentifier.java
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/src/main/java/org/jboss/ejb3/endpoint/deployers/EJBIdentifier.java	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/src/main/java/org/jboss/ejb3/endpoint/deployers/EJBIdentifier.java	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,33 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, 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.endpoint.deployers;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public interface EJBIdentifier
+{
+   String identifyEJB(DeploymentUnit unit, String ejbName);
+}

Added: projects/ejb3/trunk/endpoint-deployer/src/main/java/org/jboss/ejb3/endpoint/deployers/impl/EndpointImpl.java
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/src/main/java/org/jboss/ejb3/endpoint/deployers/impl/EndpointImpl.java	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/src/main/java/org/jboss/ejb3/endpoint/deployers/impl/EndpointImpl.java	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,115 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, 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.endpoint.deployers.impl;
+
+import java.io.Serializable;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+
+import org.jboss.aop.advice.Interceptor;
+import org.jboss.ejb3.common.lang.SerializableMethod;
+import org.jboss.ejb3.endpoint.Endpoint;
+import org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandler;
+import org.jboss.ejb3.proxy.spi.container.InvokableContext;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class EndpointImpl implements Endpoint
+{
+   private InvokableContext container;
+   
+   public Object invoke(final Serializable session, Class<?> invokedBusinessInterface, Method method, Object[] args)
+      throws Throwable
+   {
+      ClassLoader loader = Thread.currentThread().getContextClassLoader();
+      Class<?> interfaces[] = { invokedBusinessInterface };
+      SessionProxyInvocationHandler handler = new SessionProxyInvocationHandler() {
+         private static final long serialVersionUID = 1L;
+
+         public String getBusinessInterfaceType()
+         {
+            throw new UnsupportedOperationException();
+         }
+
+         public String getContainerGuid()
+         {
+            throw new UnsupportedOperationException();
+         }
+
+         public String getContainerName()
+         {
+            throw new UnsupportedOperationException();
+         }
+
+         public Interceptor[] getInterceptors()
+         {
+            throw new UnsupportedOperationException();
+         }
+
+         public Object getTarget()
+         {
+            return session;
+         }
+
+         public void setBusinessInterfaceType(String businessInterfaceType)
+         {
+            throw new UnsupportedOperationException();
+         }
+
+         public void setContainerGuid(String containerGuid)
+         {
+            throw new UnsupportedOperationException();
+         }
+
+         public void setContainerName(String containerName)
+         {
+            throw new UnsupportedOperationException();
+         }
+
+         public void setInterceptors(Interceptor[] interceptors)
+         {
+            throw new UnsupportedOperationException();
+         }
+
+         public void setTarget(Object target)
+         {
+            throw new UnsupportedOperationException();
+         }
+
+         public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
+         {
+            throw new UnsupportedOperationException();
+         }
+      };
+      Object proxy = Proxy.newProxyInstance(loader, interfaces, handler);
+      SerializableMethod businessMethod = new SerializableMethod(method, invokedBusinessInterface);
+      return container.invoke(proxy, businessMethod, args);
+   }
+   
+   //@Inject
+   public void setContainer(InvokableContext container)
+   {
+      this.container = container;
+   }
+}

Added: projects/ejb3/trunk/endpoint-deployer/src/main/resources/META-INF/jboss-beans.xml
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/src/main/resources/META-INF/jboss-beans.xml	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/src/main/resources/META-INF/jboss-beans.xml	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+   <bean name="EJB3EndpointDeployer" class="org.jboss.ejb3.endpoint.deployers.EJB3EndpointDeployer"/>
+</deployment>
\ No newline at end of file

Added: projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/common/MockEJBIdentifier.java
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/common/MockEJBIdentifier.java	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/common/MockEJBIdentifier.java	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,87 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, 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.endpoint.deployers.test.common;
+
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.ejb3.endpoint.deployers.EJBIdentifier;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.ear.spec.EarMetaData;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class MockEJBIdentifier implements EJBIdentifier
+{
+   private static final Logger log = Logger.getLogger(MockEJBIdentifier.class);
+   
+   public String identifyEJB(DeploymentUnit unit, String ejbName)
+   {
+      // TODO the base ejb3 jmx object name comes from Ejb3Module.BASE_EJB3_JMX_NAME, but
+      // we don't need any reference to ejb3-core. Right now just hard code here, we need
+      // a better way/place for this later
+      StringBuilder containerName = new StringBuilder("jboss.j2ee:service=EJB3" + ",");
+
+      // Get the top level unit for this unit (ex: the top level might be an ear and this unit might be the jar
+      // in that ear
+      DeploymentUnit toplevelUnit = unit.getTopLevel();
+      if (toplevelUnit != null)
+      {
+         // if top level is an ear, then create the name with the ear reference
+         if (toplevelUnit.getAttachment(EarMetaData.class) != null)
+         {
+            containerName.append("ear=");
+            containerName.append(toplevelUnit.getSimpleName());
+            containerName.append(",");
+
+         }
+      }
+      // now work on the passed unit, to get the jar name
+      if (unit.getSimpleName() == null)
+      {
+         containerName.append("*");
+      }
+      else
+      {
+         containerName.append("jar=");
+         containerName.append(unit.getSimpleName());
+      }
+      // now the ejbname
+      containerName.append(",name=");
+      containerName.append(ejbName);
+
+      log.info("Container name generated for ejb = " + ejbName + " in unit " + unit + " is " + containerName);
+      
+      try
+      {
+         ObjectName containerJMXName = new ObjectName(containerName.toString());
+         return containerJMXName.getCanonicalName();
+      }
+      catch(MalformedObjectNameException e)
+      {
+         throw new RuntimeException(e);
+      }
+   }
+}

Added: projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/common/MockTimerServiceFactory.java
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/common/MockTimerServiceFactory.java	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/common/MockTimerServiceFactory.java	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,53 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, 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.endpoint.deployers.test.common;
+
+import javax.ejb.TimerService;
+
+import org.jboss.ejb3.timerservice.spi.TimedObjectInvoker;
+import org.jboss.ejb3.timerservice.spi.TimerServiceFactory;
+import org.jboss.logging.Logger;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class MockTimerServiceFactory implements TimerServiceFactory
+{
+   private static final Logger log = Logger.getLogger(MockTimerServiceFactory.class);
+   
+   public TimerService createTimerService(TimedObjectInvoker invoker)
+   {
+      log.info("not creating a timer service");
+      return null;
+   }
+
+   public void restoreTimerService(TimerService timerService)
+   {
+      log.info("ignoring timer service restore");
+   }
+
+   public void suspendTimerService(TimerService timerService)
+   {
+      log.info("ignoring timer service suspend");
+   }
+}

Added: projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/simple/Greeter.java
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/simple/Greeter.java	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/simple/Greeter.java	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,31 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, 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.endpoint.deployers.test.simple;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public interface Greeter
+{
+   String sayHi(String me);
+}

Added: projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/simple/MyStatelessBean.java
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/simple/MyStatelessBean.java	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/simple/MyStatelessBean.java	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, 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.endpoint.deployers.test.simple;
+
+import javax.ejb.Stateless;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+// TODO: some kind of error on metadata decoration occurs when implementing a default local interface
+ at Stateless
+public class MyStatelessBean //implements Greeter
+{
+   public String sayHi(String me)
+   {
+      return "Hi " + me + " from " + MyStatelessBean.class.getSimpleName();
+   }
+}

Added: projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/simple/unit/DeployEndpointTestCase.java
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/simple/unit/DeployEndpointTestCase.java	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/src/test/java/org/jboss/ejb3/endpoint/deployers/test/simple/unit/DeployEndpointTestCase.java	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,181 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, 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.endpoint.deployers.test.simple.unit;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Proxy;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
+import java.util.List;
+import java.util.Properties;
+
+import org.jboss.bootstrap.microcontainer.ServerImpl;
+import org.jboss.bootstrap.spi.ServerConfig;
+import org.jboss.bootstrap.spi.microcontainer.MCServer;
+import org.jboss.dependency.spi.ControllerContext;
+import org.jboss.dependency.spi.ControllerState;
+import org.jboss.deployers.client.spi.main.MainDeployer;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.vfs.spi.client.VFSDeployment;
+import org.jboss.deployers.vfs.spi.client.VFSDeploymentFactory;
+import org.jboss.ejb3.endpoint.Endpoint;
+import org.jboss.ejb3.endpoint.deployers.test.simple.Greeter;
+import org.jboss.ejb3.endpoint.reflect.EndpointInvocationHandler;
+import org.jboss.logging.Logger;
+import org.jboss.virtual.VFS;
+import org.jboss.virtual.VirtualFile;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class DeployEndpointTestCase
+{
+   private static final Logger log = Logger.getLogger(DeployEndpointTestCase.class);
+   
+   private static MCServer server;
+   private static MainDeployer mainDeployer;
+   
+   @AfterClass
+   public static void afterClass()
+   {
+      if(server != null)
+         server.shutdown();
+   }
+   
+   @BeforeClass
+   public static void beforeClass() throws Exception
+   {
+      server = new ServerImpl();
+      
+      String dir = mkdir("target/bootstrap");
+      
+      Properties props = new Properties();
+      props.put(ServerConfig.HOME_DIR, dir);
+      props.put(ServerConfig.SERVER_CONFIG_URL, findDir("src/test/resources/conf"));
+      server.init(props);
+      
+      server.start();
+      
+      mainDeployer = (MainDeployer) server.getKernel().getController().getContext("MainDeployer", ControllerState.INSTALLED).getTarget();
+      
+      // TODO: another hack that simulates profile service going through deploy dir
+      VirtualFile deployDir = VFS.getRoot(findDirURI("src/test/resources/deploy"));
+      List<VirtualFile> candidates = deployDir.getChildren();
+      for(VirtualFile candidate : candidates)
+      {
+         deploy(candidate.toURL());
+      }
+      
+      // TODO:
+      deployResource("ejb3-interceptors-aop.xml");
+      
+      URL url = new File("src/main/resources").toURI().toURL();
+      log.debug("url = " + url);
+      deploy(url);
+      
+      deploy(getURLToTestClasses());
+   }
+   
+   protected static void deployResource(String name) throws DeploymentException, IOException
+   {
+      URL url = Thread.currentThread().getContextClassLoader().getResource(name);
+      if(url == null)
+         throw new IllegalArgumentException("Resource " + name + " not found");
+      deploy(url);
+   }
+   
+   protected static void deploy(URL url) throws DeploymentException, IOException
+   {
+      VirtualFile root = VFS.getRoot(url);
+      VFSDeployment deployment = VFSDeploymentFactory.getInstance().createVFSDeployment(root);
+      mainDeployer.deploy(deployment);
+      mainDeployer.checkComplete(deployment);
+   }
+   
+   private static String findDir(String path) throws IOException
+   {
+      File file = new File(path);
+      boolean success = file.isDirectory();
+      if(!success)
+         throw new IOException("failed to find " + path);
+      return file.toURI().toString();
+   }
+   
+   private static URI findDirURI(String path) throws IOException
+   {
+      File file = new File(path);
+      boolean success = file.isDirectory();
+      if(!success)
+         throw new IOException("failed to find " + path);
+      return file.toURI();
+   }
+   
+   private static URL getURLToTestClasses()
+   {
+      try
+      {
+         String p = "org/jboss/ejb3/endpoint/deployers/test";
+         URL url = Thread.currentThread().getContextClassLoader().getResource(p);
+         String s = url.toString();
+         return new URL(s.substring(0, s.length() - p.length()));
+      }
+      catch(MalformedURLException e)
+      {
+         throw new RuntimeException(e);
+      }
+   }
+
+   private static String mkdir(String path) throws IOException
+   {
+      File file = new File(path);
+      boolean success = file.mkdirs() || file.isDirectory();
+      if(!success)
+         throw new IOException("failed to create " + path);
+      return file.getAbsolutePath();
+   }
+   
+   @Test
+   public void test1() throws Throwable
+   {
+      // name is not important
+      String name = "jboss.j2ee:jar=tests-classes,name=MyStatelessBean,service=EJB3_endpoint";
+      ControllerState state = null;
+      ControllerContext context = server.getKernel().getController().getContext(name, state);
+      if(context.getState() != ControllerState.INSTALLED)
+         context.getController().change(context, ControllerState.INSTALLED);
+      Endpoint endpoint = (Endpoint) context.getTarget();
+      EndpointInvocationHandler handler = new EndpointInvocationHandler(endpoint, null, Greeter.class);
+      ClassLoader loader = Thread.currentThread().getContextClassLoader();
+      Class<?> interfaces[] = { Greeter.class };
+      Greeter bean = (Greeter) Proxy.newProxyInstance(loader, interfaces, handler);
+      String result = bean.sayHi("Thingy");
+      assertEquals("Hi Thingy from MyStatelessBean", result);
+   }
+}

Added: projects/ejb3/trunk/endpoint-deployer/src/test/resources/conf/bootstrap/aop.xml
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/src/test/resources/conf/bootstrap/aop.xml	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/src/test/resources/conf/bootstrap/aop.xml	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+   AOP configuration
+-->
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <classloader><inject bean="aop-classloader:0.0.0"/></classloader>
+
+   <classloader name="aop-classloader" xmlns="urn:jboss:classloader:1.0" export-all="NON_EMPTY" import-all="true">
+      <!-- TODO
+      <root>${jboss.lib.url}jboss-aop-asintegration-core.jar</root>
+      <root>${jboss.lib.url}jboss-aop-asintegration-jmx.jar</root>
+      <root>${jboss.lib.url}jboss-aop-asintegration-mc.jar</root>
+      <root>${jboss.lib.url}jboss-aop-jboss5.jar</root>
+      -->
+   </classloader>
+
+   <!-- Integration -->
+   <bean name="AOPJBossIntegration" class="org.jboss.aop.asintegration.jboss5.JBoss5Integration"/>
+
+   <bean name="DefaultAspectManager" class="org.jboss.aop.microcontainer.beans.metadata.DefaultAspectManager">
+      <property name="managerBean">AspectManager</property>
+      <property name="managerProperty">aspectManager</property>
+   </bean>
+
+
+   <!--
+      Valid values for the AspectManager bean for use with enableTransformer=true are:
+      * org.jboss.aop.deployers.AspectManagerJDK5 - works with the -javaagent:pluggable-instrumentor.jar switch
+      * org.jboss.aop.deployers.AspectManagerJRockit - works with JRockit and the -Xmanagement:class=org.jboss.aop.hook.JRockitPluggableClassPreProcessor switch
+   -->
+   <bean name="AspectManager" class="org.jboss.aop.deployers.AspectManagerJDK5">
+      <constructor>
+         <parameter><![CDATA[
+	         <aop>
+			      <aspect name="mainDeployer" class="org.jboss.profileservice.aop.MainDeployerAspect"/>
+					   <bind pointcut="execution(* $instanceof{org.jboss.deployers.spi.deployment.MainDeployer}->process(..))">
+				      <advice name="process" aspect="mainDeployer"/>
+				   </bind>
+					<aspect name="persist" class="org.jboss.profileservice.aop.PersistAspect"/>
+					<bind pointcut="execution(* $instanceof{org.jboss.managed.api.ManagedProperty}->setValue(..))">
+				      <advice name="setValue" aspect="persist"/>
+				   </bind>
+				</aop>]]>
+	      </parameter>
+      </constructor>
+
+      <property name="jbossIntegration"><inject bean="AOPJBossIntegration"/></property>
+
+      <property name="enableLoadtimeWeaving">false</property>
+      <!-- only relevant when EnableLoadtimeWeaving is true.
+           When transformer is on, every loaded class gets
+           transformed.  If AOP can't find the class, then it
+           throws an exception.  Sometimes, classes may not have
+           all the classes they reference.  So, the Suppressing
+           is needed.  (i.e. Jboss cache in the default configuration -->
+      <property name="suppressTransformationErrors">true</property>
+      <property name="prune">true</property>
+      <property name="include">org.jboss.test., org.jboss.injbossaop.</property>
+      <property name="exclude">org.jboss.</property>
+      <!-- This avoids instrumentation of hibernate cglib enhanced proxies
+      <property name="ignore">*$$EnhancerByCGLIB$$*</property> -->
+      <property name="optimized">true</property>
+      <property name="verbose">false</property>
+      <!--
+         Available choices for this attribute are:
+            org.jboss.aop.instrument.ClassicInstrumentor (default)
+            org.jboss.aop.instrument.GeneratedAdvisorInstrumentor
+       <property name="instrumentor">org.jboss.aop.instrument.ClassicInstrumentor</property>
+      -->
+	  <!-- 
+		By default the deployment of the aspects contained in 
+		../deployers/jboss-aop-jboss5.deployer/base-aspects.xml
+		are not deployed. To turn on deployment uncomment this property
+	  <property name="useBaseXml">true</property>
+	  -->
+   </bean>
+
+</deployment>

Added: projects/ejb3/trunk/endpoint-deployer/src/test/resources/conf/bootstrap/classloader.xml
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/src/test/resources/conf/bootstrap/classloader.xml	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/src/test/resources/conf/bootstrap/classloader.xml	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+   The core classloading system
+-->
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <classloader><inject bean="bootstrap-classloader:0.0.0"/></classloader>
+
+   <!--
+      The classloader implementation
+   -->
+   <bean name="ClassLoaderSystem" class="org.jboss.classloader.spi.ClassLoaderSystem">
+      <classloader><null/></classloader>
+      <constructor factoryClass="org.jboss.classloader.spi.ClassLoaderSystem" factoryMethod="getInstance"/>
+   </bean>
+
+   <!-- 
+      ClassLoader management and resolution
+   -->
+   <bean name="ClassLoading" class="org.jboss.classloading.spi.dependency.ClassLoading">
+      <classloader><null/></classloader>
+      <incallback method="addModule" state="Configured"/>
+      <uncallback method="removeModule" state="Configured"/>
+   </bean>
+
+   <classloader name="bootstrap-classloader" xmlns="urn:jboss:classloader:1.0" export-all="NON_EMPTY" import-all="true">
+      <!-- System -->
+      <!-- TODO
+      <root>${jboss.lib.url}jboss-system.jar</root>
+      -->
+   </classloader>
+   
+</deployment>

Added: projects/ejb3/trunk/endpoint-deployer/src/test/resources/conf/bootstrap/deployers.xml
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/src/test/resources/conf/bootstrap/deployers.xml	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/src/test/resources/conf/bootstrap/deployers.xml	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+   The base deployers
+-->
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <classloader><inject bean="deployers-classloader:0.0.0"/></classloader>
+
+   <classloader name="deployers-classloader" xmlns="urn:jboss:classloader:1.0" export-all="NON_EMPTY" import-all="true">
+      <!-- FIXME
+      <root>${jboss.lib.url}jboss-deployers-core-spi.jar</root>
+      <root>${jboss.lib.url}jboss-deployers-core.jar</root>
+      <root>${jboss.lib.url}jboss-deployers-client-spi.jar</root>
+      <root>${jboss.lib.url}jboss-deployers-client.jar</root>
+      <root>${jboss.lib.url}jboss-deployers-structure-spi.jar</root>
+      <root>${jboss.lib.url}jboss-deployers-spi.jar</root>
+      <root>${jboss.lib.url}jboss-deployers-impl.jar</root>
+      <root>${jboss.lib.url}jboss-deployers-vfs-spi.jar</root>
+      <root>${jboss.lib.url}jboss-deployers-vfs.jar</root>
+      -->
+   </classloader>
+
+  <!-- use legacy ordering -->
+   <!-- Can't depend on AS
+   <bean name="topContextComparator">
+     <constructor factoryClass="org.jboss.system.deployers.LegacyDeploymentContextComparator" factoryMethod="getInstance"/>
+   </bean>
+   -->
+
+   <!-- The ManagedObjectFactory -->
+   <!-- No managed stuff in unit test
+   <bean name="ManagedObjectFactory">
+      <constructor factoryClass="org.jboss.managed.api.factory.ManagedObjectFactory" factoryMethod="getInstance"/>
+      <!- - Accept any implementor of InstanceClassFactory - ->
+      <incallback method="addInstanceClassFactory"/>
+      <uncallback method="removeInstanceClassFactory"/>
+   </bean>
+   -->
+   <!-- The ManagedObjectCreator implementation -->
+   <!-- No managed stuff in unit test
+   <bean name="ManagedObjectCreator" class="org.jboss.deployers.spi.deployer.helpers.DefaultManagedObjectCreator">
+      <property name="mof"><inject bean="ManagedObjectFactory"/></property>
+   </bean>
+   -->
+
+   <!-- The MainDeployer -->
+   <bean name="MainDeployer" class="org.jboss.deployers.plugins.main.MainDeployerImpl">
+      <property name="structuralDeployers"><inject bean="StructuralDeployers"/></property>
+      <property name="deployers"><inject bean="Deployers"/></property>
+      <!-- 
+      <property name="mgtDeploymentCreator"><inject bean="ManagedDeploymentCreator"/></property>
+      <property name="comparator"><inject bean="topContextComparator"/></property>
+      -->
+   </bean>
+
+   <!-- The ManagedDeploymentCreator implementation that supports mapping
+      attachment types to ManagedDeployment#getTypes
+   -->
+   <!-- Can't depend on AS
+   <bean name="ManagedDeploymentCreator" class="org.jboss.deployers.plugins.managed.TypedManagedDeploymentCreator" />
+   -->
+
+   <!-- The holder for deployers that determine structure -->
+   <bean name="StructuralDeployers" class="org.jboss.deployers.vfs.plugins.structure.VFSStructuralDeployersImpl">
+      <property name="structureBuilder">
+         <!-- The consolidator of the structure information -->
+         <bean name="StructureBuilder" class="org.jboss.deployers.vfs.plugins.structure.VFSStructureBuilder"/>
+      </property>
+      <!-- Accept any implementor of structure deployer -->
+      <incallback method="addDeployer"/>
+      <uncallback method="removeDeployer"/>
+   </bean>
+
+   <!-- The holder for deployers that do real deployment -->
+   <bean name="Deployers" class="org.jboss.deployers.plugins.deployers.DeployersImpl">
+      <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.deployment:service=DeployersImpl", exposedInterface=org.jboss.deployers.plugins.deployers.DeployersImplMBean.class, registerDirectly=true)</annotation>
+      <constructor><parameter><inject bean="jboss.kernel:service=KernelController"/></parameter></constructor>
+      <!-- Accept any implementor of deployer -->
+      <incallback method="addDeployer"/>
+      <uncallback method="removeDeployer"/>
+      <property name="mgtObjectCreator"><inject option="optional" bean="ManagedObjectCreator"/></property>
+   </bean>
+
+   <!-- A declared structure descriptor deployer -->
+   <bean name="DeclaredStructure" class="org.jboss.deployers.vfs.plugins.structure.explicit.DeclaredStructure"/>
+
+    <!-- JAR Structure -->
+    <bean name="JARStructure" class="org.jboss.deployers.vfs.plugins.structure.jar.JARStructure">
+       <!-- Unless specified the default list of suffixes is .zip, .ear, .jar, ,.rar, .war, .sar, .har, .aop -->
+       <constructor>
+          <parameter>
+             <set elementClass="java.lang.String">
+                <value>.zip</value>
+                <value>.ear</value>
+                <value>.jar</value>
+                <value>.rar</value>
+                <value>.war</value>
+                <value>.sar</value>
+                <value>.har</value>
+                <value>.aop</value>
+                <value>.deployer</value>
+                <value>.beans</value>
+             </set>
+          </parameter>
+       </constructor>
+       <property name="candidateStructureVisitorFactory">
+          <!-- Any file that is not an ordinary directory is a candidate -->
+          <bean name="JARStructureCandidates" class="org.jboss.deployers.vfs.spi.structure.helpers.DefaultCandidateStructureVisitorFactory">
+             <!-- A filter to exclude some obvious non-subdeployments -->
+             <property name="filter">
+                <bean name="JARFilter" class="org.jboss.virtual.plugins.vfs.helpers.SuffixesExcludeFilter">
+                   <constructor><parameter>
+                      <list elementClass="java.lang.String">
+                         <!-- Exclude class files as subdeployments -->
+                         <value>.class</value>
+                      </list>
+                   </parameter></constructor>
+                </bean>
+             </property>
+          </bean>
+       </property>
+    </bean>
+
+    <!-- File Structure -->
+    <bean name="FileStructure" class="org.jboss.deployers.vfs.plugins.structure.file.FileStructure">
+       <!-- Unless specified the default list of suffixes is -service.xml, -beans.xml, -ds.xml, -aop.xml -->
+       <constructor>
+          <parameter>
+             <set elementClass="java.lang.String">
+                <value>-service.xml</value>
+                <value>-beans.xml</value>
+                <value>-ds.xml</value>
+                <value>-aop.xml</value>
+             </set>
+          </parameter>
+       </constructor>
+    </bean>
+
+    <!-- Old AOP deployment 
+    <bean name="AspectAppParsingDeployer" class="org.jboss.aop.asintegration.jboss5.AspectAppParsingDeployer"/>
+    <bean name="AspectDeployer" class="org.jboss.aop.asintegration.jboss5.AspectDeployer">
+       <property name="aspectManager"><inject bean="AspectManager" property="aspectManager"/></property>
+   </bean>
+   -->
+
+   <bean name="AOPXMLMetaDataParserDeployer" class="org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer">
+      <constructor>
+         <parameter>org.jboss.aop.microcontainer.beans.metadata.AOPDeployment</parameter>
+      </constructor>
+      <property name="suffix">-aop.xml</property>
+   </bean>
+   <bean name="AOPAnnotationMetaDataParserDeployer" class="org.jboss.aop.asintegration.jboss5.AOPAnnotationMetaDataParserDeployer">
+      <constructor>
+         <parameter><inject bean="AOPXMLMetaDataParserDeployer" property="relativeOrder"/></parameter>
+      </constructor>
+   </bean>
+   <bean name="AOPClassLoaderDeployer" class="org.jboss.aop.asintegration.jboss5.AOPClassLoaderDeployer">
+      <property name="aspectManager"><inject bean="AspectManager" property="aspectManager"/></property>
+   </bean>
+   <bean name="AOPDeploymentAopMetaDataDeployer" class="org.jboss.aop.asintegration.jboss5.AOPDeploymentAopMetaDataDeployer">
+      <property name="kernel"><inject bean="jboss.kernel:service=Kernel"/></property>
+      <property name="aspectManager"><inject bean="AspectManager" property="aspectManager"/></property>
+   </bean>
+   <bean name="BeansDeploymentAopMetaDataDeployer" class="org.jboss.aop.asintegration.jboss5.BeansDeploymentAopMetaDataDeployer">
+      <property name="kernel"><inject bean="jboss.kernel:service=Kernel"/></property>
+      <property name="aspectManager"><inject bean="AspectManager" property="aspectManager"/></property>
+   </bean>
+
+   <!-- POJO Deployment -->
+   <!-- 
+   <bean name="BeanMetaDataICF" class="org.jboss.deployers.plugins.managed.BeanMetaDataICF">
+      <property name="controller"><inject bean="jboss.kernel:service=KernelController"/></property>
+   </bean>
+   <bean name="KernelDeploymentManagedObjectCreator" class="org.jboss.deployers.plugins.managed.KernelDeploymentManagedObjectCreator">
+      <constructor><parameter><inject bean="ManagedObjectFactory"/></parameter></constructor>
+   </bean>
+   <bean name="BeanDeployer" class="org.jboss.deployers.vfs.deployer.kernel.BeanDeployer">
+      <property name="suffix">jboss-beans.xml</property>
+   </bean>
+   <bean name="KernelDeploymentDeployer" class="org.jboss.deployers.vfs.deployer.kernel.KernelDeploymentDeployer">
+      <install bean="ManagedDeploymentCreator" method="addAttachmentType">
+         <parameter>
+            <value>org.jboss.kernel.spi.deployment.KernelDeployment</value>
+         </parameter>
+         <parameter>
+            <value>beans</value>
+         </parameter>
+      </install>
+      <uninstall bean="ManagedDeploymentCreator" method="removeAttachmentType">
+         <parameter>
+            <value>org.jboss.kernel.spi.deployment.KernelDeployment</value>
+         </parameter>        
+      </uninstall>
+      <property name="mgtObjectCreator"><inject bean="KernelDeploymentManagedObjectCreator"/></property>
+   </bean>
+   <bean name="BeanMetaDataDeployer" class="org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer">
+      <constructor><parameter class="org.jboss.kernel.Kernel"><inject bean="jboss.kernel:service=Kernel"/></parameter></constructor>
+   </bean>
+   -->
+   
+   <!-- POJO Deployment, the bare essentials -->
+   <bean name="BeanDeployer" class="org.jboss.deployers.vfs.deployer.kernel.BeanDeployer"/>
+   <bean name="KernelDeploymentDeployer" class="org.jboss.deployers.vfs.deployer.kernel.KernelDeploymentDeployer"/>
+   <bean name="BeanMetaDataDeployer" class="org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer">
+      <constructor><parameter class="org.jboss.kernel.Kernel"><inject bean="jboss.kernel:service=Kernel"/></parameter></constructor>
+   </bean>
+
+   <!-- JMX Deployment -->
+   <!-- No JMX support in unit test
+   <bean name="ServiceMetaDataICF" class="org.jboss.system.deployers.managed.ServiceMetaDataICF">
+      <property name="mbeanServer"><inject bean="JMXKernel" property="mbeanServer"/></property>
+   </bean>
+   <bean name="SARDeployer" class="org.jboss.system.deployers.SARDeployer">
+   </bean>
+   <bean name="ServiceClassLoaderDeployer" class="org.jboss.system.deployers.ServiceClassLoaderDeployer"/>
+   <bean name="ServiceDeploymentDeployer" class="org.jboss.system.deployers.ServiceDeploymentDeployer">
+   </bean>
+   <bean name="ServiceDeployer" class="org.jboss.system.deployers.ServiceDeployer">
+       <constructor><parameter><inject bean="JMXKernel" property="serviceController"/></parameter></constructor>
+   </bean>
+   -->
+
+   <bean name="ClassLoadingMetaDataParser" class="org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer">
+      <constructor>
+         <parameter>org.jboss.classloading.spi.metadata.ClassLoadingMetaData</parameter>
+      </constructor>
+      <property name="name">jboss-classloading.xml</property>
+      <property name="buildManagedObject">true</property>
+   </bean>
+   <bean name="ClassLoadingDefaultDeployer" class="org.jboss.deployers.plugins.classloading.ClassLoadingDefaultDeployer">
+      <property name="defaultMetaData">
+         <classloading xmlns="urn:jboss:classloading:1.0" export-all="NON_EMPTY" import-all="true"/>
+      </property>
+   </bean>
+   <bean name="InMemoryClassesDeployer" class="org.jboss.deployers.vfs.plugins.classloader.InMemoryClassesDeployer"/>
+   <bean name="ClassLoaderClassPathDeployer" class="org.jboss.deployers.vfs.plugins.classloader.VFSClassLoaderClassPathDeployer"/>
+   <bean name="ClassLoaderDescribeDeployer" class="org.jboss.deployers.vfs.plugins.classloader.VFSClassLoaderDescribeDeployer">
+      <property name="classLoading"><inject bean="ClassLoading"/></property>
+   </bean>
+   <bean name="ClassLoaderDeployer" class="org.jboss.deployers.plugins.classloading.AbstractLevelClassLoaderSystemDeployer">
+      <property name="classLoading"><inject bean="ClassLoading"/></property>
+      <property name="system"><inject bean="ClassLoaderSystem"/></property>
+   </bean>
+   
+</deployment>

Added: projects/ejb3/trunk/endpoint-deployer/src/test/resources/conf/bootstrap.xml
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/src/test/resources/conf/bootstrap.xml	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/src/test/resources/conf/bootstrap.xml	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bootstrap xmlns="urn:jboss:bootstrap:1.0">
+<!-- JBoss AS 5.x Bootstrap 
+   <url>bootstrap/logging.xml</url>
+   <url>bootstrap/vfs.xml</url>
+   <url>bootstrap/classloader.xml</url>
+   <url>bootstrap/aop.xml</url>
+   <url>bootstrap/jmx.xml</url>
+   <url>bootstrap/deployers.xml</url>
+   <url>bootstrap/bindings.xml</url>
+   <url>bootstrap/profile.xml</url>
+-->
+   <!-- Custom bootstrap -->
+   <!-- 
+   <url>bootstrap/naming.xml</url>
+   <url>bootstrap/jmx-jdk.xml</url>
+   -->
+   <url>bootstrap/classloader.xml</url>
+   <url>bootstrap/aop.xml</url>
+   <url>bootstrap/deployers.xml</url>
+</bootstrap>

Added: projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/ejb-container-beans.xml
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/ejb-container-beans.xml	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/ejb-container-beans.xml	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+   <!-- The provider for EJB3 UserTransactions -->
+   <bean name="EJB3UserTransactionprovider" class="org.jboss.ejb3.tx.EJB3UserTransactionProvider">
+      <constructor factoryClass="org.jboss.ejb3.tx.EJB3UserTransactionProvider" factoryMethod="getSingleton"/>
+   </bean>
+   
+   <bean name="EmbeddedCachedConnectionManagerBridge" class="org.jboss.ejb3.embedded.connectionmanager.EmbeddedCachedConnectionManager"/>
+   
+   <bean name="EJBIdentifier" class="org.jboss.ejb3.endpoint.deployers.test.common.MockEJBIdentifier"/>
+   
+   <bean name="TimerServiceFactory" class="org.jboss.ejb3.endpoint.deployers.test.common.MockTimerServiceFactory"/>
+</deployment>

Added: projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/ejb-deployers-beans.xml
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/ejb-deployers-beans.xml	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/ejb-deployers-beans.xml	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+   <!-- TODO: move SchemaResolverConfig to a more general beans.xml -->
+   <bean name="SchemaResolverConfig" class="org.jboss.xb.binding.sunday.unmarshalling.SchemaResolverConfig">
+      <property name="bindingClassesByLocations">
+         <map keyClass="java.lang.String" valueClass="java.lang.String">
+            <entry>
+               <key>ejb-jar_3_0.xsd</key>
+               <value>org.jboss.metadata.ejb.spec.EjbJar30MetaData</value>
+            </entry>
+            <entry>
+               <key>jboss_5_0.xsd</key>
+               <value>org.jboss.metadata.ejb.jboss.JBoss50MetaData</value>
+            </entry>
+            <entry>
+               <key>persistence_1_0.xsd</key>
+               <value>org.jboss.metadata.jpa.spec.PersistenceMetaData</value>
+            </entry>
+         </map>
+      </property>
+   </bean>
+
+   <!--  Deployer which parses the ejb-jar.xml -->
+   <bean name="EjbParsingDeployer" class="org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer">
+
+      <constructor>
+        <parameter class="java.lang.Class">org.jboss.metadata.ejb.spec.EjbJarMetaData</parameter>
+      </constructor>
+      <property name="name">ejb-jar.xml</property>
+      <!-- We need to be fast, so no schema validation -->
+      <property name="useSchemaValidation">false</property>
+   </bean>
+
+   <!-- Deployer which parses jboss.xml -->
+   <bean name="JBossEjbParsingDeployer" class="org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer">
+
+      <constructor>
+        <parameter class="java.lang.Class">org.jboss.metadata.ejb.jboss.JBossMetaData</parameter>
+      </constructor>
+      <property name="name">jboss.xml</property>
+      <!-- We need to be fast, so no schema validation -->
+      <property name="useSchemaValidation">false</property>
+   </bean>
+
+
+   <bean name="EjbAnnotationMetaDataDeployer" class="org.jboss.ejb3.deployers.EjbAnnotationMetaDataDeployer"/>
+
+   <bean name="MergedJBossMetaDataDeployer" class="org.jboss.ejb3.deployers.MergedJBossMetaDataDeployer"/>
+
+   <bean name="EjbMetadataJndiPolicyDecoratorDeployer" class="org.jboss.ejb3.deployers.EjbMetadataJndiPolicyDecoratorDeployer"/>
+
+   <!-- EJB3 ProcessorChain Deployer -->
+   <bean name="Ejb3MetadataProcessingDeployer" class="org.jboss.ejb3.deployers.Ejb3MetadataProcessingDeployer" />
+
+   <bean name="EjbModuleDeployer" class="org.jboss.ejb3.embedded.deployers.EjbModuleDeployer"/>
+   <bean name="EjbComponentDeployer" class="org.jboss.ejb3.embedded.deployers.EjbComponentDeployer"/>
+
+   <bean name="MessageDestinationReferenceResolver" class="org.jboss.ejb3.embedded.resolvers.EmbeddedMessageDestinationReferenceResolver"/>
+
+   <!-- EJB3 Cache Factory Registry -->
+   <bean name="EJB3CacheFactoryRegistry" class="org.jboss.ejb3.cache.CacheFactoryRegistry">
+      <property name="factories">
+         <!-- Define each of the registered factories -->
+         <map class="java.util.HashMap" keyClass="java.lang.String"
+            valueClass="java.lang.Class">
+            <!-- NoPassivationCache -->
+            <entry>
+               <key>NoPassivationCache</key>
+               <value>org.jboss.ejb3.cache.NoPassivationCacheFactory</value>
+            </entry>
+            <!-- SimpleStatefulCache -->
+            <entry>
+               <key>SimpleStatefulCache</key>
+               <value>org.jboss.ejb3.cache.simple.SimpleStatefulCacheFactory</value>
+            </entry>
+            <!-- StatefulTreeCache -->
+            <entry>
+               <key>StatefulTreeCache</key>
+               <value>org.jboss.ejb3.cache.tree.StatefulTreeCacheFactory</value>
+            </entry>
+         </map>
+      </property>
+   </bean>
+
+   <!-- EJB3 Persistence Manager Factory Registry -->
+   <bean name="EJB3PersistenceManagerFactoryRegistry" class="org.jboss.ejb3.cache.persistence.PersistenceManagerFactoryRegistry">
+      <property name="factories">
+         <!-- Define each of the registered factories -->
+         <map class="java.util.HashMap" keyClass="java.lang.String"
+            valueClass="java.lang.Class">
+            <!-- StatefulSessionFilePersistenceManager -->
+            <entry>
+               <key>StatefulSessionFilePersistenceManager</key>
+               <value>org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManagerFactory</value>
+            </entry>
+         </map>
+      </property>
+   </bean>
+
+   <!-- EJB3 Pool Factory Registry -->
+   <bean name="EJB3PoolFactoryRegistry" class="org.jboss.ejb3.pool.PoolFactoryRegistry">
+      <property name="factories">
+         <!-- Define each of the registered factories -->
+         <map class="java.util.HashMap" keyClass="java.lang.String"
+            valueClass="java.lang.Class">
+            <!-- ThreadlocalPool -->
+            <entry>
+               <key>ThreadlocalPool</key>
+               <value>org.jboss.ejb3.pool.ThreadlocalPoolFactory</value>
+            </entry>
+            <!-- StrictMaxPool -->
+            <entry>
+               <key>StrictMaxPool</key>
+               <value>org.jboss.ejb3.pool.StrictMaxPoolFactory</value>
+            </entry>
+         </map>
+      </property>
+   </bean>
+
+   <!-- SFSB JNDI Registrar -->
+   <bean name="org.jboss.ejb3.JndiRegistrar.Session.SFSBJndiRegistrar"
+      class="org.jboss.ejb3.proxy.impl.jndiregistrar.JndiStatefulSessionRegistrar">
+      <constructor>
+         <parameter>
+            org.jboss.ejb3.proxy.impl.objectfactory.session.stateful.StatefulSessionProxyObjectFactory
+         </parameter>
+      </constructor>
+   </bean>
+
+   <!-- SLSB JNDI Registrar -->
+   <bean name="org.jboss.ejb3.JndiRegistrar.Session.SLSBJndiRegistrar"
+      class="org.jboss.ejb3.proxy.impl.jndiregistrar.JndiStatelessSessionRegistrar">
+      <constructor>
+         <parameter>
+            org.jboss.ejb3.proxy.impl.objectfactory.session.stateless.StatelessSessionProxyObjectFactory
+         </parameter>
+      </constructor>
+   </bean>
+
+   <!-- We could have directly used the org.jboss.ejb3.Ejb3Registry as a MC bean
+        and added the "register" and "unregister" methods as callbacks, but since
+        those methods are "static", MC complains and throws exception. So let's use
+        this indirection for the time being.
+
+        The Ejb3Registry is looked up by the IsLocalInterceptor for EJB containers.
+    -->
+
+    <bean name="EJB3ComponentRegistry" class="org.jboss.ejb3.embedded.Ejb3ComponentRegistry">
+      <!-- Accept any implementor of org.jboss.ejb3.EJBContainer -->
+      <incallback method="addContainer"/>
+      <uncallback method="removeContainer"/>
+    </bean>
+
+</deployment>
\ No newline at end of file

Added: projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/jpa-deployers-beans.xml
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/jpa-deployers-beans.xml	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/jpa-deployers-beans.xml	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+   <bean name="DataSourceDependencyResolver" class="org.jboss.ejb3.embedded.resolvers.EmbeddedDataSourceDependencyResolver"/>
+   
+   <bean name="JavaEEModuleInformer" class="org.jboss.ejb3.embedded.javaee.SimpleJavaEEModuleInformer"/>
+   
+   <bean name="SpecCompliantSearchStrategy" class="org.jboss.jpa.resolvers.strategy.SpecCompliantSearchStrategy"/>
+   
+   <!-- DefaultPersistenceUnitDependencyResolver for spec compliant resolving. Uses SpecCompliantSearchStrategy-->
+   <bean name="PersistenceUnitDependencyResolver" class="org.jboss.jpa.resolvers.DefaultPersistenceUnitDependencyResolver"/>
+   
+   <bean name="PersistenceParsingDeployer" class="org.jboss.jpa.deployers.PersistenceParsingDeployer"/>
+
+   <bean name="PersistenceDeployer" class="org.jboss.jpa.deployers.PersistenceDeployer"/>
+   <bean name="PersistenceUnitDeployer" class="org.jboss.jpa.deployers.PersistenceUnitDeployer">
+      <property name="defaultPersistenceProperties">
+         <map keyClass="java.lang.String" valueClass="java.lang.String">
+            <entry>
+               <key>hibernate.transaction.manager_lookup_class</key>
+               <value>org.hibernate.transaction.JBossTransactionManagerLookup</value>
+            </entry>
+         </map>
+      </property>
+   </bean>
+</deployment>
\ No newline at end of file

Added: projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/naming-beans.xml
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/naming-beans.xml	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/naming-beans.xml	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+   <!-- JNDI -->
+   <bean name="NamingServer" class="org.jnp.server.SingletonNamingServer"/>
+   
+   <bean name="JavaCompInitializer" class="org.jboss.naming.JavaCompInitializer">
+      <depends>NamingServer</depends>
+   </bean>
+</deployment>
\ No newline at end of file

Added: projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/transactionmanager-beans.xml
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/transactionmanager-beans.xml	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/src/test/resources/deploy/transactionmanager-beans.xml	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+   <!-- JTA -->
+   <bean name="TransactionManager" class="org.jboss.ejb3.embedded.service.SimpleTransactionService">
+      <depends>NamingServer</depends>
+   </bean>
+   
+   <bean name="RealTransactionManager">
+      <constructor factoryMethod="getTransactionManager">
+         <factory bean="TransactionManager"/>
+      </constructor>
+   </bean>
+</deployment>

Added: projects/ejb3/trunk/endpoint-deployer/src/test/resources/log4j.xml
===================================================================
--- projects/ejb3/trunk/endpoint-deployer/src/test/resources/log4j.xml	                        (rev 0)
+++ projects/ejb3/trunk/endpoint-deployer/src/test/resources/log4j.xml	2009-03-23 14:48:14 UTC (rev 86208)
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!--                                                                       -->
+<!--  Log4j Configuration                                                  -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml 68671 2008-01-08 10:04:25Z wolfc $ -->
+
+<!--
+   | For more configuration infromation and examples see the Jakarta Log4j
+   | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+  <!-- ================================= -->
+  <!-- Preserve messages in a local file -->
+  <!-- ================================= -->
+
+  <!-- A time/date based rolling appender -->
+  <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
+    <param name="File" value="target/test.log"/>
+    <param name="Append" value="false"/>
+
+    <!-- Rollover at midnight each day -->
+    <param name="DatePattern" value="'.'yyyy-MM-dd"/>
+
+    <!-- Rollover at the top of each hour
+    <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
+    -->
+
+    <layout class="org.apache.log4j.PatternLayout">
+      <!-- The default pattern: Date Priority [Category] Message\n -->
+      <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+
+      <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
+      <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
+       -->
+    </layout>	    
+  </appender>
+
+  <!-- A size based file rolling appender
+  <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+    <param name="File" value="${jboss.server.home.dir}/log/server.log"/>
+    <param name="Append" value="false"/>
+    <param name="MaxFileSize" value="500KB"/>
+    <param name="MaxBackupIndex" value="1"/>
+
+    <layout class="org.apache.log4j.PatternLayout">
+      <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+    </layout>	    
+  </appender>
+  -->
+
+  <!-- ============================== -->
+  <!-- Append messages to the console -->
+  <!-- ============================== -->
+
+  <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+    <param name="Target" value="System.out"/>
+    <param name="Threshold" value="ALL"/>
+
+    <layout class="org.apache.log4j.PatternLayout">
+      <!-- The default pattern: Date Priority [Category] Message\n -->
+      <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+    </layout>
+  </appender>
+
+
+  <!-- ================ -->
+  <!-- Limit categories -->
+  <!-- ================ -->
+
+  <!-- Limit JBoss categories to INFO
+  <category name="org.jboss">
+    <priority value="INFO" class="org.jboss.logging.XLevel"/>
+  </category>
+  -->
+
+  <!-- Increase the priority threshold for the DefaultDS category
+  <category name="DefaultDS">
+    <priority value="FATAL"/>
+  </category>
+  -->
+
+  <!-- Decrease the priority threshold for the org.jboss.varia category
+  <category name="org.jboss.varia">
+    <priority value="DEBUG"/>
+  </category>
+  -->
+
+  <!--
+     | An example of enabling the custom TRACE level priority that is used
+     | by the JBoss internals to diagnose low level details. This example
+     | turns on TRACE level msgs for the org.jboss.ejb.plugins package and its
+     | subpackages. This will produce A LOT of logging output.
+  <category name="org.jboss.system">
+    <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+  </category>
+  -->
+
+  <category name="org.jboss">
+    <priority value="INFO"/>
+  </category>
+  
+  <!-- 
+  <category name="org.jboss.ejb3">
+    <priority value="ALL"/>
+  </category>
+  -->
+  
+  <category name="org.jboss.kernel.plugins.dependency">
+    <priority value="ERROR"/>
+  </category>
+  
+  <category name="org.jboss.deployers.plugins.deployers.DeployWrapper">
+    <priority value="ERROR"/>
+  </category>
+  
+  <!-- ======================= -->
+  <!-- Setup the Root category -->
+  <!-- ======================= -->
+
+  <root>
+    <priority value="WARN" />
+    <appender-ref ref="CONSOLE"/>
+    <appender-ref ref="FILE"/>
+  </root>
+  
+</log4j:configuration>




More information about the jboss-cvs-commits mailing list