[jboss-cvs] JBossAS SVN: r75391 - in projects/metadata/trunk/src: test/java/org/jboss/test/metadata/annotation/ejb3 and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jul 4 10:31:45 EDT 2008


Author: emuckenhuber
Date: 2008-07-04 10:31:45 -0400 (Fri, 04 Jul 2008)
New Revision: 75391

Added:
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/JBossExtApiAnnotationTestCase.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyAnnotatedManagementInterface.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyConsumerBean.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyManagedService.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyOtherServiceBean.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyProducer.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyServiceBean.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyStatefulBean.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/TestInterface.java
Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/AbstractEnterpriseBeanProcessor.java
   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/JBoss50Creator.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/JBossManagementProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/JBossProducerProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/MessageDrivenProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/StatefulProcessor.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/JBossAnnotationEjb3UnitTestCase.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MyMDB.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MyServiceBean.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MyStatefulBean.java
Log:
[JBMETA-20] enable ext api processors

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/AbstractEnterpriseBeanProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/AbstractEnterpriseBeanProcessor.java	2008-07-04 14:30:43 UTC (rev 75390)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/AbstractEnterpriseBeanProcessor.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -72,6 +72,12 @@
       // @Interceptors
       addTypeProcessor(new InterceptorsProcessor<Class>(finder));
       addMethodProcessor(new InterceptorsProcessor<Method>(finder));
