[jboss-cvs] JBossAS SVN: r67218 - in projects/metadata/trunk/src: main/java/org/jboss/metadata/annotation/creator/ejb and 3 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sat Nov 17 02:53:29 EST 2007
Author: scott.stark at jboss.org
Date: 2007-11-17 02:53:29 -0500 (Sat, 17 Nov 2007)
New Revision: 67218
Added:
projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractRunAsProcessor.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/DeclareRolesProcessor.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/RunAsProcessor.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/web/RunAsProcessor.java
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractResourceProcessor.java
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/web/WebComponentProcessor.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/ejb3/MyStatelessBean.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/web/AnnotationWebUnitTestCase.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/web/MyServlet.java
Log:
Add RunAs, DeclareRoles processors
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractResourceProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractResourceProcessor.java 2007-11-17 03:47:39 UTC (rev 67217)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractResourceProcessor.java 2007-11-17 07:53:29 UTC (rev 67218)
@@ -263,7 +263,7 @@
ref.setResAuth(resAuthType);
if(annotation.mappedName().length() > 0)
ref.setMappedName(annotation.mappedName());
- Descriptions descriptions = getDescription(annotation.description());
+ Descriptions descriptions = ProcessorUtils.getDescription(annotation.description());
if(descriptions != null)
{
ref.setDescriptions(descriptions);
@@ -287,7 +287,7 @@
if(name.length() == 0)
name = getName(element);
entry.setEnvEntryName(name);
- Descriptions descriptions = getDescription(annotation.description());
+ Descriptions descriptions = ProcessorUtils.getDescription(annotation.description());
if(descriptions != null)
entry.setDescriptions(descriptions);
if(annotation.type() != Object.class)
@@ -313,7 +313,7 @@
if(annotation.mappedName().length() > 0)
ref.setMappedName(annotation.mappedName());
ref.setAnnotatedElement(element);
- DescriptionGroupMetaData dg = getDescriptionGroup(annotation.description());
+ DescriptionGroupMetaData dg = ProcessorUtils.getDescriptionGroup(annotation.description());
if(dg != null)
ref.setDescriptionGroup(dg);
if(annotation.type() != Object.class)
@@ -340,7 +340,7 @@
ref.setType(annotation.type().getName());
else
ref.setType(getType(element));
- Descriptions descriptions = getDescription(annotation.description());
+ Descriptions descriptions = ProcessorUtils.getDescription(annotation.description());
if(descriptions != null)
ref.setDescriptions(descriptions);
Set<ResourceInjectionTargetMetaData> injectionTargets = ProcessorUtils.getInjectionTargets(name, element);
@@ -363,7 +363,7 @@
ref.setType(annotation.type().getName());
else
ref.setType(getType(element));
- Descriptions descriptions = getDescription(annotation.description());
+ Descriptions descriptions = ProcessorUtils.getDescription(annotation.description());
if(descriptions != null)
ref.setDescriptions(descriptions);
Set<ResourceInjectionTargetMetaData> injectionTargets = ProcessorUtils.getInjectionTargets(name, element);
@@ -373,27 +373,4 @@
return ref;
}
- protected Descriptions getDescription(String description)
- {
- DescriptionsImpl descriptions = null;
- if(description.length() > 0)
- {
- DescriptionImpl di = new DescriptionImpl();
- di.setDescription(description);
- descriptions = new DescriptionsImpl();
- descriptions.add(di);
- }
- return descriptions;
- }
- protected DescriptionGroupMetaData getDescriptionGroup(String description)
- {
- DescriptionGroupMetaData dg = null;
- if(description.length() > 0)
- {
- dg = new DescriptionGroupMetaData();
- Descriptions descriptions = getDescription(description);
- dg.setDescriptions(descriptions);
- }
- return dg;
- }
}
Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractRunAsProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractRunAsProcessor.java (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractRunAsProcessor.java 2007-11-17 07:53:29 UTC (rev 67218)
@@ -0,0 +1,60 @@
+/*
+ * 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;
+
+import java.lang.reflect.AnnotatedElement;
+
+import javax.annotation.security.RunAs;
+
+import org.jboss.annotation.javaee.Descriptions;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.javaee.spec.RunAsMetaData;
+
+/**
+ * @RunAs processor
+ *
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class AbstractRunAsProcessor
+ extends AbstractFinderUser
+ implements Creator<Class, RunAsMetaData>
+{
+ public AbstractRunAsProcessor(AnnotationFinder<AnnotatedElement> finder)
+ {
+ super(finder);
+ }
+
+ public RunAsMetaData create(Class element)
+ {
+ RunAs runAs = finder.getAnnotation(element, RunAs.class);
+ if(runAs == null)
+ return null;
+
+ RunAsMetaData metaData = new RunAsMetaData();
+ metaData.setRoleName(runAs.value());
+ Descriptions descriptions = ProcessorUtils.getDescription("RunAs("+runAs.value()+") on class: "+element.getName());
+ metaData.setDescriptions(descriptions);
+ return metaData;
+ }
+
+}
Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractRunAsProcessor.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ native
Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/DeclareRolesProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/DeclareRolesProcessor.java (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/DeclareRolesProcessor.java 2007-11-17 07:53:29 UTC (rev 67218)
@@ -0,0 +1,64 @@
+/*
+ * 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;
+
+import java.lang.reflect.AnnotatedElement;
+
+import javax.annotation.security.DeclareRoles;
+
+import org.jboss.annotation.javaee.Descriptions;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.javaee.spec.SecurityRoleMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
+
+/**
+ * @DeclareRoles processor
+ *
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class DeclareRolesProcessor
+ extends AbstractFinderUser
+ implements Processor<SecurityRolesMetaData, Class>
+{
+ public DeclareRolesProcessor(AnnotationFinder<AnnotatedElement> finder)
+ {
+ super(finder);
+ }
+
+ public void process(SecurityRolesMetaData metaData, Class element)
+ {
+ DeclareRoles roles = finder.getAnnotation(element, DeclareRoles.class);
+ if(roles == null)
+ return;
+
+ for(String role : roles.value())
+ {
+ SecurityRoleMetaData sr = new SecurityRoleMetaData();
+ sr.setRoleName(role);
+ Descriptions descriptions = ProcessorUtils.getDescription("DeclareRoles("+roles.value()+") on class: "+element.getName());
+ sr.setDescriptions(descriptions);
+ metaData.add(sr);
+ }
+ }
+
+}
Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/DeclareRolesProcessor.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ native
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-17 03:47:39 UTC (rev 67217)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ProcessorUtils.java 2007-11-17 07:53:29 UTC (rev 67218)
@@ -27,6 +27,10 @@
import java.util.Collections;
import java.util.Set;
+import org.jboss.annotation.javaee.Descriptions;
+import org.jboss.metadata.javaee.spec.DescriptionGroupMetaData;
+import org.jboss.metadata.javaee.spec.DescriptionImpl;
+import org.jboss.metadata.javaee.spec.DescriptionsImpl;
import org.jboss.metadata.javaee.spec.ResourceInjectionTargetMetaData;
/**
@@ -85,4 +89,29 @@
}
return c;
}
+
+ public static Descriptions getDescription(String description)
+ {
+ DescriptionsImpl descriptions = null;
+ if(description.length() > 0)
+ {
+ DescriptionImpl di = new DescriptionImpl();
+ di.setDescription(description);
+ descriptions = new DescriptionsImpl();
+ descriptions.add(di);
+ }
+ return descriptions;
+ }
+ public static DescriptionGroupMetaData getDescriptionGroup(String description)
+ {
+ DescriptionGroupMetaData dg = null;
+ if(description.length() > 0)
+ {
+ dg = new DescriptionGroupMetaData();
+ Descriptions descriptions = getDescription(description);
+ dg.setDescriptions(descriptions);
+ }
+ return dg;
+ }
+
}
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-17 03:47:39 UTC (rev 67217)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractEnterpriseBeanProcessor.java 2007-11-17 07:53:29 UTC (rev 67218)
@@ -24,12 +24,15 @@
import java.lang.reflect.AnnotatedElement;
import org.jboss.metadata.annotation.creator.AbstractComponentProcessor;
+import org.jboss.metadata.annotation.creator.DeclareRolesProcessor;
import org.jboss.metadata.annotation.creator.Processor;
import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.ejb.spec.AssemblyDescriptorMetaData;
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.javaee.spec.EnvironmentRefsGroupMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
/**
* Comment
@@ -46,8 +49,13 @@
protected AbstractEnterpriseBeanProcessor(AnnotationFinder<AnnotatedElement> finder)
{
super(finder);
+ // @TransactionAttribute
addTypeProcessor(new TransactionAttributeClassProcessor<MD>(finder));
addMethodProcessor(new TransactionAttributeMethodProcessor<MD>(finder));
+ // @RunAs
+ addTypeProcessor(new RunAsProcessor(finder));
+ // @DeclareRoles
+ addTypeProcessor(new DeclareRolesProcessor(finder));
}
public void process(EjbJar3xMetaData ejbJarMetaData, Class<?> beanClass)
@@ -64,8 +72,21 @@
ejbJarMetaData.setEnterpriseBeans(new EnterpriseBeansMetaData());
ejbJarMetaData.getEnterpriseBeans().add(beanMetaData);
-
processClass(beanMetaData, beanClass);
- }
-
+
+ // @DeclareRoles
+ AssemblyDescriptorMetaData assembly = ejbJarMetaData.getAssemblyDescriptor();
+ if(assembly == null)
+ {
+ assembly = new AssemblyDescriptorMetaData();
+ ejbJarMetaData.setAssemblyDescriptor(assembly);
+ }
+ SecurityRolesMetaData securityRoles = assembly.getSecurityRoles();
+ if(securityRoles == null)
+ {
+ securityRoles = new SecurityRolesMetaData();
+ assembly.setSecurityRoles(securityRoles);
+ }
+ super.processClass(securityRoles, beanClass);
+ }
}
Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/RunAsProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/RunAsProcessor.java (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/RunAsProcessor.java 2007-11-17 07:53:29 UTC (rev 67218)
@@ -0,0 +1,66 @@
+/*
+ * 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 javax.annotation.security.RunAs;
+
+import org.jboss.metadata.annotation.creator.AbstractRunAsProcessor;
+import org.jboss.metadata.annotation.creator.Processor;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.spec.SecurityIdentityMetaData;
+import org.jboss.metadata.javaee.spec.RunAsMetaData;
+
+/**
+ * Processor for ejb @RunAs
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class RunAsProcessor extends AbstractRunAsProcessor
+ implements Processor<EnterpriseBeanMetaData, Class>
+{
+ /**
+ * @param finder
+ */
+ public RunAsProcessor(AnnotationFinder<AnnotatedElement> finder)
+ {
+ super(finder);
+ }
+
+ public void process(EnterpriseBeanMetaData metaData, Class type)
+ {
+ RunAs annotation = finder.getAnnotation(type, RunAs.class);
+ if(annotation == null)
+ return;
+
+ RunAsMetaData runAs = super.create(type);
+ SecurityIdentityMetaData identity = metaData.getSecurityIdentity();
+ if(identity == null)
+ {
+ identity = new SecurityIdentityMetaData();
+ metaData.setSecurityIdentity(identity);
+ }
+ identity.setRunAs(runAs);
+ }
+}
Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/RunAsProcessor.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ native
Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/web/RunAsProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/web/RunAsProcessor.java (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/web/RunAsProcessor.java 2007-11-17 07:53:29 UTC (rev 67218)
@@ -0,0 +1,64 @@
+/*
+ * 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.web;
+
+import java.lang.reflect.AnnotatedElement;
+
+import javax.annotation.security.RunAs;
+
+import org.jboss.metadata.annotation.creator.AbstractRunAsProcessor;
+import org.jboss.metadata.annotation.creator.Processor;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.javaee.spec.RunAsMetaData;
+import org.jboss.metadata.web.spec.ServletMetaData;
+import org.jboss.metadata.web.spec.ServletsMetaData;
+
+/**
+ * Processor for ejb @RunAs
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class RunAsProcessor extends AbstractRunAsProcessor
+ implements Processor<ServletsMetaData, Class>
+{
+ /**
+ * @param finder
+ */
+ public RunAsProcessor(AnnotationFinder<AnnotatedElement> finder)
+ {
+ super(finder);
+ }
+
+ public void process(ServletsMetaData metaData, Class type)
+ {
+ RunAs annotation = finder.getAnnotation(type, RunAs.class);
+ if(annotation == null)
+ return;
+
+ RunAsMetaData runAs = super.create(type);
+ ServletMetaData servlet = new ServletMetaData();
+ servlet.setServletName(type.getSimpleName());
+ servlet.setServletClass(type.getName());
+ servlet.setRunAs(runAs);
+ metaData.add(servlet);
+ }
+}
Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/web/RunAsProcessor.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ native
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/web/WebComponentProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/web/WebComponentProcessor.java 2007-11-17 03:47:39 UTC (rev 67217)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/web/WebComponentProcessor.java 2007-11-17 07:53:29 UTC (rev 67218)
@@ -25,9 +25,12 @@
import org.jboss.metadata.annotation.creator.AbstractComponentProcessor;
+import org.jboss.metadata.annotation.creator.DeclareRolesProcessor;
import org.jboss.metadata.annotation.creator.Processor;
import org.jboss.metadata.annotation.finder.AnnotationFinder;
import org.jboss.metadata.javaee.spec.EnvironmentRefsGroupMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
+import org.jboss.metadata.web.spec.ServletsMetaData;
import org.jboss.metadata.web.spec.WebMetaData;
/**
@@ -42,6 +45,10 @@
public WebComponentProcessor(AnnotationFinder<AnnotatedElement> finder)
{
super(finder);
+ // @RunAs
+ addTypeProcessor(new RunAsProcessor(finder));
+ // @DeclareRoles
+ addTypeProcessor(new DeclareRolesProcessor(finder));
}
@Override
@@ -52,6 +59,22 @@
EnvironmentRefsGroupMetaData env = new EnvironmentRefsGroupMetaData();
super.process(env, type);
metaData.setJndiEnvironmentRefsGroup(env);
+
+ // @RunAs
+ ServletsMetaData servlets = metaData.getServlets();
+ if(servlets == null)
+ {
+ servlets = new ServletsMetaData();
+ metaData.setServlets(servlets);
+ }
+ super.processClass(servlets, type);
+ // @DeclareRoles
+ SecurityRolesMetaData securityRoles = metaData.getSecurityRoles();
+ if(securityRoles == null)
+ {
+ securityRoles = new SecurityRolesMetaData();
+ metaData.setSecurityRoles(securityRoles);
+ }
+ super.processClass(securityRoles, type);
}
-
}
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-17 03:47:39 UTC (rev 67217)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java 2007-11-17 07:53:29 UTC (rev 67218)
@@ -35,6 +35,7 @@
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.spec.AssemblyDescriptorMetaData;
import org.jboss.metadata.ejb.spec.ContainerTransactionMetaData;
import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
import org.jboss.metadata.ejb.spec.InitMethodMetaData;
@@ -42,6 +43,7 @@
import org.jboss.metadata.ejb.spec.MethodsMetaData;
import org.jboss.metadata.ejb.spec.RemoveMethodMetaData;
import org.jboss.metadata.ejb.spec.RemoveMethodsMetaData;
+import org.jboss.metadata.ejb.spec.SecurityIdentityMetaData;
import org.jboss.metadata.ejb.spec.SessionBeanMetaData;
import org.jboss.metadata.ejb.spec.SessionType;
import org.jboss.metadata.ejb.spec.TransAttributeType;
@@ -49,6 +51,10 @@
import org.jboss.metadata.javaee.spec.AnnotatedEJBReferencesMetaData;
import org.jboss.metadata.javaee.spec.LifecycleCallbackMetaData;
import org.jboss.metadata.javaee.spec.LifecycleCallbacksMetaData;
+import org.jboss.metadata.javaee.spec.RunAsMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
+import org.jboss.metadata.web.spec.ServletMetaData;
import org.jboss.test.BaseTestCase;
/**
@@ -201,6 +207,13 @@
LifecycleCallbackMetaData preDestroy = preDestroys.get(0);
assertEquals("tearDown", preDestroy.getMethodName());
assertEquals(MyStatelessBean.class.getName(), preDestroy.getClassName());
+
+ // MyServlet @RunAs
+ SecurityIdentityMetaData identity = bean.getSecurityIdentity();
+ assertNotNull(identity);
+ RunAsMetaData runAs = identity.getRunAs();
+ assertNotNull(runAs);
+ assertEquals("InternalUser", runAs.getRoleName());
}
private Collection<Class> loadClassesFromCurrentClassDir()
@@ -273,8 +286,20 @@
assertMyStateless21Bean(metaData.getEnterpriseBean("MyStateless21Bean"));
assertMyStatelessBean(metaData.getEnterpriseBean("MyStatelessBean"));
- assertNotNull("no application exceptions defined", metaData.getAssemblyDescriptor().getApplicationExceptions());
- assertEquals(1, metaData.getAssemblyDescriptor().getApplicationExceptions().size());
- System.out.println(metaData.getAssemblyDescriptor().getContainerTransactionsByEjbName("MyStatelessBean"));
+ AssemblyDescriptorMetaData assembly = metaData.getAssemblyDescriptor();
+ assertNotNull("no application exceptions defined", assembly.getApplicationExceptions());
+ assertEquals(1, assembly.getApplicationExceptions().size());
+ System.out.println(assembly.getContainerTransactionsByEjbName("MyStatelessBean"));
+
+ // @DeclareRoles
+ SecurityRolesMetaData securityRoles = assembly.getSecurityRoles();
+ assertNotNull(securityRoles);
+ assertEquals(2, securityRoles.size());
+ SecurityRoleMetaData role1 = securityRoles.get("Role1");
+ assertNotNull(role1);
+ assertEquals("Role1", role1.getRoleName());
+ SecurityRoleMetaData role2 = securityRoles.get("Role2");
+ assertNotNull(role2);
+ assertEquals("Role2", role2.getRoleName());
}
}
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MyStatelessBean.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MyStatelessBean.java 2007-11-17 03:47:39 UTC (rev 67217)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MyStatelessBean.java 2007-11-17 07:53:29 UTC (rev 67218)
@@ -53,7 +53,7 @@
@Resource(description="url-resource-ref", name="googleHome", type=java.net.URL.class, mappedName="http://www.google.com"),
@Resource(description="DataSource-resource-ref", name="jdbc/ds", type=DataSource.class, mappedName="java:/DefaultDS")
})
- at DeclareRoles(value="Role1")
+ at DeclareRoles(value={"Role1","Role2"})
@RunAs("InternalUser")
public class MyStatelessBean implements MyStatelessLocal
{
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/web/AnnotationWebUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/web/AnnotationWebUnitTestCase.java 2007-11-17 03:47:39 UTC (rev 67217)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/web/AnnotationWebUnitTestCase.java 2007-11-17 07:53:29 UTC (rev 67218)
@@ -43,6 +43,10 @@
import org.jboss.metadata.javaee.spec.ResourceInjectionTargetMetaData;
import org.jboss.metadata.javaee.spec.ResourceReferenceMetaData;
import org.jboss.metadata.javaee.spec.ResourceReferencesMetaData;
+import org.jboss.metadata.javaee.spec.RunAsMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
+import org.jboss.metadata.web.spec.ServletMetaData;
import org.jboss.metadata.web.spec.Web25MetaData;
import org.jboss.test.BaseTestCase;
import org.jboss.test.metadata.annotation.ejb3.MyStatelessLocal;
@@ -153,6 +157,23 @@
assertEquals("2.5", metaData.getVersion());
assertEnv(metaData.getJndiEnvironmentRefsGroup());
-
+
+ // MyServlet @RunAs
+ assertNotNull(metaData.getServlets());
+ ServletMetaData servlet = metaData.getServlets().get("MyServlet");
+ assertNotNull(servlet);
+ RunAsMetaData runAs = servlet.getRunAs();
+ assertNotNull(runAs);
+ assertEquals("InternalUser", runAs.getRoleName());
+ // @DeclareRoles
+ SecurityRolesMetaData securityRoles = metaData.getSecurityRoles();
+ assertNotNull(securityRoles);
+ assertEquals(2, securityRoles.size());
+ SecurityRoleMetaData role1 = securityRoles.get("Role1");
+ assertNotNull(role1);
+ assertEquals("Role1", role1.getRoleName());
+ SecurityRoleMetaData role2 = securityRoles.get("Role2");
+ assertNotNull(role2);
+ assertEquals("Role2", role2.getRoleName());
}
}
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/web/MyServlet.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/web/MyServlet.java 2007-11-17 03:47:39 UTC (rev 67217)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/web/MyServlet.java 2007-11-17 07:53:29 UTC (rev 67218)
@@ -38,7 +38,7 @@
@Resource(description="url-resource-ref", name="googleHome", type=java.net.URL.class, mappedName="http://www.google.com"),
@Resource(description="DataSource-resource-ref", name="jdbc/ds", type=DataSource.class, mappedName="java:/DefaultDS")
})
- at DeclareRoles(value="Role1")
+ at DeclareRoles(value={"Role1", "Role2"})
@RunAs("InternalUser")
@WebServiceRefs({
@WebServiceRef(name = "service2", value = TestEndpointService.class),
More information about the jboss-cvs-commits
mailing list