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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Mar 21 13:52:45 EDT 2014


Author: wolfc
Date: 2014-03-21 13:52:45 -0400 (Fri, 21 Mar 2014)
New Revision: 114764

Added:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractDeclareRolesProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/DeclareRolesProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/DeclareRolesProcessor.java
Modified:
   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/AbstractSessionBeanProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/AbstractSessionBeanProcessor.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta99/PostXmlProcessingUnitTestCase.java
Log:
JBMETA-374: process @DeclareRoles into security-role-ref


Modified: 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	2014-03-21 11:30:38 UTC (rev 114763)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/DeclareRolesProcessor.java	2014-03-21 17:52:45 UTC (rev 114764)
@@ -37,7 +37,9 @@
  * 
  * @author Scott.Stark at jboss.org
  * @version $Revision$
+ * @deprecated see JBPAPP-11037
  */
+ at Deprecated
 public class DeclareRolesProcessor
    extends AbstractFinderUser
    implements Processor<SecurityRolesMetaData, Class<?>>

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractDeclareRolesProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractDeclareRolesProcessor.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractDeclareRolesProcessor.java	2014-03-21 17:52:45 UTC (rev 114764)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright (c) 2014, Red Hat, Inc., and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.annotation.creator.ejb;
+
+import org.jboss.metadata.annotation.creator.AbstractFinderUser;
+import org.jboss.metadata.annotation.creator.ProcessorUtils;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.javaee.spec.SecurityRoleRefMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleRefsMetaData;
+
+import javax.annotation.security.DeclareRoles;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.AnnotatedElement;
+import java.util.Collection;
+
+/**
+ * EJB 3.0 17.2.5.3
+ *
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ */
+public abstract class AbstractDeclareRolesProcessor extends AbstractFinderUser
+{
+   public AbstractDeclareRolesProcessor(final AnnotationFinder<AnnotatedElement> finder)
+   {
+      super(finder);
+   }
+
+   protected void process(final SecurityRoleRefsMetaData metaData, final DeclareRoles declareRoles)
+   {
+      for (String roleName : declareRoles.value())
+      {
+         SecurityRoleRefMetaData securityRoleRef = new SecurityRoleRefMetaData();
+         securityRoleRef.setRoleName(roleName);
+         metaData.add(securityRoleRef);
+      }
+   }
+
+   public Collection<Class<? extends Annotation>> getAnnotationTypes()
+   {
+      return ProcessorUtils.createAnnotationSet(DeclareRoles.class);
+   }
+}

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	2014-03-21 11:30:38 UTC (rev 114763)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractSessionBeanProcessor.java	2014-03-21 17:52:45 UTC (rev 114764)
@@ -40,7 +40,7 @@
  * session bean meta data.
  *
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
  */
 public abstract class AbstractSessionBeanProcessor extends AbstractEnterpriseBeanProcessor<SessionBeanMetaData> implements Creator<Class<?>, SessionBeanMetaData>, Processor<EjbJar3xMetaData, Class<?>>
 {
@@ -49,6 +49,7 @@
    {
       super(finder);
       //
+      addTypeProcessor(new DeclareRolesProcessor(finder));
       addTypeProcessor(new LocalProcessor(finder));
       addTypeProcessor(new LocalHomeProcessor(finder));
       addTypeProcessor(new RemoteProcessor(finder));
@@ -93,5 +94,5 @@
       
       return bean;
    }
-   
+
 }

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/DeclareRolesProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/DeclareRolesProcessor.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/DeclareRolesProcessor.java	2014-03-21 17:52:45 UTC (rev 114764)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright (c) 2014, Red Hat, Inc., and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.annotation.creator.ejb;
+
+import org.jboss.metadata.annotation.creator.Processor;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.ejb.spec.SessionBeanMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleRefsMetaData;
+
+import javax.annotation.security.DeclareRoles;
+import java.lang.reflect.AnnotatedElement;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ */
+public class DeclareRolesProcessor extends AbstractDeclareRolesProcessor
+   implements Processor<SessionBeanMetaData, Class<?>>
+{
+   public DeclareRolesProcessor(final AnnotationFinder<AnnotatedElement> finder)
+   {
+      super(finder);
+   }
+
+   public void process(final SessionBeanMetaData metaData, final Class<?> type)
+   {
+      DeclareRoles declareRoles = finder.getAnnotation(type, DeclareRoles.class);
+      if(declareRoles == null)
+         return;
+      SecurityRoleRefsMetaData securityRoleRefs = new SecurityRoleRefsMetaData();
+      super.process(securityRoleRefs, declareRoles);
+      metaData.setSecurityRoleRefs(securityRoleRefs);
+   }
+}

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/AbstractSessionBeanProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/AbstractSessionBeanProcessor.java	2014-03-21 11:30:38 UTC (rev 114763)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/AbstractSessionBeanProcessor.java	2014-03-21 17:52:45 UTC (rev 114764)
@@ -28,6 +28,7 @@
 
 import org.jboss.metadata.annotation.creator.Creator;
 import org.jboss.metadata.annotation.creator.Processor;