+      // @AspectDomain
+      addTypeProcessor(new JBossAspectDomainProcessor(finder));
+      // @JndiBindingPolicy
+      addTypeProcessor(new JBossJndiPolicyProcessor(finder));
+      // @Pool
+      addTypeProcessor(new JBossPoolProcessor(finder));
    }
 
    /**

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	2008-07-04 14:30:43 UTC (rev 75390)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/AbstractSessionBeanProcessor.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -57,12 +57,17 @@
       addTypeProcessor(new RemoteHomeProcessor(finder));
       addTypeProcessor(new ImplicitLocalProcessor(finder));
       addTypeProcessor(new LocalBindingProcessor(finder));
+      addTypeProcessor(new LocalHomeBindingProcessor(finder));
       addTypeProcessor(new RemoteBindingProcessor(finder));
       addTypeProcessor(new RemoteBindingsProcessor(finder));
+      addTypeProcessor(new RemoteHomeBindingProcessor(finder));
 
       addMethodProcessor(new InitProcessor(finder));
       addMethodProcessor(new TimeoutProcessor(finder));
       addMethodProcessor(new AroundInvokeProcessor(finder));
+      
+      addTypeProcessor(new JBossCacheConfigProcessor(finder));
+      addTypeProcessor(new JBossClusteredProcessor(finder));
    }
 
    public abstract JBossSessionBeanMetaData create(Class<?> beanClass);

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/JBoss50Creator.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/JBoss50Creator.java	2008-07-04 14:30:43 UTC (rev 75390)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/JBoss50Creator.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -52,9 +52,12 @@
       processors = new ArrayList<Processor<JBossMetaData,Class<?>>>();
       processors.add(new StatefulProcessor(finder));
       processors.add(new StatelessProcessor(finder));
+      processors.add(new JBossServiceProcessor(finder));
+      processors.add(new JBossConsumerProcessor(finder));
       processors.add(new MessageDrivenProcessor(finder));
       processors.add(new EntityProcessor(finder));
       processors.add(new ApplicationExceptionProcessor(finder));
+      
    }
 
    public JBoss50MetaData create(Collection<Class<?>> classes)

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/JBossManagementProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/JBossManagementProcessor.java	2008-07-04 14:30:43 UTC (rev 75390)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/JBossManagementProcessor.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -28,6 +28,7 @@
 import org.jboss.metadata.annotation.creator.Processor;
 import org.jboss.metadata.annotation.finder.AnnotationFinder;
 import org.jboss.metadata.ejb.jboss.JBossServiceBeanMetaData;
+import org.jboss.metadata.lang.ClassHelper;
 
 /**
  * The @Management processor.
@@ -51,7 +52,26 @@
          return;
       
       if(annotation.value() != Object.class)
+      {
          metaData.setManagement(annotation.value().getName());
+      }
+      else
+      {
+         Class<?> managementInterface = getDefaultInterface(type);
+         metaData.setManagement(managementInterface.getName());
+      }
    }
+   
+   private Class<?> getDefaultInterface(Class<?> type)
+   {
+      if(type.isInterface())
+      {
+         return type;
+      }
+      else
+      {
+         return ClassHelper.getDefaultInterface(type);
+      }
+   }
 }
 

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/JBossProducerProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/JBossProducerProcessor.java	2008-07-04 14:30:43 UTC (rev 75390)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/JBossProducerProcessor.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -61,9 +61,11 @@
       ProducerMetaData producer = new ProducerMetaData();
       if(annotation.connectionFactory().length() > 1)
          producer.setConnectionFactory(annotation.connectionFactory());
-      if(annotation.producer() != Object.class)
+      if(annotation.producer() != Producer.class)
          producer.setClassName(annotation.producer().getName());
+      // TODO find interfaces
       
+      
       // TODO
       // annotation.transacted();
       // annotation.acknowledgeMode()

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/MessageDrivenProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/MessageDrivenProcessor.java	2008-07-04 14:30:43 UTC (rev 75390)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/MessageDrivenProcessor.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -48,6 +48,7 @@
    protected MessageDrivenProcessor(AnnotationFinder<AnnotatedElement> finder)
    {
       super(finder);
+      addTypeProcessor(new JBossResourceAdapterProcessor(finder));
       addMethodProcessor(new TimeoutProcessor(finder));
    }
 

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/StatefulProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/StatefulProcessor.java	2008-07-04 14:30:43 UTC (rev 75390)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/StatefulProcessor.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -44,7 +44,9 @@
    protected StatefulProcessor(AnnotationFinder<AnnotatedElement> finder)
    {
       super(finder);
-
+      
+      addTypeProcessor(new JBossSerializedConcurrentAccessProcessor(finder));
+      
       addMethodProcessor(new RemoveProcessor(finder));
       addMethodProcessor(new PostActivateMethodProcessor(finder));
       addMethodProcessor(new PrePassivateMethodProcessor(finder));

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/JBossAnnotationEjb3UnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/JBossAnnotationEjb3UnitTestCase.java	2008-07-04 14:30:43 UTC (rev 75390)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/JBossAnnotationEjb3UnitTestCase.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -40,6 +40,8 @@
 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.CacheConfigMetaData;
+import org.jboss.metadata.ejb.jboss.ClusterConfigMetaData;
 import org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData;
 import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
 import org.jboss.metadata.ejb.jboss.JBossAssemblyDescriptorMetaData;
@@ -51,6 +53,7 @@
 import org.jboss.metadata.ejb.jboss.JBossMetaData;
 import org.jboss.metadata.ejb.jboss.JBossServiceBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.jboss.ProducerMetaData;
 import org.jboss.metadata.ejb.jboss.RemoteBindingMetaData;
 import org.jboss.metadata.ejb.spec.ActivationConfigMetaData;
 import org.jboss.metadata.ejb.spec.ActivationConfigPropertiesMetaData;
@@ -111,6 +114,7 @@
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
  * @author Scott.Stark at jboss.org
  * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
  * @version $Revision: 1.1 $
  */
 public class JBossAnnotationEjb3UnitTestCase extends AbstractJavaEEMetaDataTest
@@ -143,6 +147,9 @@
       AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
 
       Collection<Class<?>> classes = loadClassesFromCurrentClassDir();
+      // Do not test MyServiceBean/MyConsumer in here
+      classes.remove(MyServiceBean.class);
+      classes.remove(MyConsumer.class);
 
       //enableTrace("org.jboss.metadata.annotation.creator");
       JBoss50Creator creator = new JBoss50Creator(finder);
@@ -625,6 +632,28 @@
       assertEquals("stack2", remoteBinding.getInterceptorStack());
       assertEquals("factory2", remoteBinding.getProxyFactory());
       assertEquals("RemoteBinding2", remoteBinding.getJndiName());
+      
+      // @LocalHomeBinding
+      assertEquals("localHome", bean.getLocalHomeJndiName());
+      
+      // @RemoteHomeBinding
+      assertEquals("remoteHomeBinding", bean.getHomeJndiName());
+      
+      // @CacheConfig
+      assertNotNull(bean.getCacheConfig());
+      CacheConfigMetaData cacheConfig = bean.getCacheConfig();
+      assertEquals("test", cacheConfig.getName());
+      assertEquals(Integer.valueOf(123), cacheConfig.getIdleTimeoutSeconds());
+      assertEquals(Integer.valueOf(234), cacheConfig.getMaxSize());
+      assertEquals(Integer.valueOf(345), cacheConfig.getRemoveTimeoutSeconds());
+      assertEquals("true", cacheConfig.getReplicationIsPassivation());
+      
+      // @Clustered
+      assertNotNull(bean.getClusterConfig());
+      ClusterConfigMetaData clusterConfig = bean.getClusterConfig();
+      assertEquals("home", clusterConfig.getHomeLoadBalancePolicy());
+      assertEquals("bean", clusterConfig.getBeanLoadBalancePolicy());
+      assertEquals("partition", clusterConfig.getPartitionName());
    }
 
    private void assertMyStateless21Bean(IEnterpriseBeanMetaData enterpriseBean)
