[jboss-cvs] JBossAS SVN: r67275 - in projects/metadata/trunk/src: main/java/org/jboss/metadata/annotation/creator/ejb and 12 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Nov 19 19:30:16 EST 2007


Author: scott.stark at jboss.org
Date: 2007-11-19 19:30:16 -0500 (Mon, 19 Nov 2007)
New Revision: 67275

Added:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/DenyAllProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/EjbNameThreadLocal.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/MessageDrivenProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/RolesAllowedProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/TimeoutProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/common/ejb/ITimeoutTarget.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/AnnotationMergedView.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/TransactionManagementTypeAdapter.java
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3_testXmlMerge.xml
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/ejb-jar.xml
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/jboss-app.xml
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/jboss.xml
Removed:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/MethodParametersHelper.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/TransactionType.java
Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ProcessorUtils.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractEnterpriseBeanProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractSessionBeanProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractTransactionAttributeProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/EjbJar30Creator.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/EntityProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/InitProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/RemoveProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/common/ejb/IEnterpriseBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/proxy/JBossEnterpriseBeansMetaDataProxy.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/proxy/JBossMetaDataProxy.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/MessageDrivenBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/SessionBeanMetaData.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/repository/MetaDataRepositoryUnitTestCase.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/AbstractEJBEverythingTest.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar21EverythingUnitTestCase.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar3xEverythingUnitTestCase.java
Log:
Change TransctionType enum to standard javax.ejb.TransactionManagementType enum
Add more annotation processing

Deleted: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/MethodParametersHelper.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/MethodParametersHelper.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/MethodParametersHelper.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -1,45 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors as indicated
- * by the @authors tag. See the copyright.txt 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.metadata.annotation.creator;
-
-import java.lang.reflect.Method;
-
-import org.jboss.metadata.ejb.spec.MethodParametersMetaData;
-
-/**
- * Comment
- *
- * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
- */
-public class MethodParametersHelper
-{
-   public static MethodParametersMetaData create(Method method)
-   {
-      MethodParametersMetaData metaData = new MethodParametersMetaData();
-      for(Class<?> parameterType : method.getParameterTypes())
-      {
-         metaData.add(parameterType.getName());
-      }
-      return metaData;
-   }
-}

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ProcessorUtils.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ProcessorUtils.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ProcessorUtils.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -28,6 +28,8 @@
 import java.util.Set;
 
 import org.jboss.annotation.javaee.Descriptions;
+import org.jboss.metadata.ejb.spec.MethodMetaData;
+import org.jboss.metadata.ejb.spec.MethodParametersMetaData;
 import org.jboss.metadata.javaee.spec.DescriptionGroupMetaData;
 import org.jboss.metadata.javaee.spec.DescriptionImpl;
 import org.jboss.metadata.javaee.spec.DescriptionsImpl;
@@ -90,6 +92,32 @@
       return c;
    }
 
+   public static MethodMetaData createMethod(String ejbName, Method method)
+   {
+      MethodMetaData methodMetaData = new MethodMetaData();
+      methodMetaData.setEjbName(ejbName);
+      if(method == null)
+         methodMetaData.setMethodName("*");
+      else
+      {
+         methodMetaData.setMethodName(method.getName());
+         MethodParametersMetaData methodParameters = ProcessorUtils.getMethodParameters(method);
+         if(methodParameters != null)
+            methodMetaData.setMethodParams(methodParameters);
+      }
+      return methodMetaData;
+   }
+
+   public static MethodParametersMetaData getMethodParameters(Method method)
+   {
+      MethodParametersMetaData metaData = new MethodParametersMetaData();
+      for(Class<?> parameterType : method.getParameterTypes())
+      {
+         metaData.add(parameterType.getName());
+      }
+      return metaData;
+   }
+
    public static Descriptions getDescription(String description)
    {
       DescriptionsImpl descriptions = null;

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractEnterpriseBeanProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractEnterpriseBeanProcessor.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractEnterpriseBeanProcessor.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -22,7 +22,11 @@
 package org.jboss.metadata.annotation.creator.ejb;
 
 import java.lang.reflect.AnnotatedElement;
+import java.lang.reflect.Method;
 
+import javax.ejb.TransactionManagement;
+import javax.ejb.TransactionManagementType;
+
 import org.jboss.metadata.annotation.creator.AbstractComponentProcessor;
 import org.jboss.metadata.annotation.creator.DeclareRolesProcessor;
 import org.jboss.metadata.annotation.creator.Processor;
@@ -31,6 +35,8 @@
 import org.jboss.metadata.ejb.spec.EjbJar3xMetaData;
 import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.spec.EnterpriseBeansMetaData;
+import org.jboss.metadata.ejb.spec.ExcludeListMetaData;
+import org.jboss.metadata.ejb.spec.MethodPermissionsMetaData;
 import org.jboss.metadata.javaee.spec.EnvironmentRefsGroupMetaData;
 import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
 
@@ -56,14 +62,24 @@
       addTypeProcessor(new RunAsProcessor(finder));
       // @DeclareRoles
       addTypeProcessor(new DeclareRolesProcessor(finder));
+      // @DenyAll
+      addMethodProcessor(new DenyAllProcessor(finder));
+      // @RolesAllowed
+      addTypeProcessor(new RolesAllowedProcessor<Class>(finder));
+      addMethodProcessor(new RolesAllowedProcessor<Method>(finder));
    }
 
+   /**
+    * TODO: this should iterate over all method processors 
+    */
    public void process(EjbJar3xMetaData ejbJarMetaData, Class<?> beanClass)
    {
       MD beanMetaData = create(beanClass);
       if(beanMetaData == null)
          return;
 
+      EjbNameThreadLocal.ejbName.set(beanMetaData.getEjbName());
+
       EnvironmentRefsGroupMetaData env = new EnvironmentRefsGroupMetaData();
       super.process(env, beanClass);
       beanMetaData.setJndiEnvironmentRefsGroup(env);
@@ -74,13 +90,13 @@
       ejbJarMetaData.getEnterpriseBeans().add(beanMetaData);
       processClass(beanMetaData, beanClass);
 
-      // @DeclareRoles
       AssemblyDescriptorMetaData assembly = ejbJarMetaData.getAssemblyDescriptor();
       if(assembly == null)
       {
          assembly = new AssemblyDescriptorMetaData();
          ejbJarMetaData.setAssemblyDescriptor(assembly);
       }
+      // @DeclareRoles
       SecurityRolesMetaData securityRoles = assembly.getSecurityRoles();
       if(securityRoles == null)
       {
@@ -88,5 +104,24 @@
          assembly.setSecurityRoles(securityRoles);
       }
       super.processClass(securityRoles, beanClass);
-   }  
+      // @DenyAll
+      ExcludeListMetaData excludes = assembly.getExcludeList();
+      if(excludes == null)
+      {
+         excludes = new ExcludeListMetaData();
+         assembly.setExcludeList(excludes);
+      }
+      super.processClass(excludes, beanClass);
+
+      // @RolesAllowed
+      MethodPermissionsMetaData permissions = assembly.getMethodPermissions();
+      if(permissions == null)
+      {
+         permissions = new MethodPermissionsMetaData();
+         assembly.setMethodPermissions(permissions);
+      }
+      super.processClass(permissions, beanClass);
+
+      EjbNameThreadLocal.ejbName.set(null);
+   }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractSessionBeanProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractSessionBeanProcessor.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractSessionBeanProcessor.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -25,6 +25,9 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.ejb.TransactionManagement;
+import javax.ejb.TransactionManagementType;
+
 import org.jboss.metadata.annotation.creator.Creator;
 import org.jboss.metadata.annotation.creator.Processor;
 import org.jboss.metadata.annotation.finder.AnnotationFinder;
@@ -59,6 +62,7 @@
       addTypeProcessor(new RemoteHomeProcessor(finder));
 
       addMethodProcessor(new InitProcessor(finder));
+      addMethodProcessor(new TimeoutProcessor(finder));
    }
 
    public abstract SessionBeanMetaData create(Class<?> beanClass);
@@ -85,7 +89,13 @@
          descriptionGroup.setDescriptions(descriptions);
          bean.setDescriptionGroup(descriptionGroup);
       }
-      
+
+      TransactionManagement txMgmt = finder.getAnnotation(beanClass, TransactionManagement.class);
+      TransactionManagementType txType = TransactionManagementType.CONTAINER;
+      if(txMgmt != null)
+         txType = txMgmt.value();
+      bean.setTransactionType(txType);
+
       processTopLevel(bean, beanClass);
       
       return bean;

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractTransactionAttributeProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractTransactionAttributeProcessor.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractTransactionAttributeProcessor.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -27,13 +27,12 @@
 import javax.ejb.TransactionAttribute;
 
 import org.jboss.metadata.annotation.creator.AbstractFinderUser;
