[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