@@ -755,17 +784,20 @@
       expected.setActivationConfigProperties(props);
       assertEquals(expected, config);
       assertEquals("java:/mdbs/MailMDB", bean.getMappedName());
+      // @ResourceAdapter
+      assertEquals("MDBResourceAdapter", bean.getResourceAdapterName());
    }
 
-   private void assertMyServiceBean(IEnterpriseBeanMetaData enterpriseBean)
+   public void assertMyServiceBean(IEnterpriseBeanMetaData enterpriseBean)
    {
       assertTrue(enterpriseBean instanceof JBossServiceBeanMetaData);
 
       //TODO test the different values. This bean is based on MyStatelessSessionBean
       JBossServiceBeanMetaData bean = (JBossServiceBeanMetaData) enterpriseBean;
-      assertEquals(SessionType.Stateless, bean.getSessionType());
+      assertTrue(bean.isService());
+      assertFalse(bean.isSession());
       assertEquals(MyServiceBean.class.getName(), bean.getEjbClass());
-      assertEquals("MyServiceBean", bean.getEjbName());
+      assertEquals("MyService", bean.getEjbName());
 
       assertNotNull("bean has no business locals", bean.getBusinessLocals());
       assertEquals(1, bean.getBusinessLocals().size());
@@ -797,14 +829,14 @@
       assertEquals(1, postConstructs.size());
       LifecycleCallbackMetaData postConstruct = postConstructs.get(0);
       assertEquals("setUp", postConstruct.getMethodName());
-      assertEquals(MyStatelessBean.class.getName(), postConstruct.getClassName());
+      assertEquals(MyServiceBean.class.getName(), postConstruct.getClassName());
       // @PreDestroy
       LifecycleCallbacksMetaData preDestroys = bean.getPreDestroys();
       assertNotNull(preDestroys);
       assertEquals(1, preDestroys.size());
       LifecycleCallbackMetaData preDestroy = preDestroys.get(0);
       assertEquals("tearDown", preDestroy.getMethodName());
-      assertEquals(MyStatelessBean.class.getName(), preDestroy.getClassName());
+      assertEquals(MyServiceBean.class.getName(), preDestroy.getClassName());
 
       // @RunAs
       SecurityIdentityMetaData identity = bean.getSecurityIdentity();
@@ -818,8 +850,14 @@
       assertNotNull(invokes);
       assertEquals(1, invokes.size());
       AroundInvokeMetaData aroundInvoke = invokes.get(0);
-      assertEquals(MyStatelessBean.class.getName(), aroundInvoke.getClassName());
+      assertEquals(MyServiceBean.class.getName(), aroundInvoke.getClassName());
       assertEquals("intercept", aroundInvoke.getMethodName());
+      
+      // @AspectDomain
+      assertEquals("myAspectDomain", bean.getAopDomainName());
+      
+      // @Management
+      assertEquals(MyServiceManagement.class.getName(), bean.getManagement());
    }
 
    private void assertInterMediateBean(JBossEnterpriseBeanMetaData interMediateBean)