-import org.jboss.metadata.annotation.creator.MethodParametersHelper;
+import org.jboss.metadata.annotation.creator.ProcessorUtils;
 import org.jboss.metadata.annotation.finder.AnnotationFinder;
 import org.jboss.metadata.common.ejb.IEjbJarMetaData;
 import org.jboss.metadata.ejb.spec.AssemblyDescriptorMetaData;
 import org.jboss.metadata.ejb.spec.ContainerTransactionMetaData;
 import org.jboss.metadata.ejb.spec.ContainerTransactionsMetaData;
-import org.jboss.metadata.ejb.spec.EjbJarMetaData;
 import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.spec.MethodMetaData;
 import org.jboss.metadata.ejb.spec.MethodParametersMetaData;
@@ -55,26 +54,10 @@
    
    protected abstract ContainerTransactionMetaData createContainerTransaction(String ejbName, TransactionAttribute annotation, E element);
    
-   private MethodMetaData createMethod(String ejbName, Method method)
-   {
-      MethodMetaData methodMetaData = new MethodMetaData();
-      methodMetaData.setEjbName(ejbName);
-      if(method == null)
-         methodMetaData.setMethodName("*");
-      else
-      {
-         methodMetaData.setMethodName(method.getName());
-         MethodParametersMetaData methodParameters = MethodParametersHelper.create(method);
-         if(methodParameters != null)
-            methodMetaData.setMethodParams(methodParameters);
-      }
-      return methodMetaData;
-   }
-   
    protected MethodsMetaData createMethods(String ejbName, Method method)
    {
       MethodsMetaData methods = new MethodsMetaData();
-      methods.add(createMethod(ejbName, method));
+      methods.add(ProcessorUtils.createMethod(ejbName, method));
       return methods;
    }
    

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/DenyAllProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/DenyAllProcessor.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/DenyAllProcessor.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -0,0 +1,74 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt 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.metadata.annotation.creator.ejb;
+
+import java.lang.reflect.AnnotatedElement;
+import java.lang.reflect.Method;
+
+import javax.annotation.security.DenyAll;
+
+import org.jboss.annotation.javaee.Descriptions;
+import org.jboss.metadata.annotation.creator.AbstractFinderUser;
+import org.jboss.metadata.annotation.creator.Processor;
+import org.jboss.metadata.annotation.creator.ProcessorUtils;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.ejb.spec.ExcludeListMetaData;
+import org.jboss.metadata.ejb.spec.MethodMetaData;
+import org.jboss.metadata.ejb.spec.MethodsMetaData;
+
+/**
+ * @DenyAll processor
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class DenyAllProcessor
+   extends AbstractFinderUser
+   implements Processor<ExcludeListMetaData, Method>
+{
+   public DenyAllProcessor(AnnotationFinder<AnnotatedElement> finder)
+   {
+      super(finder);
+   }
+
+   public void process(ExcludeListMetaData metaData, Method method)
+   {
+      DenyAll deny = finder.getAnnotation(method, DenyAll.class);
+      if(deny == null)
+         return;
+
+      MethodsMetaData methods = metaData.getMethods();
+      if(methods == null)
+      {
+         methods = new MethodsMetaData();
+         metaData.setMethods(methods);
+      }
+      String ejbName = EjbNameThreadLocal.ejbName.get();
+      if(ejbName == null)
+         ejbName = "*";
+      MethodMetaData mmd = ProcessorUtils.createMethod(ejbName, method);
+      Descriptions descriptions = ProcessorUtils.getDescription("@DenyAll for: "+method);
+      mmd.setDescriptions(descriptions);
+      methods.add(mmd);
+   }
+
+}


Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/DenyAllProcessor.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + native

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/EjbJar30Creator.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/EjbJar30Creator.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/EjbJar30Creator.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -51,6 +51,8 @@
       processors = new ArrayList<Processor<EjbJar3xMetaData,Class<?>>>();
       processors.add(new StatefulProcessor(finder));
       processors.add(new StatelessProcessor(finder));
+      processors.add(new MessageDrivenProcessor(finder));
+      processors.add(new EntityProcessor(finder));
       processors.add(new ApplicationExceptionProcessor(finder));
    }
    

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/EjbNameThreadLocal.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/EjbNameThreadLocal.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/EjbNameThreadLocal.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -0,0 +1,31 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt 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.metadata.annotation.creator.ejb;
+
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+class EjbNameThreadLocal
+{
+   static ThreadLocal<String> ejbName = new ThreadLocal<String>();
+}


Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/EjbNameThreadLocal.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + native

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/EntityProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/EntityProcessor.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/EntityProcessor.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -47,8 +47,6 @@
    public EntityProcessor(AnnotationFinder<AnnotatedElement> finder)
    {
       super(finder);
-      // TODO: all entity processors
-      
    }
 
    @Override

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/InitProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/InitProcessor.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/InitProcessor.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -28,8 +28,8 @@
 
 import org.jboss.metadata.annotation.creator.AbstractFinderUser;
 import org.jboss.metadata.annotation.creator.Creator;
-import org.jboss.metadata.annotation.creator.MethodParametersHelper;
 import org.jboss.metadata.annotation.creator.Processor;
+import org.jboss.metadata.annotation.creator.ProcessorUtils;
 import org.jboss.metadata.annotation.finder.AnnotationFinder;
 import org.jboss.metadata.ejb.spec.InitMethodMetaData;
 import org.jboss.metadata.ejb.spec.InitMethodsMetaData;
@@ -42,6 +42,7 @@
  * Process an init annotation.
  *
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
+ * @author Scott.Stark at jboss.org
  * @version $Revision: $
  */
 public class InitProcessor extends AbstractFinderUser implements Creator<Method, InitMethodMetaData>, Processor<SessionBeanMetaData, Method>
@@ -77,7 +78,7 @@
          createMethod.setMethodName(alternativeName);
       }
       
-      MethodParametersMetaData methodParams = MethodParametersHelper.create(method);
+      MethodParametersMetaData methodParams = ProcessorUtils.getMethodParameters(method);
       beanMethod.setMethodParams(methodParams);
       createMethod.setMethodParams(methodParams);
       

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/MessageDrivenProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/MessageDrivenProcessor.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/MessageDrivenProcessor.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -0,0 +1,88 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt 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.metadata.annotation.creator.ejb;
+
+import java.lang.reflect.AnnotatedElement;
+
+import javax.ejb.ActivationConfigProperty;
+import javax.ejb.MessageDriven;
+
+import org.jboss.metadata.annotation.creator.ProcessorUtils;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.ejb.spec.ActivationConfigMetaData;
+import org.jboss.metadata.ejb.spec.ActivationConfigPropertiesMetaData;
+import org.jboss.metadata.ejb.spec.ActivationConfigPropertyMetaData;
+import org.jboss.metadata.ejb.spec.MessageDrivenBeanMetaData;
+import org.jboss.metadata.javaee.spec.DescriptionGroupMetaData;
+
+/**
+ * @MessageDriven processor
+ *
+ * @author Scott.Stark at jboss.org
+ * @version $Revision: $
+ */
+public class MessageDrivenProcessor extends AbstractEnterpriseBeanProcessor<MessageDrivenBeanMetaData>
+{
+   public MessageDrivenProcessor(AnnotationFinder<AnnotatedElement> finder)
+   {
+      super(finder);
+      addMethodProcessor(new TimeoutProcessor(finder));
+   }
+
+   @Override
+   protected MessageDrivenBeanMetaData create(Class<?> beanClass)
+   {
+      MessageDriven annotation = finder.getAnnotation(beanClass, MessageDriven.class);
+      if(annotation == null)
+         return null;
+
+      MessageDrivenBeanMetaData metaData = new MessageDrivenBeanMetaData();
+      metaData.setEjbClass(beanClass.getName());
+      if(annotation.name().length() > 0)
+         metaData.setEjbName(annotation.name());
+      else
+         metaData.setEjbName(beanClass.getSimpleName());
+      if(annotation.description().length() > 0)
+      {
+         DescriptionGroupMetaData dg = ProcessorUtils.getDescriptionGroup(annotation.description());
+         metaData.setDescriptionGroup(dg);
+      }
+      if(annotation.mappedName().length() > 0)
+         metaData.setMappedName(annotation.mappedName());
+      if(annotation.messageListenerInterface() != Object.class)
+         metaData.setMessagingType(annotation.messageListenerInterface().getName());
+      ActivationConfigProperty[] props = annotation.activationConfig();
+      ActivationConfigMetaData config = new ActivationConfigMetaData();
+      ActivationConfigPropertiesMetaData configProps = new ActivationConfigPropertiesMetaData();
+      config.setActivationConfigProperties(configProps);
+      for(ActivationConfigProperty prop : props)
+      {
+         ActivationConfigPropertyMetaData acp = new ActivationConfigPropertyMetaData();
+         acp.setActivationConfigPropertyName(prop.propertyName());
+         acp.setValue(prop.propertyValue());
+         configProps.add(acp);
+      }
+      metaData.setActivationConfig(config);
+      return metaData;
+   }
+
+}


Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/MessageDrivenProcessor.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + native

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/RemoveProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/RemoveProcessor.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/RemoveProcessor.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -28,8 +28,8 @@
 
 import org.jboss.metadata.annotation.creator.AbstractFinderUser;
 import org.jboss.metadata.annotation.creator.Creator;