+import org.jboss.metadata.annotation.creator.ejb.AbstractDeclareRolesProcessor;
 import org.jboss.metadata.annotation.finder.AnnotationFinder;
 import org.jboss.metadata.ejb.jboss.JBossMetaData;
 import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
@@ -51,6 +52,7 @@
    {
       super(finder);
 
+      addTypeProcessor(new DeclareRolesProcessor(finder));
       addTypeProcessor(new LocalProcessor(finder));
       addTypeProcessor(new LocalHomeProcessor(finder));
       addTypeProcessor(new RemoteProcessor(finder));

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/DeclareRolesProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/DeclareRolesProcessor.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/DeclareRolesProcessor.java	2014-03-21 17:52:45 UTC (rev 114764)
@@ -0,0 +1,56 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright (c) 2014, Red Hat, Inc., and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.annotation.creator.ejb.jboss;
+
+import org.jboss.metadata.annotation.creator.AbstractFinderUser;
+import org.jboss.metadata.annotation.creator.Processor;
+import org.jboss.metadata.annotation.creator.ejb.AbstractDeclareRolesProcessor;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleRefsMetaData;
+
+import javax.annotation.security.DeclareRoles;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.AnnotatedElement;
+import java.util.Collection;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ */
+public class DeclareRolesProcessor extends AbstractDeclareRolesProcessor
+   implements Processor<JBossSessionBeanMetaData, Class<?>>
+{
+   protected DeclareRolesProcessor(final AnnotationFinder<AnnotatedElement> finder)
+   {
+      super(finder);
+   }
+
+   public void process(final JBossSessionBeanMetaData metaData, final Class<?> type)
+   {
+      DeclareRoles declareRoles = finder.getAnnotation(type, DeclareRoles.class);
+      if(declareRoles == null)
+         return;
+      SecurityRoleRefsMetaData securityRoleRefs = new SecurityRoleRefsMetaData();
+      super.process(securityRoleRefs, declareRoles);
+      metaData.setSecurityRoleRefs(securityRoleRefs);
+   }
+}

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta99/PostXmlProcessingUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta99/PostXmlProcessingUnitTestCase.java	2014-03-21 11:30:38 UTC (rev 114763)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta99/PostXmlProcessingUnitTestCase.java	2014-03-21 17:52:45 UTC (rev 114764)
@@ -74,6 +74,7 @@
 import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferencesMetaData;
 import org.jboss.metadata.javaee.spec.RunAsMetaData;
 import org.jboss.metadata.javaee.spec.SecurityRoleMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleRefMetaData;
 import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
 import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
 import org.jboss.metadata.javaee.spec.ServiceReferencesMetaData;
@@ -461,6 +462,11 @@
       assertEquals("stack", remoteBinding.getInterceptorStack());
       assertEquals("factory", remoteBinding.getProxyFactory());
       assertEquals("RemoteBinding", remoteBinding.getJndiName());
+
+      // JBMETA-374
+      assertEquals(2, bean.getSecurityRoleRefs().size());
+      assertNotNull(bean.getSecurityRoleRefs().get("Role1"));
+      assertNotNull(bean.getSecurityRoleRefs().get("Role2"));
    }
 
    private void assertMyMDB(IEnterpriseBeanMetaData enterpriseBean)



More information about the jboss-cvs-commits mailing list