@@ -839,13 +877,15 @@
 
    private void assertMyConsumer(IEnterpriseBeanMetaData enterpriseBean)
    {
+      assertTrue(enterpriseBean instanceof JBossConsumerBeanMetaData);
+      JBossConsumerBeanMetaData bean = (JBossConsumerBeanMetaData) enterpriseBean;
       //TODO test the different values. This bean is based on MyMDB
-      JBossConsumerBeanMetaData bean = (JBossConsumerBeanMetaData) enterpriseBean;
+      assertNotNull(bean);
       assertEquals(MyConsumer.class.getName(), bean.getEjbClass());
       assertEquals("MyConsumer", bean.getEjbName());
       //assertEquals(false, bean.isJMS());
       //assertEquals(IMailListener.class.getName(), bean.getMessagingType());
-      //ActivationConfigMetaData config = bean.getActivationConfig();
+      ActivationConfigMetaData config = bean.getActivationConfig();
       ActivationConfigMetaData expected = new ActivationConfigMetaData();
       ActivationConfigPropertiesMetaData props = new ActivationConfigPropertiesMetaData();
       ActivationConfigPropertyMetaData p1 = new ActivationConfigPropertyMetaData();
@@ -857,10 +897,46 @@
       p2.setValue("v2");
       props.add(p2);
       expected.setActivationConfigProperties(props);
-      //assertEquals(expected, config);
+      assertEquals(expected, config);
       //assertEquals("java:/mdbs/MailMDB", bean.getMappedName());
+      
+      // @Producer
+      assertNotNull(bean.getProducers());
+      assertNull(bean.getLocalProducers());
+      assertEquals(1, bean.getProducers().size());
+      ProducerMetaData producer = bean.getProducers().get(0);
+      assertNotNull(producer);
+      assertEquals(MyProducer.class.getName(), producer.getClassName());
    }