-import org.jboss.metadata.annotation.creator.MethodParametersHelper;
 import org.jboss.metadata.annotation.creator.Processor;
+import org.jboss.metadata.annotation.creator.ProcessorUtils;
 import org.jboss.metadata.annotation.finder.AnnotationFinder;
 import org.jboss.metadata.ejb.spec.RemoveMethodMetaData;
 import org.jboss.metadata.ejb.spec.RemoveMethodsMetaData;
@@ -65,7 +65,7 @@
       metaData.setBeanMethod(beanMethod);
       metaData.setRetainIfException(remove.retainIfException());
 
-      MethodParametersMetaData methodParams = MethodParametersHelper.create(method);
+      MethodParametersMetaData methodParams = ProcessorUtils.getMethodParameters(method);
       beanMethod.setMethodParams(methodParams);
       
       return metaData;

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/RolesAllowedProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/RolesAllowedProcessor.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/RolesAllowedProcessor.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -0,0 +1,79 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt 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.metadata.annotation.creator.ejb;
+
+import java.lang.reflect.AnnotatedElement;
+import java.lang.reflect.Method;
+
+import javax.annotation.security.RolesAllowed;
+
+import org.jboss.annotation.javaee.Descriptions;
+import org.jboss.metadata.annotation.creator.AbstractFinderUser;
+import org.jboss.metadata.annotation.creator.Processor;
+import org.jboss.metadata.annotation.creator.ProcessorUtils;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.ejb.spec.MethodPermissionsMetaData;
+import org.jboss.metadata.ejb.spec.MethodPermissionMetaData;
+import org.jboss.metadata.ejb.spec.MethodMetaData;
+import org.jboss.metadata.ejb.spec.MethodsMetaData;
+
+/**
+ * @RolesAllowed processor
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class RolesAllowedProcessor<T extends AnnotatedElement>
+   extends AbstractFinderUser
+   implements Processor<MethodPermissionsMetaData, T>
+{
+   public RolesAllowedProcessor(AnnotationFinder<AnnotatedElement> finder)
+   {
+      super(finder);
+   }
+
+   
+   public void process(MethodPermissionsMetaData metaData, T type)
+   {
+      RolesAllowed deny = finder.getAnnotation(type, RolesAllowed.class);
+      if(deny == null)
+         return;
+
+      Method method = null;
+      if(type instanceof Method)
+         method = (Method) type;
+
+      String ejbName = EjbNameThreadLocal.ejbName.get();
+      MethodMetaData mmd = ProcessorUtils.createMethod(ejbName, method);
+      MethodPermissionMetaData perm = new MethodPermissionMetaData();
+      MethodsMetaData methods = perm.getMethods();
+      if(methods == null)
+      {
+         methods = new MethodsMetaData();
+         perm.setMethods(methods);
+      }
+      Descriptions descriptions = ProcessorUtils.getDescription("@RolesAllowed for: "+type);
+      mmd.setDescriptions(descriptions);
+      methods.add(mmd);
+   }
+
+}


Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/RolesAllowedProcessor.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + native

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/TimeoutProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/TimeoutProcessor.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/TimeoutProcessor.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt 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.metadata.annotation.creator.ejb;
+
+import java.lang.reflect.AnnotatedElement;
+import java.lang.reflect.Method;
+
+import javax.ejb.Timeout;
+
+import org.jboss.metadata.annotation.creator.AbstractFinderUser;
+import org.jboss.metadata.annotation.creator.Processor;
+import org.jboss.metadata.annotation.creator.ProcessorUtils;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.common.ejb.ITimeoutTarget;
+import org.jboss.metadata.ejb.spec.NamedMethodMetaData;
+
+/**
+ * Process @Timeout annotation.
+ *
+ * @author Scott.Stark at jboss.org
+ * @version $Revision: $
+ */
+public class TimeoutProcessor extends AbstractFinderUser
+   implements Processor<ITimeoutTarget, Method>
+{
+   public TimeoutProcessor(AnnotationFinder<AnnotatedElement> finder)
+   {
+      super(finder);
+   }
+   
+   public void process(ITimeoutTarget bean, Method method)
+   {
+      Timeout timeout = finder.getAnnotation(method, Timeout.class);
+      if(timeout == null)
+         return;
+      
+      NamedMethodMetaData timeoutMethod = new NamedMethodMetaData();
+      timeoutMethod.setMethodName(method.getName());
+      timeoutMethod.setMethodParams(ProcessorUtils.getMethodParameters(method));
+      bean.setTimeoutMethod(timeoutMethod);
+   }
+}


Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/TimeoutProcessor.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + native

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/common/ejb/IEnterpriseBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/common/ejb/IEnterpriseBeanMetaData.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/common/ejb/IEnterpriseBeanMetaData.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -23,6 +23,7 @@
 
 import java.lang.reflect.Method;
 
+import javax.ejb.TransactionManagementType;
 import javax.xml.bind.annotation.XmlTransient;
 
 import org.jboss.metadata.ejb.spec.ContainerTransactionsMetaData;
@@ -32,7 +33,6 @@
 import org.jboss.metadata.ejb.spec.MethodPermissionsMetaData;
 import org.jboss.metadata.ejb.spec.SecurityIdentityMetaData;
 import org.jboss.metadata.ejb.spec.TransAttributeType;
-import org.jboss.metadata.ejb.spec.TransactionType;
 import org.jboss.metadata.javaee.spec.DescriptionGroupMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferencesMetaData;
@@ -76,7 +76,7 @@
    public boolean isSession();
    public boolean isMessageDriven();
    public boolean isEntity();
-   public TransactionType getTransactionType();
+   public TransactionManagementType getTransactionType();
    public boolean isCMT();
    public boolean isBMT();
    public String getMappedName();

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/common/ejb/ITimeoutTarget.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/common/ejb/ITimeoutTarget.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/common/ejb/ITimeoutTarget.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt 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.metadata.common.ejb;
+
+import org.jboss.metadata.ejb.spec.NamedMethodMetaData;
+
+/**
+ * A bean that can be a target of an ejb timer
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface ITimeoutTarget
+{
+   public NamedMethodMetaData getTimeoutMethod();
+   public void setTimeoutMethod(NamedMethodMetaData timeoutMethod);
+}


Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/common/ejb/ITimeoutTarget.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + native

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -27,8 +27,10 @@
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
+import javax.ejb.TransactionManagementType;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.jboss.metadata.common.ejb.IEnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.spec.ContainerTransactionMetaData;
@@ -45,11 +47,9 @@
 import org.jboss.metadata.ejb.spec.SecurityIdentityMetaData;
 import org.jboss.metadata.ejb.spec.SessionBeanMetaData;
 import org.jboss.metadata.ejb.spec.TransAttributeType;
-import org.jboss.metadata.ejb.spec.TransactionType;
 import org.jboss.metadata.javaee.jboss.AnnotationsMetaData;
 import org.jboss.metadata.javaee.jboss.IgnoreDependencyMetaData;
 import org.jboss.metadata.javaee.jboss.JndiRefsMetaData;
-import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
 import org.jboss.metadata.javaee.spec.AnnotatedEJBReferencesMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferencesMetaData;
@@ -73,6 +73,7 @@
 import org.jboss.metadata.javaee.spec.SecurityRoleRefsMetaData;
 import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
 import org.jboss.metadata.javaee.spec.ServiceReferencesMetaData;
+import org.jboss.metadata.javaee.spec.TransactionManagementTypeAdapter;
 import org.jboss.metadata.javaee.support.AbstractMappedMetaData;
 import org.jboss.metadata.javaee.support.NamedMetaData;
 import org.jboss.metadata.javaee.support.NamedMetaDataWithDescriptionGroup;
@@ -172,7 +173,7 @@
    /** The transaction type cache */
    private transient ConcurrentHashMap<Method, TransAttributeType> methodTx; 
    /** The transaction type */
-   private TransactionType transactionType;
+   private TransactionManagementType transactionType;
 
    /**
     * Create the correct JBossEnterpriseBeanMetaData for the input
@@ -494,11 +495,11 @@
    @XmlTransient
    public boolean isCMT()
    {
-      TransactionType type = getTransactionType();
+      TransactionManagementType type = getTransactionType();
       if (type == null)
          return true;
       else
-         return type == TransactionType.Container;
+         return type == TransactionManagementType.CONTAINER;
    }
 
    /**
@@ -512,12 +513,13 @@
       return isCMT() == false;
    }
 
-   public TransactionType getTransactionType()
+   public TransactionManagementType getTransactionType()
    {
       return transactionType;
    }
 
-   public void setTransactionType(TransactionType transactionType)
+   @XmlJavaTypeAdapter(TransactionManagementTypeAdapter.class)
+   public void setTransactionType(TransactionManagementType transactionType)
    {
       this.transactionType = transactionType;
    }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/proxy/JBossEnterpriseBeansMetaDataProxy.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/proxy/JBossEnterpriseBeansMetaDataProxy.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/proxy/JBossEnterpriseBeansMetaDataProxy.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -43,19 +43,17 @@
 
    private JBossMetaData jbossMetaData;
    private JBossEnterpriseBeansMetaData delegate;
-   private MetaDataRepository repository;
-   private ScopeKey jarKey;
-
+   private MetaData metaData;
+   
    JBossEnterpriseBeansMetaDataProxy(JBossMetaData jbossMetaData,
          JBossEnterpriseBeansMetaData delegate,
-         MetaDataRepository repository, ScopeKey jarKey)
+         MetaData metaData)
    {
       this.jbossMetaData = jbossMetaData;
       this.delegate = delegate;
       if(this.delegate == null)
          this.delegate = new JBossEnterpriseBeansMetaData();
-      this.repository = repository;
-      this.jarKey = jarKey;
+      this.metaData = metaData;
    }
 
    public boolean contains(Object o)
@@ -76,7 +74,6 @@
       if(bean == null)
       {
          // Check the repository for spec generated metadata
-         MetaData metaData = repository.getMetaData(jarKey);
          EjbJarMetaData jarMD = metaData.getMetaData(EjbJarMetaData.class);
          if(jarMD != null)
          {

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/proxy/JBossMetaDataProxy.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/proxy/JBossMetaDataProxy.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/proxy/JBossMetaDataProxy.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -36,10 +36,14 @@
 import org.jboss.metadata.ejb.spec.InterceptorsMetaData;
 import org.jboss.metadata.ejb.spec.RelationsMetaData;
 import org.jboss.metadata.javaee.spec.DescriptionGroupMetaData;
+import org.jboss.metadata.spi.MetaData;
 import org.jboss.metadata.spi.repository.MetaDataRepository;
 import org.jboss.metadata.spi.scope.ScopeKey;
 
 /**
+ * A JBossMetaData proxy that combines a JBossMetaData instance with a
+ * MetaDataRepository 
+ * 
  * @author Scott.Stark at jboss.org
  * @version $Revision$
  */
@@ -48,17 +52,14 @@
    private static final long serialVersionUID = 1;
 
    private JBossMetaData delegate;
-   private MetaDataRepository repository;
+   private MetaData metaData;
    private JBossEnterpriseBeansMetaDataProxy beans;
-   private ScopeKey jarKey;
 
-   public JBossMetaDataProxy(JBossMetaData delegate, MetaDataRepository repository,
-         ScopeKey jarKey)
+   public JBossMetaDataProxy(JBossMetaData delegate, MetaData metaData)
    {
       this.delegate = delegate;
-      this.repository = repository;
       beans = new JBossEnterpriseBeansMetaDataProxy(this,
-            delegate.getEnterpriseBeans(), repository, jarKey);
+            delegate.getEnterpriseBeans(), metaData);
    }
 
    public JBossAssemblyDescriptorMetaData getAssemblyDescriptor()

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/AnnotationMergedView.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/AnnotationMergedView.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/AnnotationMergedView.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -0,0 +1,156 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt 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.metadata.ejb.spec;
+
+import java.util.HashMap;
+import java.util.HashSet;
+
+/**
+ * Create a merged EjbJarMetaData view from an xml + annotation views
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class AnnotationMergedView
+{
+   public static void merge(EjbJarMetaData merged, EjbJarMetaData xml, EjbJarMetaData annotation)
+   {
+      // EnterpriseBeansMetaData first
+      EnterpriseBeansMetaData enterpriseBeans = new EnterpriseBeansMetaData();
+      merge(enterpriseBeans, xml.getEnterpriseBeans(), annotation.getEnterpriseBeans());
+      merged.setEnterpriseBeans(enterpriseBeans);
+      // AssemblyDescriptorMetaData
+      AssemblyDescriptorMetaData assemblyDescriptor = new AssemblyDescriptorMetaData();
+      merge(assemblyDescriptor, xml.getAssemblyDescriptor(), annotation.getAssemblyDescriptor());
+      merged.setAssemblyDescriptor(assemblyDescriptor);
+      // Description
+      if(xml.getDescriptionGroup() != null)
+         merged.setDescriptionGroup(xml.getDescriptionGroup());
+      // DTD info
+      merged.setDTD(null, xml.getDtdPublicId(), xml.getDtdSystemId());
+      // Ejb client jar
+      if(xml.getEjbClientJar() != null)
+         merged.setEjbClientJar(xml.getEjbClientJar());
+      // ID
+      if(xml.getId() != null)
+         merged.setId(xml.getId());
+      // RelationsMetaData
+      if(xml.getRelationships() != null)
+         merged.setRelationships(xml.getRelationships());
+      // Version
+      if(xml.getVersion() != null)
+         merged.setVersion(xml.getVersion());
+   }
+
+   private static void merge(AssemblyDescriptorMetaData merged,
+         AssemblyDescriptorMetaData xml, AssemblyDescriptorMetaData annotation)
+   {
+      merged.merge(xml, annotation);
+   }
+
+   /**
+    * 
+    * @param merged
+    * @param xml
+    * @param annotation
+    */
+   private static void merge(EnterpriseBeansMetaData merged,
+         EnterpriseBeansMetaData xml, EnterpriseBeansMetaData annotation)
+   {
+      //
+      HashMap<String, String> ejbClassToName = new HashMap<String, String>();
+      if(xml != null)
+      {
+         for(EnterpriseBeanMetaData bean : xml)
+         {
+            String className = bean.getEjbClass();
+            if(className != null)
+            {
+               // Use the unqualified name
+               int dot = className.lastIndexOf('.');
+               if(dot >= 0)
+                  className = className.substring(dot+1);
+               ejbClassToName.put(className, bean.getEjbName());
+            }
+         }         
+      }
+      // First get the annotation beans without an xml entry
+      HashSet<String> names = new HashSet<String>();
+      if(annotation != null)
+      {
+         for(EnterpriseBeanMetaData bean : annotation)
+         {
+            // This is either the ejb-name or the ejb-class simple name
+            EnterpriseBeanMetaData match = null;
+            if(xml != null)
+            {
+               String ejbName = bean.getEjbName();
+               match = xml.get(ejbName);
+               if(match == null)
+               {
+                  // Lookup by the unqualified ejb class
+                  String name = ejbClassToName.get(ejbName);
+                  if(name == null)
+                  {
+                     names.add(ejbName);
+                     merged.add(bean);
+                  }
+               }
+            }
+         }
+      }
+      // Now merge the xml and annotations
+      if(xml != null)
+      {
+         for(EnterpriseBeanMetaData bean : xml)
+         {
+            EnterpriseBeanMetaData annBean = null;
+            if(annotation != null)
+            {
+               String name = bean.getEjbName();
+               annBean = annotation.get(name);
+               if(annBean == null)
+               {
+                  // Lookup by the unqualified ejb class
+                  String className = bean.getEjbClass();
+                  if(className != null)
+                  {
+                     // Use the unqualified name
+                     int dot = className.lastIndexOf('.');
+                     if(dot >= 0)
+                        className = className.substring(dot+1);
+                     annBean = annotation.get(className);
+                  }
+               }
+            }
+            // Merge
+            EnterpriseBeanMetaData mbean = bean;
+            if(annBean != null)
+            {
+               mbean = EnterpriseBeanMetaData.newBean(bean);
+               mbean.merge(bean, annBean);
+            }
+            merged.add(mbean);
+         }
+      }
+   }
+}


Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/AnnotationMergedView.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + native

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeanMetaData.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeanMetaData.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -24,6 +24,7 @@
 import java.lang.reflect.Method;
 import java.util.concurrent.ConcurrentHashMap;
 
+import javax.ejb.TransactionManagementType;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlTransient;
 