+   
+   public void testEjb3ExtApiAnnotations()
+   {
+      AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
 
+      Collection<Class<?>> classes = new HashSet<Class<?>>();
+      // Add MyConsumer and MyService
+      classes.add(MyConsumer.class);
+      classes.add(MyServiceBean.class);
+
+      JBoss50Creator creator = new JBoss50Creator(finder);
+
+      JBoss50MetaData metaData = creator.create(classes);
+
+      assertTrue(metaData.isEJB3x());
+      assertEquals("3.0", metaData.getVersion());
+
+      assertNotNull("no beans defined", metaData.getEnterpriseBeans());
+      assertNotNull("no assembly descriptor defined", metaData.getAssemblyDescriptor());
+      
+      IEnterpriseBeanMetaData consumer = metaData.getEnterpriseBean("MyConsumer");
+      assertNotNull("consumer is null", consumer);
+      assertMyConsumer(consumer);
+      
+      IEnterpriseBeanMetaData service = metaData.getEnterpriseBean("MyService");
+      assertNotNull("service is null", service);
+      assertMyServiceBean(service);
+   }
+
    private Collection<Class<?>> loadClassesFromCurrentClassDir()
    {
       return loadClassesFromRelativeClassDir(".");

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MyMDB.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MyMDB.java	2008-07-04 14:30:43 UTC (rev 75390)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MyMDB.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -24,6 +24,8 @@
 import javax.ejb.ActivationConfigProperty;
 import javax.ejb.MessageDriven;
 
+import org.jboss.ejb3.annotation.ResourceAdapter;
+
 /**
  * @author Scott.Stark at jboss.org
  * @version $Revision$
@@ -38,6 +40,7 @@
       mappedName="java:/mdbs/MailMDB",
       description="A custom IMailListener MDB"
 )
+ at ResourceAdapter(value = "MDBResourceAdapter")
 public class MyMDB implements IMailListener
 {
    public void onMessage(IMailMsg msg)

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MyServiceBean.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MyServiceBean.java	2008-07-04 14:30:43 UTC (rev 75390)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MyServiceBean.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -33,6 +33,7 @@
 import javax.annotation.security.RolesAllowed;
 import javax.annotation.security.RunAs;
 import javax.ejb.EJB;
+import javax.ejb.Local;
 import javax.ejb.SessionContext;
 import javax.ejb.Stateless;
 import javax.ejb.TransactionAttribute;
@@ -45,6 +46,7 @@
 import javax.jms.Queue;
 import javax.sql.DataSource;
 
+import org.jboss.ejb3.annotation.AspectDomain;
 import org.jboss.ejb3.annotation.Management;
 import org.jboss.ejb3.annotation.Service;
 
@@ -58,7 +60,7 @@
  */
 @SuppressWarnings("unused")
 @Service(objectName="test:service=mine", name="MyService")
- at Management(Management.class)
+ at Management(MyServiceManagement.class)
 @TransactionAttribute(TransactionAttributeType.NEVER)
 @Resources({
    @Resource(description="url-resource-ref", name="googleHome", type=java.net.URL.class, mappedName="http://www.google.com"),
@@ -68,6 +70,8 @@
 @RunAs("InternalUser")
 @Interceptors(TestClassInterceptor.class)
 @ExcludeDefaultInterceptors
+ at Local(MyStatelessLocal.class)
+ at AspectDomain("myAspectDomain")
 public class MyServiceBean implements MyServiceManagement
 {
    @EJB

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MyStatefulBean.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MyStatefulBean.java	2008-07-04 14:30:43 UTC (rev 75390)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MyStatefulBean.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -33,8 +33,12 @@
 import javax.ejb.Remove;
 import javax.ejb.Stateful;
 
+import org.jboss.ejb3.annotation.CacheConfig;
+import org.jboss.ejb3.annotation.Clustered;
+import org.jboss.ejb3.annotation.LocalHomeBinding;
 import org.jboss.ejb3.annotation.RemoteBinding;
 import org.jboss.ejb3.annotation.RemoteBindings;
+import org.jboss.ejb3.annotation.RemoteHomeBinding;
 
 /**
  * Comment
@@ -53,6 +57,8 @@
          }
 )
 @RemoteBinding(jndiBinding = "jndiBind3")
+ at LocalHomeBinding(jndiBinding = "localHome")
+ at RemoteHomeBinding(jndiBinding = "remoteHomeBinding")
 @EJBs(
       value={
             @EJB(name="ejb/local1", beanInterface=MyStatelessLocal.class,
@@ -63,6 +69,13 @@
                   description="A reference to MyLocalSession2")
       }
 )
+ at CacheConfig(name = "test",
+      idleTimeoutSeconds = 123,
+      maxSize = 234,
+      removalTimeoutSeconds = 345,
+      replicationIsPassivation = true
+      )
+ at Clustered(homeLoadBalancePolicy = "home", loadBalancePolicy = "bean", partition = "partition")
 public class MyStatefulBean
 {
    @PostConstruct

Added: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/JBossExtApiAnnotationTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/JBossExtApiAnnotationTestCase.java	                        (rev 0)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/JBossExtApiAnnotationTestCase.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -0,0 +1,196 @@
+package org.jboss.test.metadata.annotation.ejb3.ext.api;
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+import java.lang.reflect.AnnotatedElement;
+import java.util.Collection;
+
+import junit.framework.TestCase;
+
+import org.jboss.metadata.annotation.creator.ejb.jboss.JBoss50Creator;
+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.CacheConfigMetaData;
+import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
+import org.jboss.metadata.ejb.jboss.JBossConsumerBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossServiceBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.jboss.PoolConfigMetaData;
+import org.jboss.metadata.ejb.jboss.ProducerMetaData;
+import org.jboss.metadata.ejb.jboss.RemoteBindingMetaData;
+import org.jboss.metadata.ejb.spec.ActivationConfigMetaData;
+import org.jboss.metadata.ejb.spec.ActivationConfigPropertiesMetaData;
+import org.jboss.metadata.ejb.spec.ActivationConfigPropertyMetaData;
+import org.jboss.test.metadata.common.PackageScanner;
+import org.jboss.test.metadata.common.ScanPackage;
+
+/**
+ * Some additional testing for the ejb3 ext api annotations.
+ * 
+ * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
+ * @version $Revision$
+ */
+public class JBossExtApiAnnotationTestCase extends TestCase
+{
+   
+   @ScanPackage("org.jboss.test.metadata.annotation.ejb3.ext.api")
+   public void testBeans()
+   {
+      AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
+      
+      Collection<Class<?>> classes = PackageScanner.loadClasses();
+      JBoss50Creator creator = new JBoss50Creator(finder);
+      JBoss50MetaData metaData = creator.create(classes);
+      
+      assertNotNull(metaData);
+      assertMyConsumerBean(metaData.getEnterpriseBean("testConsumer"));
+      
+      assertMyServiceBean(metaData.getEnterpriseBean("testService"));
+      
+      assertMyStatefulBean(metaData.getEnterpriseBean("testStateful"));
+      
+      assertOtherServiceBean(metaData.getEnterpriseBean("otherTestService"));
+      
+      assertManagedServiceBean(metaData.getEnterpriseBean("testManagedService"));
+   }
+
+   private void assertMyServiceBean(IEnterpriseBeanMetaData enterpriseBean)
+   {
+      assertNotNull("service may not be null", enterpriseBean);
+      assertTrue(enterpriseBean instanceof JBossServiceBeanMetaData);
+      JBossServiceBeanMetaData bean = (JBossServiceBeanMetaData) enterpriseBean;
+      assertEquals("testService", bean.getEjbName());
+      
+      //@AspectDomain
+      assertEquals("testServiceAspectDomain", bean.getAopDomainName());
+      
+      // @Management
+      assertEquals(TestInterface.class.getName(), bean.getManagement());
+      
+      //@RemoteBindings
+      assertNotNull(bean.getRemoteBindings());
+      RemoteBindingMetaData remoteBinding = bean.getRemoteBindings().get(0);
+      assertNotNull(remoteBinding);
+      assertEquals("testServiceJndiRemoteBinding", remoteBinding.getJndiName());
+      
+      assertEquals("localHomeBinding", bean.getLocalHomeJndiName());
+      assertEquals("localBinding", bean.getLocalJndiName());
+      assertEquals("remoteHomeBinding", bean.getHomeJndiName());
+      
+      // @CacheConfig
+      assertNotNull(bean.getCacheConfig());
+      CacheConfigMetaData cacheConfig = bean.getCacheConfig();
+      assertEquals("test", cacheConfig.getName());
+      assertEquals(Integer.valueOf(123), cacheConfig.getIdleTimeoutSeconds());
+      assertEquals(Integer.valueOf(234), cacheConfig.getMaxSize());
+      assertEquals(Integer.valueOf(345), cacheConfig.getRemoveTimeoutSeconds());
+      assertEquals("true", cacheConfig.getReplicationIsPassivation());
+   }
+   
+   private void assertMyConsumerBean(IEnterpriseBeanMetaData enterpriseBean)
+   {
+      assertNotNull("Consumer may not be null", enterpriseBean);
+      assertTrue(enterpriseBean instanceof JBossConsumerBeanMetaData);
+      JBossConsumerBeanMetaData bean = (JBossConsumerBeanMetaData) enterpriseBean;
+      assertEquals("testConsumer", bean.getEjbName());
+      
+      // @AspectDomain
+      assertEquals("testConsumerDomain", bean.getAopDomainName());
+      
+      ActivationConfigMetaData config = bean.getActivationConfig();
+      ActivationConfigMetaData expected = new ActivationConfigMetaData();
+      ActivationConfigPropertiesMetaData props = new ActivationConfigPropertiesMetaData();
+      ActivationConfigPropertyMetaData p1 = new ActivationConfigPropertyMetaData();
+      p1.setName("p1");
+      p1.setValue("v1");
+      props.add(p1);
+      ActivationConfigPropertyMetaData p2 = new ActivationConfigPropertyMetaData();
+      p2.setName("p2");
+      p2.setValue("v2");
+      props.add(p2);
+      expected.setActivationConfigProperties(props);
+      assertEquals(expected, config);
+      
+      assertNotNull(bean.getProducers());
+      assertEquals(2, bean.getProducers().size());
+      ProducerMetaData producer1 = bean.getProducers().get(0);
+      assertEquals(MyProducer.class.getName(), producer1.getClassName());
+      assertEquals("MyProducerConnectionFactory", producer1.getConnectionFactory());
+      ProducerMetaData producer2 = bean.getProducers().get(1);
+      assertEquals(TestInterface.class.getName(), producer2.getClassName());
+      
+      // @Pool
+      PoolConfigMetaData poolConfig = bean.getPoolConfig(); 
+      assertNotNull(poolConfig);
+      assertEquals(Integer.valueOf(2), poolConfig.getMaxSize());
+      assertEquals(Integer.valueOf(1), poolConfig.getTimeout());
+      assertEquals("value", poolConfig.getValue());
+      
+   }
+   
+   private void assertMyStatefulBean(IEnterpriseBeanMetaData enterpriseBean)
+   {
+      assertNotNull("Statfule may not be null", enterpriseBean);
+      assertTrue(enterpriseBean instanceof JBossSessionBeanMetaData);
+      JBossSessionBeanMetaData bean = (JBossSessionBeanMetaData) enterpriseBean;
+      assertEquals("testStateful", bean.getEjbName());
+      assertEquals("testStatefulMappedName", bean.getMappedName());
+      
+      // @JndiBindingPolicy
+      assertEquals(MyStatefulBean.TestJndiBindingPolicy.class.getName(), bean.getJndiBindingPolicy());
+      
+      // @SerializedConcurrentAccess
+      assertEquals(Boolean.TRUE, bean.isConcurrent());
+      
+      //@RemoteBindings
+      assertNotNull(bean.getRemoteBindings());
+      RemoteBindingMetaData remoteBinding = bean.getRemoteBindings().get(0);
+      assertNotNull(remoteBinding);
+      assertEquals("testStatefulJndiRemoteBinding", remoteBinding.getJndiName());
+      
+      assertEquals("localHomeBinding", bean.getLocalHomeJndiName());
+      assertEquals("localBinding", bean.getLocalJndiName());
+      assertEquals("remoteHomeBinding", bean.getHomeJndiName());
+   }
+   
+   private void assertOtherServiceBean(IEnterpriseBeanMetaData enterpriseBean)
+   {
+      assertNotNull("otherService may not be null", enterpriseBean);
+      assertTrue(enterpriseBean instanceof JBossServiceBeanMetaData);
+      JBossServiceBeanMetaData bean = (JBossServiceBeanMetaData) enterpriseBean;
+      assertEquals("otherTestService", bean.getEjbName());
+      
+      assertEquals(MyAnnotatedManagementInterface.class.getName(), bean.getManagement());
+   }
+   
+   private void assertManagedServiceBean(IEnterpriseBeanMetaData enterpriseBean)
+   {
+      assertNotNull("managedService may not be null", enterpriseBean);
+      assertTrue(enterpriseBean instanceof JBossServiceBeanMetaData);
+      JBossServiceBeanMetaData bean = (JBossServiceBeanMetaData) enterpriseBean;
+      assertEquals("testManagedService", bean.getEjbName());
+      
+      assertEquals(TestInterface.class.getName(), bean.getManagement());
+   }
+}
+

Added: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyAnnotatedManagementInterface.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyAnnotatedManagementInterface.java	                        (rev 0)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyAnnotatedManagementInterface.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.metadata.annotation.ejb3.ext.api;
+
+import org.jboss.ejb3.annotation.Management;
+
+/**
+ * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
+ * @version $Revision$
+ */
+ at Management
+public interface MyAnnotatedManagementInterface
+{
+
+}
+

Added: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyConsumerBean.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyConsumerBean.java	                        (rev 0)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyConsumerBean.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -0,0 +1,57 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.metadata.annotation.ejb3.ext.api;
+
+import javax.ejb.ActivationConfigProperty;
+
+import org.jboss.ejb3.annotation.AspectDomain;
+import org.jboss.ejb3.annotation.Consumer;
+import org.jboss.ejb3.annotation.Pool;
+import org.jboss.ejb3.annotation.Producer;
+import org.jboss.ejb3.annotation.Producers;
+import org.jboss.ejb3.annotation.SecurityDomain;
+
+/**
+ * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
+ * @version $Revision$
+ */
+ at Consumer(name = "testConsumer",
+   activationConfig = {
+      @ActivationConfigProperty(propertyName="prop1", propertyValue="value1"),
+      @ActivationConfigProperty(propertyName="prop2", propertyValue="value2")
+   }
+)
+ at SecurityDomain(value = "consumerSecurity",
+      unauthenticatedPrincipal = "guest")
+ at AspectDomain("testConsumerDomain")
+ at Pool(maxSize = 2, timeout = 1, value = "value")
+ at Producers(
+   value = {
+         @Producer(producer = MyProducer.class, acknowledgeMode = 1, connectionFactory = "MyProducerConnectionFactory", transacted = true ),
+         @Producer(producer = TestInterface.class)         
+   }
+)
+public class MyConsumerBean
+{
+
+}
+

Added: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyManagedService.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyManagedService.java	                        (rev 0)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyManagedService.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.metadata.annotation.ejb3.ext.api;
+
+import java.io.Serializable;
+
+import org.jboss.ejb3.annotation.Management;
+import org.jboss.ejb3.annotation.Service;
+
+/**
+ * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
+ * @version $Revision$
+ */
+ at Service(name = "testManagedService")
+ at Management 
+public class MyManagedService implements TestInterface, Serializable
+{
+
+}
+

Added: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyOtherServiceBean.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyOtherServiceBean.java	                        (rev 0)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyOtherServiceBean.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -0,0 +1,37 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.metadata.annotation.ejb3.ext.api;
+
+import java.io.Serializable;
+
+import org.jboss.ejb3.annotation.Service;
+
+/**
+ * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
+ * @version $Revision$
+ */
+ at Service(name = "otherTestService")
+public class MyOtherServiceBean implements MyAnnotatedManagementInterface, Serializable
+{
+
+}
+

Added: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyProducer.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyProducer.java	                        (rev 0)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyProducer.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -0,0 +1,32 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.metadata.annotation.ejb3.ext.api;
+
+/**
+ * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
+ * @version $Revision$
+ */
+public interface MyProducer
+{
+
+}
+

Added: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyServiceBean.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyServiceBean.java	                        (rev 0)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyServiceBean.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.metadata.annotation.ejb3.ext.api;
+
+import org.jboss.ejb3.annotation.AspectDomain;
+import org.jboss.ejb3.annotation.CacheConfig;
+import org.jboss.ejb3.annotation.LocalBinding;
+import org.jboss.ejb3.annotation.LocalHomeBinding;
+import org.jboss.ejb3.annotation.Management;
+import org.jboss.ejb3.annotation.RemoteBinding;
+import org.jboss.ejb3.annotation.RemoteBindings;
+import org.jboss.ejb3.annotation.RemoteHomeBinding;
+import org.jboss.ejb3.annotation.Service;
+
+/**
+ * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
+ * @version $Revision$
+ */
+ at Service(name = "testService",
+      objectName = "testObjectName",
+      xmbean = "testXMBeanName"
+)
+ at AspectDomain("testServiceAspectDomain")
+ at Management(TestInterface.class)
+ at RemoteBindings(value = { @RemoteBinding(jndiBinding = "testServiceJndiRemoteBinding") })
+ at RemoteHomeBinding(jndiBinding = "remoteHomeBinding")
+ at CacheConfig(name = "test",
+      idleTimeoutSeconds = 123,
+      maxSize = 234,
+      removalTimeoutSeconds = 345,
+      replicationIsPassivation = true
+      )
+ at LocalHomeBinding(jndiBinding = "localHomeBinding")
+ at LocalBinding(jndiBinding = "localBinding")
+
+public class MyServiceBean
+{
+
+}
+

Added: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyStatefulBean.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyStatefulBean.java	                        (rev 0)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/MyStatefulBean.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -0,0 +1,81 @@
+package org.jboss.test.metadata.annotation.ejb3.ext.api;
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+
+import javax.ejb.Stateful;
+
+import org.jboss.ejb3.annotation.JndiBindingPolicy;
+import org.jboss.ejb3.annotation.LocalBinding;
+import org.jboss.ejb3.annotation.LocalHomeBinding;
+import org.jboss.ejb3.annotation.RemoteBinding;
+import org.jboss.ejb3.annotation.RemoteBindings;
+import org.jboss.ejb3.annotation.RemoteHomeBinding;
+import org.jboss.ejb3.annotation.SerializedConcurrentAccess;
+import org.jboss.ejb3.jndipolicy.DefaultJndiBindingPolicy;
+import org.jboss.ejb3.jndipolicy.Ejb3DeploymentSummary;
+
+/**
+ * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
+ * @version $Revision$
+ */
+ at Stateful(name = "testStateful",
+      mappedName = "testStatefulMappedName")
+ at JndiBindingPolicy(policy = MyStatefulBean.TestJndiBindingPolicy.class)
+ at RemoteBindings(value = { @RemoteBinding(jndiBinding = "testStatefulJndiRemoteBinding") })
+ at RemoteHomeBinding(jndiBinding = "remoteHomeBinding")
+ at LocalHomeBinding(jndiBinding = "localHomeBinding")
+ at LocalBinding(jndiBinding = "localBinding")
+ at SerializedConcurrentAccess
+public class MyStatefulBean
+{
+
+   public static class TestJndiBindingPolicy implements DefaultJndiBindingPolicy
+   {
+
+      public String getDefaultLocalHomeJndiName(Ejb3DeploymentSummary summary)
+      {
+         return null;
+      }
+
+      public String getDefaultLocalJndiName(Ejb3DeploymentSummary summary)
+      {
+         return null;
+      }
+
+      public String getDefaultRemoteHomeJndiName(Ejb3DeploymentSummary summary)
+      {
+         return null;
+      }
+
+      public String getDefaultRemoteJndiName(Ejb3DeploymentSummary summary)
+      {
+         return null;
+      }
+
+      public String getJndiName(Ejb3DeploymentSummary summary)
+      {
+         return null;
+      }
+   }
+}
+

Added: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/TestInterface.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/TestInterface.java	                        (rev 0)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/ext/api/TestInterface.java	2008-07-04 14:31:45 UTC (rev 75391)
@@ -0,0 +1,32 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.metadata.annotation.ejb3.ext.api;
+
+/**
+ * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
+ * @version $Revision$
+ */
+public interface TestInterface
+{
+
+}
+




More information about the jboss-cvs-commits mailing list