@@ -97,6 +98,25 @@
    private transient ConcurrentHashMap<Method, TransAttributeType> methodTx; 
    
    /**
+    * Create the correct EnterpriseBeanMetaData for the input
+    * standard bean metadata.
+    * 
+    * @param bean the standard bean metadata
+    * @return the corresponding metadata
+    */
+   public static EnterpriseBeanMetaData newBean(EnterpriseBeanMetaData bean)
+   {
+      EnterpriseBeanMetaData nbean = null;
+      if(bean instanceof EntityBeanMetaData)
+         nbean = new EntityBeanMetaData();
+      if(bean instanceof MessageDrivenBeanMetaData)
+         nbean = new MessageDrivenBeanMetaData();
+      if(bean instanceof SessionBeanMetaData)
+         nbean = new SessionBeanMetaData();
+      return nbean;
+   }
+
+   /**
     * Create a new EnterpriseBeanMetaData.
     */
    public EnterpriseBeanMetaData()
@@ -203,9 +223,9 @@
     * 
     * @return the transactionType.
     */
-   public TransactionType getTransactionType()
+   public TransactionManagementType getTransactionType()
    {
-      return TransactionType.Container;
+      return TransactionManagementType.CONTAINER;
    }
 
    /**
@@ -215,11 +235,11 @@
     */
    public boolean isCMT()
    {
-      TransactionType type = getTransactionType();
+      TransactionManagementType type = getTransactionType();
       if (type == null)
          return true;
       else
-         return type == TransactionType.Container;
+         return type == TransactionManagementType.CONTAINER;
    }
 
    /**
@@ -576,4 +596,31 @@
          return null;
       return assemblyDescriptor.getExcludeListByEjbName(getEjbName()); 
    }
+
+   /**
+    * Merge two EnterpriseBeanMetaDatas
+    * @param override
+    * @param original
+    */
+   public void merge(EnterpriseBeanMetaData override, EnterpriseBeanMetaData original)
+   {
+      super.merge(override, original);
+      if(override != null && override.mappedName != null)
+         setMappedName(override.mappedName);
+      else if(original != null && original.mappedName != null)
+         setMappedName(original.mappedName);
+      if(override != null && override.ejbClass != null)
+         setEjbClass(override.ejbClass);
+      else if(original != null && original.ejbClass != null)
+         setEjbClass(original.ejbClass);
+      if(jndiEnvironmentRefsGroup == null)
+         jndiEnvironmentRefsGroup = new EnvironmentRefsGroupMetaData();
+      Environment env1 = override != null ? override.getJndiEnvironmentRefsGroup() : null;
+      Environment env2 = original != null ? original.getJndiEnvironmentRefsGroup() : null;
+      jndiEnvironmentRefsGroup.merge(env1, env2, "", "", false);
+      if(override != null && override.securityIdentity != null)
+         setSecurityIdentity(override.securityIdentity);
+      else if(original != null && original.securityIdentity != null)
+         setSecurityIdentity(original.securityIdentity);
+   }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/MessageDrivenBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/MessageDrivenBeanMetaData.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/MessageDrivenBeanMetaData.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -22,9 +22,14 @@
 package org.jboss.metadata.ejb.spec;
 
 
+import javax.ejb.TransactionManagementType;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
+import org.jboss.metadata.common.ejb.ITimeoutTarget;
+import org.jboss.metadata.javaee.spec.TransactionManagementTypeAdapter;
+
 /**
  * MessageDrivenBeanMetaData.
  * 
@@ -33,6 +38,7 @@
  */
 @XmlType(name="message-driven-beanType")
 public class MessageDrivenBeanMetaData extends EnterpriseBeanMetaData
+   implements ITimeoutTarget
 {
    /** The serialVersionUID */
    private static final long serialVersionUID = -7353017099819838715L;
@@ -44,7 +50,7 @@
    private NamedMethodMetaData timeoutMethod;
 
    /** The transaction type */
-   private TransactionType transactionType;
+   private TransactionManagementType transactionType;
    
    /** The message destination type */
    private String messageDestinationType;
@@ -145,7 +151,7 @@
 
 
    @Override
-   public TransactionType getTransactionType()
+   public TransactionManagementType getTransactionType()
    {
       return transactionType;
    }
@@ -157,7 +163,8 @@
     * @param transactionType the transactionType.
     * @throws IllegalArgumentException for a null transactionType
     */
-   public void setTransactionType(TransactionType transactionType)
+   @XmlJavaTypeAdapter(TransactionManagementTypeAdapter.class)
+   public void setTransactionType(TransactionManagementType transactionType)
    {
       if (transactionType == null)
          throw new IllegalArgumentException("Null transactionType");

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/SessionBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/SessionBeanMetaData.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/SessionBeanMetaData.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -21,10 +21,15 @@
 */
 package org.jboss.metadata.ejb.spec;
 
+import org.jboss.metadata.common.ejb.ITimeoutTarget;
 import org.jboss.metadata.javaee.spec.LifecycleCallbacksMetaData;
 import org.jboss.metadata.javaee.spec.SecurityRoleRefsMetaData;
+import org.jboss.metadata.javaee.spec.TransactionManagementTypeAdapter;
+
+import javax.ejb.TransactionManagementType;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 /**
  * SessionBeanMetaData.
@@ -34,6 +39,7 @@
  */
 @XmlType(name="session-beanType")
 public class SessionBeanMetaData extends EnterpriseBeanMetaData
+   implements ITimeoutTarget
 {
    /** The serialVersionUID */
    private static final long serialVersionUID = 2093953120735574157L;
@@ -72,7 +78,7 @@
    private RemoveMethodsMetaData removeMethods;
    
    /** The transaction type */
-   private TransactionType transactionType;
+   private TransactionManagementType transactionType;
    
    /** The around invoke */
    private AroundInvokesMetaData aroundInvokes;
@@ -329,6 +335,8 @@
    {
       if (timeoutMethod == null)
          throw new IllegalArgumentException("Null timeoutMethod");
+      if (getSessionType() != null && getSessionType() != SessionType.Stateless)
+         throw new IllegalStateException("Only statless beans can have timeouts: "+this);
       this.timeoutMethod = timeoutMethod;
    }
 
@@ -381,7 +389,7 @@
    }
 
    @Override
-   public TransactionType getTransactionType()
+   public TransactionManagementType getTransactionType()
    {
       return transactionType;
    }
@@ -392,7 +400,8 @@
     * @param transactionType the transactionType.
     * @throws IllegalArgumentException for a null transactionType
     */
-   public void setTransactionType(TransactionType transactionType)
+   @XmlJavaTypeAdapter(TransactionManagementTypeAdapter.class)
+   public void setTransactionType(TransactionManagementType transactionType)
    {
       if (transactionType == null)
          throw new IllegalArgumentException("Null transactionType");
@@ -494,4 +503,92 @@
          throw new IllegalArgumentException("Null securityRoleRefs");
       this.securityRoleRefs = securityRoleRefs;
    }
+
+   @Override
+   public void merge(EnterpriseBeanMetaData eoverride, EnterpriseBeanMetaData eoriginal)
+   {
+      super.merge(eoverride, eoriginal);
+      SessionBeanMetaData override = (SessionBeanMetaData) eoverride;
+      SessionBeanMetaData original = (SessionBeanMetaData) eoriginal;
+      if(override != null && override.home != null)
+         setHome(override.home);
+      else if(original != null && original.home != null)
+         setHome(original.home);
+      if(override != null && override.remote != null)
+         setRemote(override.remote);
+      else if(original != null && original.remote != null)
+         setRemote(original.remote);
+      if(override != null && override.localHome != null)
+         setLocalHome(override.localHome);
+      else if(original != null && original.localHome != null)
+         setLocalHome(original.localHome);
+      if(override != null && override.local != null)
+         setLocal(override.local);
+      else if(original != null && original.local != null)
+         setLocal(original.local);
+      if(businessLocals == null)
+         businessLocals = new BusinessLocalsMetaData();
+      if(override != null && override.businessLocals != null)
+         businessLocals.addAll(override.businessLocals);
+      if(original != null && original.businessLocals != null)
+         businessLocals.addAll(original.businessLocals);
+      if(businessRemotes == null)
+         businessRemotes = new BusinessRemotesMetaData();
+      if(override != null && override.businessRemotes != null)
+         businessRemotes.addAll(override.businessRemotes);
+      if(original != null && original.businessRemotes != null)
+         businessRemotes.addAll(original.businessRemotes);
+      if(override != null && override.serviceEndpoint != null)
+         setServiceEndpoint(override.serviceEndpoint);
+      else if(original != null && original.serviceEndpoint != null)
+         setServiceEndpoint(original.serviceEndpoint);
+      if(override != null && override.sessionType != null)
+         setSessionType(override.sessionType);
+      else if(original != null && original.sessionType != null)
+         setSessionType(original.sessionType);
+      if(override != null && override.timeoutMethod != null)
+         setTimeoutMethod(override.timeoutMethod);
+      else if(original != null && original.timeoutMethod != null)
+         setTimeoutMethod(original.timeoutMethod);
+      if(initMethods == null)
+         initMethods = new InitMethodsMetaData();
+      if(override != null && override.initMethods != null)
+         initMethods.addAll(override.initMethods);
+      if(original != null && original.initMethods != null)
+         initMethods.addAll(original.initMethods);
+      if(removeMethods == null)
+         removeMethods = new RemoveMethodsMetaData();
+      if(override != null && override.removeMethods != null)
+         removeMethods.addAll(override.removeMethods);
+      if(original != null && original.removeMethods != null)
+         removeMethods.addAll(original.removeMethods);
+      if(override != null && override.transactionType != null)
+         setTransactionType(override.transactionType);
+      else if(original != null && original.transactionType != null)
+         setTransactionType(original.transactionType);
+      if(aroundInvokes == null)
+         aroundInvokes = new AroundInvokesMetaData();
+      if(override != null && override.aroundInvokes != null)
+         aroundInvokes.addAll(override.aroundInvokes);
+      if(original != null && original.aroundInvokes != null)
+         aroundInvokes.addAll(original.aroundInvokes);
+      if(postActivates == null)
+         postActivates = new LifecycleCallbacksMetaData();
+      if(override != null && override.postActivates != null)
+         postActivates.addAll(override.postActivates);
+      if(original != null && original.postActivates != null)
+         postActivates.addAll(original.postActivates);
+      if(prePassivates == null)
+         prePassivates = new LifecycleCallbacksMetaData();
+      if(override != null && override.prePassivates != null)
+         prePassivates.addAll(override.prePassivates);
+      if(original != null && original.prePassivates != null)
+         prePassivates.addAll(original.prePassivates);
+      if(securityRoleRefs == null)
+         securityRoleRefs = new SecurityRoleRefsMetaData();
+      if(override != null && override.securityRoleRefs != null)
+         securityRoleRefs.addAll(override.securityRoleRefs);
+      if(original != null && original.securityRoleRefs != null)
+         securityRoleRefs.addAll(original.securityRoleRefs);
+   }
 }

Deleted: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/TransactionType.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/TransactionType.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/TransactionType.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -1,40 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt 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.metadata.ejb.spec;
-
-import javax.xml.bind.annotation.XmlType;
-
-/**
- * TransactionType.
- * 
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
- at XmlType(name="transaction-typeType")
-public enum TransactionType
-{
-   /** CMT */
-   Container,
-   
-   /** BMT */
-   Bean,
-}

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/TransactionManagementTypeAdapter.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/TransactionManagementTypeAdapter.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/TransactionManagementTypeAdapter.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt 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.metadata.javaee.spec;
+
+import javax.ejb.TransactionManagementType;
+import javax.xml.bind.annotation.adapters.XmlAdapter;
+
+/**
+ * TransactionManagementType enum type adapter
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class TransactionManagementTypeAdapter
+   extends XmlAdapter<String, TransactionManagementType>
+{
+
+   @Override
+   public String marshal(TransactionManagementType type) throws Exception
+   {
+      String stype = null;
+      switch(type)
+      {
+         case BEAN:
+            stype = "Bean";
+         break;
+         case CONTAINER:
+            stype = "Container";
+         break;
+      }
+      return stype;
+   }
+
+   @Override
+   public TransactionManagementType unmarshal(String string) throws Exception
+   {
+      string = string.toUpperCase();
+      return TransactionManagementType.valueOf(string);
+   }
+
+}


Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/TransactionManagementTypeAdapter.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + native

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -30,14 +30,22 @@
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.List;
 
 import org.jboss.metadata.annotation.creator.ejb.EjbJar30Creator;
 import org.jboss.metadata.annotation.finder.AnnotationFinder;
 import org.jboss.metadata.annotation.finder.DefaultAnnotationFinder;
 import org.jboss.metadata.common.ejb.IEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData;
+import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
+import org.jboss.metadata.ejb.spec.AnnotationMergedView;
 import org.jboss.metadata.ejb.spec.AssemblyDescriptorMetaData;
 import org.jboss.metadata.ejb.spec.ContainerTransactionMetaData;
+import org.jboss.metadata.ejb.spec.EjbJar20MetaData;
+import org.jboss.metadata.ejb.spec.EjbJar21MetaData;
 import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
+import org.jboss.metadata.ejb.spec.EjbJarMetaData;
+import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.spec.InitMethodMetaData;
 import org.jboss.metadata.ejb.spec.InitMethodsMetaData;
 import org.jboss.metadata.ejb.spec.MethodsMetaData;
@@ -54,7 +62,10 @@
 import org.jboss.metadata.javaee.spec.RunAsMetaData;
 import org.jboss.metadata.javaee.spec.SecurityRoleMetaData;
 import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
-import org.jboss.test.BaseTestCase; 
+import org.jboss.test.metadata.annotation.ejb3.runas.InterMediate;
+import org.jboss.test.metadata.javaee.AbstractJavaEEMetaDataTest;
+import org.jboss.xb.binding.sunday.unmarshalling.DefaultSchemaResolver;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
 
 /**
  * This tests the annotation translation framework.
@@ -63,8 +74,26 @@
  * @author Scott.Stark at jboss.org 
  * @version $Revision$
  */
-public class AnnotationEjb3UnitTestCase extends BaseTestCase
+public class AnnotationEjb3UnitTestCase extends AbstractJavaEEMetaDataTest
 { 
+   public static SchemaBindingResolver initResolver()
+   {
+      DefaultSchemaResolver resolver = new DefaultSchemaResolver();
+      
+      resolver.addClassBindingForLocation("ejb-jar_2_0.dtd", EjbJar20MetaData.class);
+      resolver.addClassBindingForLocation("ejb-jar_2_1.xsd", EjbJar21MetaData.class);
+      resolver.addClassBindingForLocation("ejb-jar_3_0.xsd", EjbJar30MetaData.class);
+      resolver.addClassBindingForLocation("jboss_3_0.dtd", JBoss50DTDMetaData.class);
+      resolver.addClassBindingForLocation("jboss_3_2.dtd", JBoss50DTDMetaData.class);
+      resolver.addClassBindingForLocation("jboss_4_0.dtd", JBoss50DTDMetaData.class);
+      resolver.addClassBindingForLocation("jboss_4_2.dtd", JBoss50DTDMetaData.class);
+      resolver.addClassBindingForLocation("jboss_5_0.dtd", JBoss50DTDMetaData.class);
+      resolver.addClassBindingForLocation("jboss_5_0.xsd", JBoss50MetaData.class);
+      // Workaround wildard resolution slowness
+      resolver.addClassBinding("http://www.jboss.com/xml/ns/javaee", JBoss50MetaData.class);
+      return resolver;
+   }
+
    /**
     * @param name
     */
@@ -279,7 +308,7 @@
          System.out.println(transaction);
       }
       
-      assertEquals(4, metaData.getEnterpriseBeans().size());
+      assertEquals(5, metaData.getEnterpriseBeans().size());
       
       assertMyStatefulBean(metaData.getEnterpriseBean("AnotherName"));
       assertMyStateless21Bean(metaData.getEnterpriseBean("MyStateless21Bean"));
@@ -301,4 +330,36 @@
       assertNotNull(role2);
       assertEquals("Role2", role2.getRoleName());
    }
-}
\ No newline at end of file
+
+   /**
+    * Test merging annotation and xml based metadata
+    * @throws Exception
+    */
+   public void testXmlMerge()
+      throws Exception
+   {
+      Class[] beanClasses = {
+            InterMediate.class
+      };
+      List<Class> classes = Arrays.asList(beanClasses);
+      AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
+      EjbJar30Creator creator = new EjbJar30Creator(finder);
+      EjbJar30MetaData metaData = creator.create(classes);
+      EjbJarMetaData specMetaData = unmarshal(EjbJarMetaData.class);
+      EjbJarMetaData merged = new EjbJar30MetaData();
+      AnnotationMergedView.merge(merged, specMetaData, metaData);
+
+      // Validate the merged InterMediateBean
+      EnterpriseBeanMetaData InterMediateBean = merged.getEnterpriseBean("InterMediateBean");
+      assertNotNull(InterMediateBean);
+      assertEquals("org.jboss.test.metadata.annotation.ejb3.runas.InterMediate", InterMediateBean.getEjbClass());
+      assertTrue(InterMediateBean instanceof SessionBeanMetaData);
+      SessionBeanMetaData sInterMediateBean = (SessionBeanMetaData) InterMediateBean;
+      assertEquals(SessionType.Stateless, sInterMediateBean.getSessionType());
+      SecurityIdentityMetaData identity = sInterMediateBean.getSecurityIdentity();
+      assertNotNull(identity);
+      RunAsMetaData runAs = identity.getRunAs();
+      assertNotNull(runAs);
+      assertEquals("InternalUser", runAs.getRoleName());
+   }
+}

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/repository/MetaDataRepositoryUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/repository/MetaDataRepositoryUnitTestCase.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/repository/MetaDataRepositoryUnitTestCase.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -55,15 +55,15 @@
 import org.jboss.metadata.spi.MetaData;
 import org.jboss.metadata.spi.scope.CommonLevels;
 import org.jboss.metadata.spi.scope.ScopeKey;
-import org.jboss.test.BaseTestCase;
 import org.jboss.test.metadata.annotation.ejb3.MyStatelessLocal;
+import org.jboss.test.metadata.javaee.AbstractJavaEEMetaDataTest;
 
 /**
  * Tests of annotation/metadata interaction via the MetaDataRepository
  * @author Scott.Stark at jboss.org
  * @version $Revision$
  */
-public class MetaDataRepositoryUnitTestCase extends BaseTestCase
+public class MetaDataRepositoryUnitTestCase extends AbstractJavaEEMetaDataTest
 {
    private static BasicMetaDataRepository repository = new BasicMetaDataRepository();
 
@@ -103,7 +103,7 @@
       AnnotatedEJBReferencesMetaData aejbRefs = sbeanMD.getAnnotatedEjbReferences();
       assertNotNull(aejbRefs);
       assertEquals(2, aejbRefs.size());
-      log.debug(aejbRefs);
+      getLog().debug(aejbRefs);
       AnnotatedEJBReferenceMetaData injectedField = aejbRefs.get("injectedField");
       assertNotNull(injectedField);
       assertEquals(MyStatelessLocal.class, injectedField.getBeanInterface());
@@ -166,11 +166,10 @@
             Class.forName("org.jboss.test.metadata.annotation.ejb3.MyStatefulBean")
       };
       List<Class> classes = Arrays.asList(beanClasses);
-      createMetaDataFromAnnotations("ejb0.jar", classes);
+      MetaData scopeMetaData = createMetaDataFromAnnotations("ejb0.jar", classes);
 
-      ScopeKey jarKey = new ScopeKey(CommonLevels.DEPLOYMENT, "ejb0.jar");
       JBossMetaData xmlMetaData = new JBossMetaData();
-      JBossMetaDataProxy proxy = new JBossMetaDataProxy(xmlMetaData, repository, jarKey);
+      JBossMetaDataProxy proxy = new JBossMetaDataProxy(xmlMetaData, scopeMetaData);
       JBossEnterpriseBeanMetaData beanMD = proxy.getEnterpriseBean("MyStatelessBean");
       assertNotNull(beanMD);
       assertEquals(true, beanMD.isSession());
@@ -179,7 +178,7 @@
       assertEquals(SessionType.Stateless, sbeanMD.getSessionType());
    }
 
-   protected void createMetaDataFromAnnotations(String jarName, Collection<Class> classes)
+   protected MetaData createMetaDataFromAnnotations(String jarName, Collection<Class> classes)
    {
       ScopeKey jarKey = new ScopeKey(CommonLevels.DEPLOYMENT, jarName);
       MemoryMetaDataLoader loader = new MemoryMetaDataLoader(jarKey);
@@ -190,5 +189,7 @@
       EjbJar30MetaData metaData = creator.create(classes);
       loader.addMetaData(metaData, EjbJarMetaData.class);
       repository.addMetaDataRetrieval(loader);      
+      MetaData keyMetaData = repository.getMetaData(jarKey);
+      return keyMetaData;
    }
 }

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/AbstractEJBEverythingTest.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/AbstractEJBEverythingTest.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/AbstractEJBEverythingTest.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -27,6 +27,8 @@
 import java.util.Set;
 import java.util.Map.Entry;
 
+import javax.ejb.TransactionManagementType;
+
 import junit.framework.AssertionFailedError;
 
 import org.jboss.metadata.ApplicationMetaData;
@@ -76,7 +78,6 @@
 import org.jboss.metadata.ejb.spec.SessionBeanMetaData;
 import org.jboss.metadata.ejb.spec.SessionType;
 import org.jboss.metadata.ejb.spec.TransAttributeType;
-import org.jboss.metadata.ejb.spec.TransactionType;
 import org.jboss.metadata.javaee.jboss.IgnoreDependencyMetaData;
 import org.jboss.metadata.javaee.spec.PortComponent;
 import org.jboss.metadata.javaee.spec.RunAsMetaData;
@@ -112,7 +113,7 @@
       SessionBeanMetaData session = assertSession("session3EjbName", enterpriseBeansMetaData);
       assertEquals(SessionType.Stateful, session.getSessionType());
       session = assertSession("session4EjbName", enterpriseBeansMetaData);
-      assertEquals(TransactionType.Bean, session.getTransactionType());
+      assertEquals(TransactionManagementType.BEAN, session.getTransactionType());
       session = assertSession("session5EjbName", enterpriseBeansMetaData);
       SecurityIdentityMetaData securityIdentityMetaData = session.getSecurityIdentity();
       assertNotNull(securityIdentityMetaData);
@@ -194,7 +195,7 @@
       SessionBeanMetaData session = assertSession(ejbName + "EjbName", enterpriseBeansMetaData);
       assertEquals(ejbName+"EjbClass", session.getEjbClass());
       assertEquals(SessionType.Stateless, session.getSessionType());
-      assertEquals(TransactionType.Container, session.getTransactionType());
+      assertEquals(TransactionManagementType.CONTAINER, session.getTransactionType());
       assertNotNull(session.getSecurityIdentity().getUseCallerIdentity());
       assertTrue(session.getSecurityIdentity().isUseCallerId());
 
@@ -468,7 +469,7 @@
    {
       MessageDrivenBeanMetaData mdb = assertMDB(ejbName + "EjbName", enterpriseBeansMetaData);
       assertEquals(ejbName+"EjbClass", mdb.getEjbClass());
-      assertEquals(TransactionType.Container, mdb.getTransactionType());
+      assertEquals(TransactionManagementType.CONTAINER, mdb.getTransactionType());
       assertNull(mdb.getActivationConfig());
       assertNull(mdb.getMessagingType());
       assertNull(mdb.getId());

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar21EverythingUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar21EverythingUnitTestCase.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar21EverythingUnitTestCase.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -21,6 +21,8 @@
 */
 package org.jboss.test.metadata.ejb;
 
+import javax.ejb.TransactionManagementType;
+
 import junit.framework.Test;
 
 import org.jboss.metadata.ApplicationMetaData;
@@ -41,7 +43,6 @@
 import org.jboss.metadata.ejb.spec.ResultTypeMapping;
 import org.jboss.metadata.ejb.spec.SessionBeanMetaData;
 import org.jboss.metadata.ejb.spec.SessionType;
-import org.jboss.metadata.ejb.spec.TransactionType;
 import org.jboss.metadata.javaee.spec.LifecycleCallbacksMetaData;
 import org.jboss.metadata.javaee.spec.PersistenceContextReferencesMetaData;
 import org.jboss.metadata.javaee.spec.PersistenceUnitReferencesMetaData;
@@ -153,7 +154,7 @@
       assertClass(ejbName, "ServiceEndpoint", session.getServiceEndpoint());
       assertClass(ejbName, "EjbClass", session.getEjbClass());
       assertEquals(SessionType.Stateless, session.getSessionType());
-      assertEquals(TransactionType.Container, session.getTransactionType());
+      assertEquals(TransactionManagementType.CONTAINER, session.getTransactionType());
       assertEnvironment(ejbName, session.getJndiEnvironmentRefsGroup(), true, mode);
       assertContainerTransactions(ejbName, 6, 6, session.getContainerTransactions());
       assertMethodPermissions(ejbName, ejbName + "MethodPermission", 3, 3, session.getMethodPermissions());
@@ -171,7 +172,7 @@
       assertClass(ejbName, "ServiceEndpoint", session.getServiceEndpoint());
       assertClass(ejbName, "EjbClass", session.getEjbClass());
       assertEquals(SessionType.Stateless, session.getSessionType());
-      assertEquals(TransactionType.Container, session.getTransactionType());
+      assertEquals(TransactionManagementType.CONTAINER, session.getTransactionType());
       assertEnvironment(ejbName, session.getJndiEnvironmentRefsGroup(), true, mode);
       assertContainerTransactions(ejbName, 6, 6, session.getContainerTransactions());
       assertMethodPermissions(ejbName, ejbName + "MethodPermission", 3, 3, session.getMethodPermissions());
@@ -259,7 +260,7 @@
       MessageDrivenBeanMetaData mdb = assertMDB(ejbName + "EjbName", enterpriseBeansMetaData);
       assertId(ejbName, mdb);
       assertEquals(ejbName + "MessagingType", mdb.getMessagingType());
-      assertEquals(TransactionType.Container, mdb.getTransactionType());
+      assertEquals(TransactionManagementType.CONTAINER, mdb.getTransactionType());
       assertEquals(ejbName + "MessageDestinationType", mdb.getMessageDestinationType());
       assertEquals(ejbName + "MessageDestinationLink", mdb.getMessageDestinationLink());
       assertActivationConfig(ejbName, mdb.getActivationConfig());

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar3xEverythingUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar3xEverythingUnitTestCase.java	2007-11-19 23:10:26 UTC (rev 67274)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar3xEverythingUnitTestCase.java	2007-11-20 00:30:16 UTC (rev 67275)
@@ -23,6 +23,8 @@
 
 import java.util.LinkedHashSet;
 
+import javax.ejb.TransactionManagementType;
+
 import junit.framework.Test;
 
 import org.jboss.metadata.ApplicationMetaData;
@@ -59,7 +61,6 @@
 import org.jboss.metadata.ejb.spec.ResultTypeMapping;
 import org.jboss.metadata.ejb.spec.SessionBeanMetaData;
 import org.jboss.metadata.ejb.spec.SessionType;
-import org.jboss.metadata.ejb.spec.TransactionType;
 import org.jboss.metadata.javaee.spec.MessageDestinationMetaData;
 import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
 
@@ -178,7 +179,7 @@
       assertNamedMethod(ejbName + "TimeoutMethod", 2, session.getTimeoutMethod());
       assertInitMethods(ejbName, 2, session.getInitMethods());
       assertRemoveMethods(ejbName, 3, session.getRemoveMethods());
-      assertEquals(TransactionType.Container, session.getTransactionType());
+      assertEquals(TransactionManagementType.CONTAINER, session.getTransactionType());
       assertAroundInvokes(ejbName, 2, session.getAroundInvokes());
       assertLifecycleCallbacks(ejbName, "PostActivate", 2, session.getPostActivates());
       assertLifecycleCallbacks(ejbName, "PrePassivate", 2, session.getPrePassivates());
@@ -205,7 +206,7 @@
       assertNamedMethod(ejbName + "TimeoutMethod", 2, session.getTimeoutMethod());
       assertInitMethods(ejbName, 2, session.getInitMethods());
       assertRemoveMethods(ejbName, 3, session.getRemoveMethods());
-      assertEquals(TransactionType.Container, session.getTransactionType());
+      assertEquals(TransactionManagementType.CONTAINER, session.getTransactionType());
       assertAroundInvokes(ejbName, 2, session.getAroundInvokes());
       assertLifecycleCallbacks(ejbName, "PostActivate", 2, session.getPostActivates());
       assertLifecycleCallbacks(ejbName, "PrePassivate", 2, session.getPrePassivates());
@@ -326,7 +327,7 @@
       assertMappedName(ejbName, mdb.getMappedName());
       assertEquals(ejbName + "MessagingType", mdb.getMessagingType());
       assertNamedMethod(ejbName + "TimeoutMethod", 2, mdb.getTimeoutMethod());
-      assertEquals(TransactionType.Container, mdb.getTransactionType());
+      assertEquals(TransactionManagementType.CONTAINER, mdb.getTransactionType());
       assertEquals(ejbName + "MessageDestinationType", mdb.getMessageDestinationType());
       assertEquals(ejbName + "MessageDestinationLink", mdb.getMessageDestinationLink());
       assertActivationConfig(ejbName, mdb.getActivationConfig());

Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3_testXmlMerge.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3_testXmlMerge.xml	                        (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3_testXmlMerge.xml	2007-11-20 00:30:16 UTC (rev 67275)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ejb-jar version="3.0"
+    xmlns="http://java.sun.com/xml/ns/javaee"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
+    <enterprise-beans>
+        <session>
+            <ejb-name>InterMediateBean</ejb-name>
+            <ejb-class>org.jboss.test.metadata.annotation.ejb3.runas.InterMediate</ejb-class>
+        </session>
+        <session>
+            <ejb-name>TargetBean</ejb-name>
+            <ejb-class>org.jboss.test.metadata.annotation.ejb3.runas.TargetBean</ejb-class>
+        </session>
+    </enterprise-beans>
+</ejb-jar>


Property changes on: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3_testXmlMerge.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + native

Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/ejb-jar.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/ejb-jar.xml	                        (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/ejb-jar.xml	2007-11-20 00:30:16 UTC (rev 67275)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ejb-jar version="3.0"
+    xmlns="http://java.sun.com/xml/ns/javaee"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
+    <enterprise-beans>
+        <session>
+            <ejb-name>InterMediateBean</ejb-name>
+            <ejb-class>org.jboss.test.metadata.annotation.ejb3.runas.InterMediate</ejb-class>
+        </session>
+        <session>
+            <ejb-name>TargetBean</ejb-name>
+            <ejb-class>org.jboss.test.metadata.annotation.ejb3.runas.TargetBean</ejb-class>
+        </session>
+    </enterprise-beans>
+</ejb-jar>


Property changes on: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/ejb-jar.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + native

Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/jboss-app.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/jboss-app.xml	                        (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/jboss-app.xml	2007-11-20 00:30:16 UTC (rev 67275)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE jboss-app PUBLIC
+    "-//JBoss//DTD J2EE Application 4.2//EN"
+    "http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd">
+
+<jboss-app>
+    <security-domain>java:/jaas/cts</security-domain>
+    <security-role>
+        <role-name>Administrator</role-name>
+        <principal-name>j2ee</principal-name>
+    </security-role>
+    <security-role>
+        <role-name>Manager</role-name>
+        <principal-name>javajoe</principal-name>
+    </security-role>
+    <security-role>
+        <role-name>Employee</role-name>
+        <principal-name>javajoe</principal-name>
+        <principal-name>j2ee</principal-name>
+    </security-role>
+</jboss-app>


Property changes on: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/jboss-app.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + native

Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/jboss.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/jboss.xml	                        (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/jboss.xml	2007-11-20 00:30:16 UTC (rev 67275)
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE jboss PUBLIC
+    "-//JBoss//DTD JBOSS 4.2//EN"
+    "http://www.jboss.org/j2ee/dtd/jboss_4_2.dtd">
+
+<jboss>
+    <security-domain>java:/jaas/cts</security-domain>
+    <missing-method-permissions-excluded-mode>false</missing-method-permissions-excluded-mode>
+    <webservices/>
+    <enterprise-beans>
+        <session>
+            <ejb-name>InterMediateBean</ejb-name>
+            <jndi-name>jacc_mr_InterMediateBean</jndi-name>
+            <call-by-value>true</call-by-value>
+            <security-identity>
+                <run-as-principal>javajoe</run-as-principal>
+            </security-identity>
+            <ior-security-config>
+                <transport-config>
+                    <integrity>supported</integrity>
+                    <confidentiality>supported</confidentiality>
+                    <establish-trust-in-target>supported</establish-trust-in-target>
+                    <establish-trust-in-client>supported</establish-trust-in-client>
+                </transport-config>
+                <as-context>
+                    <auth-method>username_password</auth-method>
+                    <realm>default</realm>
+                    <required>true</required>
+                </as-context>
+                <sas-context>
+                    <caller-propagation>supported</caller-propagation>
+                </sas-context>
+            </ior-security-config>
+        </session>
+        <session>
+            <ejb-name>TargetBean</ejb-name>
+            <jndi-name>jacc_mr_TargetBean</jndi-name>
+            <call-by-value>true</call-by-value>
+            <ior-security-config>
+                <transport-config>
+                    <integrity>supported</integrity>
+                    <confidentiality>supported</confidentiality>
+                    <establish-trust-in-target>supported</establish-trust-in-target>
+                    <establish-trust-in-client>supported</establish-trust-in-client>
+                </transport-config>
+                <as-context>
+                    <auth-method>username_password</auth-method>
+                    <realm>default</realm>
+                    <required>false</required>
+                </as-context>
+                <sas-context>
+                    <caller-propagation>supported</caller-propagation>
+                </sas-context>
+            </ior-security-config>
+        </session>
+    </enterprise-beans>
+    <assembly-descriptor>
+        <security-role>
+            <role-name>Administrator</role-name>
+            <principal-name>j2ee</principal-name>
+        </security-role>
+        <security-role>
+            <role-name>Manager</role-name>
+            <principal-name>javajoe</principal-name>
+        </security-role>
+        <security-role>
+            <role-name>Employee</role-name>
+            <principal-name>javajoe</principal-name>
+            <principal-name>j2ee</principal-name>
+        </security-role>
+    </assembly-descriptor>
+</jboss>


Property changes on: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/jboss.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + native




More information about the jboss-cvs-commits mailing list