[jboss-cvs] JBossAS SVN: r66850 - in projects/metadata/trunk/src: main/java/org/jboss/metadata/client/jboss and 7 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Nov 8 04:38:11 EST 2007


Author: scott.stark at jboss.org
Date: 2007-11-08 04:38:11 -0500 (Thu, 08 Nov 2007)
New Revision: 66850

Added:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractComponentProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractEJBProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractResourceProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/EJBFieldProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/EJBMethodProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceFieldProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceMethodProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ServletProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AnnotatedEJBReferenceMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AnnotatedEJBReferencesMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MutableEnvironment.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MutableRemoteEnvironment.java
Removed:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/EJBAnnotationProcessor.java
Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractEnterpriseBeanProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractSessionBeanProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/TransactionAttributeMethodProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClientMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/InterceptorMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EnvironmentRefsGroupMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironment.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/web/spec/WebMetaData.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/repository/MetaDataRepositoryUnitTestCase.java
Log:
Checkpoint the annotation processing updates

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractComponentProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractComponentProcessor.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractComponentProcessor.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -0,0 +1,220 @@
+/*
+ * 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 java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.lang.reflect.TypeVariable;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
+import org.jboss.metadata.javaee.spec.MutableEnvironment;
+import org.jboss.metadata.javaee.spec.ResourceReferencesMetaData;
+
+/**
+ * A base javaee component processor.
+ * @param MD - the component metadata type
+ * @parma E - the component jndi environment references group type
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public abstract class AbstractComponentProcessor<MD, E extends MutableEnvironment>
+   extends AbstractFinderUser
+{
+   /** Map<Processor metdata type class, List<Processor for classes>> */
+   protected Map<Class<?>, List<Processor<Object, Class<?>>>> typeProcessors;
+   /** Map<Processor metdata type class, List<Processor for fields>> */
+   protected Map<Class<?>, List<Processor<Object, Field>>> fieldProcessors;
+   /** Map<Processor metdata type class, List<Processor for methods>> */
+   protected Map<Class<?>, List<Processor<Object, Method>>> methodProcessors;
+
+   /**
+    * @param finder
+    */
+   public AbstractComponentProcessor(AnnotationFinder<AnnotatedElement> finder)
+   {
+      super(finder);
+      typeProcessors = new HashMap<Class<?>, List<Processor<Object,Class<?>>>>();
+      fieldProcessors = new HashMap<Class<?>, List<Processor<Object,Field>>>();
+      methodProcessors = new HashMap<Class<?>, List<Processor<Object,Method>>>();
+
+      // Add component environment processors
+      addMethodProcessor(new ResourceMethodProcessor(finder));
+      addFieldProcessor(new ResourceFieldProcessor(finder));
+      addMethodProcessor(new EJBMethodProcessor(finder));
+      addFieldProcessor(new EJBFieldProcessor(finder));
+   }
+
+   public void addFieldProcessor(Processor processor)
+   {
+      Class t = getProcessorMetaDataType(processor);
+      List<Processor<Object, Field>> processors = fieldProcessors.get(t);
+      if(processors == null)
+      {
+         processors = new ArrayList<Processor<Object, Field>>();
+         fieldProcessors.put(t, processors);
+      }
+      processors.add(processor);
+   }
+
+   public void addMethodProcessor(Processor processor)
+   {
+      Class t = getProcessorMetaDataType(processor);
+      List<Processor<Object, Method>> processors = methodProcessors.get(t);
+      if(processors == null)
+      {
+         processors = new ArrayList<Processor<Object, Method>>();
+         methodProcessors.put(t, processors);
+      }
+      processors.add(processor);
+   }
+   public void addTypeProcessor(Processor processor)
+   {
+      Class t = getProcessorMetaDataType(processor);
+      List<Processor<Object, Class<?>>> processors = typeProcessors.get(t);
+      if(processors == null)
+      {
+         processors = new ArrayList<Processor<Object, Class<?>>>();
+         typeProcessors.put(t, processors);
+      }
+      processors.add(processor);
+   }
+
+   /**
+    * Process type for environment metadata related annotations
+    * @param metaData
+    * @param type
+    */
+   public void process(E metaData, Class<?> type)
+   {
+      ResourceReferencesMetaData resRefs = metaData.getResourceReferences();
+      if(resRefs == null)
+      {
+         resRefs = new ResourceReferencesMetaData();
+         metaData.setResourceReferences(resRefs);
+      }
+      processClass(resRefs, type);
+
+      AnnotatedEJBReferenceMetaData aejbRefs = metaData.getAnnotatedEjbReferences();
+      if(aejbRefs == null)
+      {
+         aejbRefs = new AnnotatedEJBReferenceMetaData();
+         metaData.setAnnotatedEjbReferences(aejbRefs);
+      }
+      processClass(aejbRefs, type);
+      
+   }
+   /**
+    * Process type for component metadata related annotations
+    * @param metaData
+    * @param type
+    */
+   public void process(MD metaData, Class<?> type)
+   {
+      processClass(metaData, type);
+   }
+
+   /**
+    * Process a the cls annotations at the type, method and field levels
+    * into the argument metaData. Only processors registered for the metaData
+    * type will be run.
+    * 
+    * @param <T>
+    * @param metaData
+    * @param cls
+    */
+   protected <T> void processClass(T metaData, Class<?> cls)
+   {
+      Class<?> type = metaData.getClass();
+
+      List<Processor<Object, Class<?>>> tps = typeProcessors.get(type);
+      if(tps != null)
+      {
+         for(Processor<Object, Class<?>> processor : tps)
+         {
+            processor.process(metaData, cls);
+         }
+         
+         for(Class<?> intf : cls.getInterfaces())
+         {
+            for(Processor<Object, Class<?>> processor : tps)
+            {
+               processor.process(metaData, intf);
+            }
+         }
+      }
+      
+      List<Processor<Object, Field>> fps = fieldProcessors.get(type);
+      if(fps != null)
+      for(Field field : cls.getDeclaredFields())
+      {
+         for(Processor<Object, Field> processor : fps)
+         {
+            processor.process(metaData, field);
+         }
+      }
+
+      List<Processor<Object, Method>> mps = methodProcessors.get(type);
+      if(mps != null)
+      for(Method method : cls.getDeclaredMethods())
+      {
+         for(Processor<Object, Method> processor : mps)
+         {
+            processor.process(metaData, method);
+         }
+      }
+      
+      if(cls.getSuperclass() != null)
+         processClass(metaData, cls.getSuperclass());
+   }
+
+   /**
+    * Determine the Processor<T, ?> T generic type class.
+    * 
+    * @param processor
+    * @return
+    */
+   protected Class getProcessorMetaDataType(Processor processor)
+   {
+      Type type = processor.getClass().getGenericInterfaces()[0];
+      ParameterizedType pt = (ParameterizedType) type;
+      System.err.println(pt.getActualTypeArguments());
+      Type t0 = pt.getActualTypeArguments()[0];
+      Class t = null;
+      if(t0 instanceof Class)
+         t = (Class) t0;
+      else if(t0 instanceof TypeVariable)
+      {
+         TypeVariable tv = (TypeVariable) t0;
+         t = (Class)tv.getBounds()[0];
+      }
+      return t;
+   }
+}


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

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractEJBProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractEJBProcessor.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractEJBProcessor.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -0,0 +1,98 @@
+/*
+ * 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.ejb.EJB;
+
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
+import org.jboss.metadata.javaee.spec.AnnotatedEJBReferencesMetaData;
+import org.jboss.metadata.javaee.spec.DescriptionImpl;
+import org.jboss.metadata.javaee.spec.DescriptionsImpl;
+
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public abstract class AbstractEJBProcessor<E extends AnnotatedElement>
+   extends AbstractFinderUser
+{
+   /**
+    * @param finder
+    */
+   public AbstractEJBProcessor(AnnotationFinder<AnnotatedElement> finder)
+   {
+      super(finder);
+   }
+
+   public void process(AnnotatedEJBReferencesMetaData refs, E element)
+   {
+      EJB annotation = finder.getAnnotation(element, EJB.class);
+      if(annotation == null)
+         return;
+      
+      AnnotatedEJBReferenceMetaData ref = createEJB(annotation, element);
+      refs.add(ref);
+   }
+
+   /**
+    * Get the ejb name based on the AnnotatedElement
+    * @param element
+    * @return
+    */
+   protected abstract String getName(E element);
+   /**
+    * Get the business interface class based on the AnnotatedElement
+    * @param element
+    * @return
+    */
+   protected abstract Class getType(E element);
+
+   protected AnnotatedEJBReferenceMetaData createEJB(EJB annotation, E element)
+   {
+      AnnotatedEJBReferenceMetaData ref = new AnnotatedEJBReferenceMetaData();
+      if(annotation.name().length() > 0)
+         ref.setEjbRefName(annotation.name());
+      else
+         ref.setEjbRefName(getName(element));
+      if(annotation.beanInterface() != Object.class)
+         ref.setBeanInterface(annotation.beanInterface());
+      else
+         ref.setBeanInterface(getType(element));
+      if(annotation.description().length() > 0)
+      {
+         DescriptionImpl description = new DescriptionImpl();
+         description.setDescription(annotation.description());
+         DescriptionsImpl descriptions = new DescriptionsImpl();
+         descriptions.add(description);
+         ref.setDescriptions(descriptions);
+      }
+      if(annotation.beanName().length() > 0)
+         ref.setLink(annotation.beanName());
+      if(annotation.mappedName().length() > 0)
+         ref.setMappedName(annotation.mappedName());
+
+      return ref;
+   }
+}


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

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractEnterpriseBeanProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractEnterpriseBeanProcessor.java	2007-11-08 09:10:47 UTC (rev 66849)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractEnterpriseBeanProcessor.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -31,6 +31,7 @@
 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;
 
 /**
  * Comment
@@ -38,34 +39,28 @@
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
  * @version $Revision: $
  */
-public abstract class AbstractEnterpriseBeanProcessor<MD extends EnterpriseBeanMetaData> extends AbstractFinderUser implements Processor<EjbJar3xMetaData, Class<?>>
+public abstract class AbstractEnterpriseBeanProcessor<MD extends EnterpriseBeanMetaData>
+   extends AbstractComponentProcessor<MD, EnvironmentRefsGroupMetaData>
+   implements Processor<EjbJar3xMetaData, Class<?>>
 {
    protected abstract MD create(Class<?> beanClass);
    
-   protected final List<Processor<MD, Class<?>>> typeProcessors;
-   protected final List<Processor<MD, Field>> fieldProcessors;
-   protected final List<Processor<MD, Method>> methodProcessors;
-   
    protected AbstractEnterpriseBeanProcessor(AnnotationFinder<AnnotatedElement> finder)
    {
       super(finder);
-      
-      // TODO: configure somehow
-      
-      typeProcessors = new ArrayList<Processor<MD,Class<?>>>();
-      typeProcessors.add(new TransactionAttributeClassProcessor<MD>(finder));
-      
-      fieldProcessors = new ArrayList<Processor<MD,Field>>();
-      
-      methodProcessors = new ArrayList<Processor<MD,Method>>();
-      methodProcessors.add(new TransactionAttributeMethodProcessor<MD>(finder));
+      addTypeProcessor(new TransactionAttributeClassProcessor<MD>(finder));
+      addMethodProcessor(new TransactionAttributeMethodProcessor<MD>(finder));
    }
-   
+
    public void process(EjbJar3xMetaData ejbJarMetaData, Class<?> beanClass)
    {
       MD beanMetaData = create(beanClass);
       if(beanMetaData == null)
          return;
+
+      EnvironmentRefsGroupMetaData env = new EnvironmentRefsGroupMetaData();
+      super.process(env, beanClass);
+      beanMetaData.setJndiEnvironmentRefsGroup(env);
       
       if(ejbJarMetaData.getEnterpriseBeans() == null)
          ejbJarMetaData.setEnterpriseBeans(new EnterpriseBeansMetaData());
@@ -75,38 +70,4 @@
       processClass(beanMetaData, beanClass);
    }
    
-   private void processClass(MD bean, Class<?> cls)
-   {
-      for(Processor<MD, Class<?>> processor : typeProcessors)
-      {
-         processor.process(bean, cls);
-      }
-      
-      for(Class<?> intf : cls.getInterfaces())
-      {
-         for(Processor<MD, Class<?>> processor : typeProcessors)
-         {
-            processor.process(bean, intf);
-         }
-      }
-      
-      for(Field field : cls.getDeclaredFields())
-      {
-         for(Processor<MD, Field> processor : fieldProcessors)
-         {
-            processor.process(bean, field);
-         }
-      }
-      
-      for(Method method : cls.getDeclaredMethods())
-      {
-         for(Processor<MD, Method> processor : methodProcessors)
-         {
-            processor.process(bean, method);
-         }
-      }
-      
-      if(cls.getSuperclass() != null)
-         processClass(bean, cls.getSuperclass());
-   }
 }

Added: 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	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractResourceProcessor.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -0,0 +1,112 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.annotation.creator;
+
+import java.lang.reflect.AnnotatedElement;
+import java.util.Collections;
+import java.util.Set;
+
+import javax.annotation.Resource;
+import javax.annotation.Resource.AuthenticationType;
+
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.javaee.spec.DescriptionImpl;
+import org.jboss.metadata.javaee.spec.DescriptionsImpl;
+import org.jboss.metadata.javaee.spec.ResourceAuthorityType;
+import org.jboss.metadata.javaee.spec.ResourceInjectionTargetMetaData;
+import org.jboss.metadata.javaee.spec.ResourceReferenceMetaData;
+import org.jboss.metadata.javaee.spec.ResourceReferencesMetaData;
+
+/**
+ * E defines the actual annotated element we're working for.
+ *
+ * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
+ * @version $Revision$
+ */
+public abstract class AbstractResourceProcessor<E extends AnnotatedElement, T extends ResourceReferencesMetaData>
+   extends AbstractFinderUser
+{
+   protected AbstractResourceProcessor(AnnotationFinder<AnnotatedElement> finder)
+   {
+      super(finder);
+   }
+   
+   public void process(T refs, E element)
+   {
+      Resource annotation = finder.getAnnotation(element, Resource.class);
+      if(annotation == null)
+         return;
+      
+      
+      ResourceReferenceMetaData ref = createResource(annotation, element);
+      refs.add(ref);
+   }
+
+   /**
+    * Get the resource name based on the AnnotatedElement
+    * @param element
+    * @return
+    */
+   protected abstract String getName(E element);
+   protected abstract String getType(E element);
+   protected abstract String getDeclaringClass(E element);
+
+   /**
+    * Init common resource fiels that don't depend on the AnnotatedElement
+    * @param annotation
+    * @param ref
+    */
+   protected ResourceReferenceMetaData createResource(Resource annotation, E element)
+   {
+      ResourceReferenceMetaData ref = new ResourceReferenceMetaData();
+      String name = annotation.name();
+      if(name.length() == 0)
+         name = getName(element);
+      ref.setResourceRefName(name);
+      AuthenticationType authType = annotation.authenticationType();
+      ResourceAuthorityType resAuthType = ResourceAuthorityType.Container;
+      if(authType == AuthenticationType.APPLICATION)
+         resAuthType = ResourceAuthorityType.Application;
+      ref.setResAuth(resAuthType);
+      if(annotation.mappedName().length() > 0)
+         ref.setMappedName(annotation.mappedName());
+      if(annotation.description().length() > 0)
+      {
+         DescriptionImpl description = new DescriptionImpl();
+         description.setDescription(annotation.description());
+         DescriptionsImpl descriptions = new DescriptionsImpl();
+         descriptions.add(description);
+         ref.setDescriptions(descriptions);
+      }
+      if(annotation.type() != Object.class)
+         ref.setType(annotation.type().getName());
+      else
+         ref.setType(getType(element));
+      ResourceInjectionTargetMetaData target = new ResourceInjectionTargetMetaData();
+      target.setInjectionTargetClass(getDeclaringClass(element));
+      target.setInjectionTargetName(name);
+      Set<ResourceInjectionTargetMetaData> injectionTargets = Collections.singleton(target);
+      ref.setInjectionTargets(injectionTargets);
+
+      return ref;
+   }
+}


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

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractSessionBeanProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractSessionBeanProcessor.java	2007-11-08 09:10:47 UTC (rev 66849)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractSessionBeanProcessor.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -52,10 +52,10 @@
       topLevelProcessors = new ArrayList<Processor<SessionBeanMetaData,Class<?>>>();
       topLevelProcessors.add(new LocalHomeProcessor(finder));
       
-      typeProcessors.add(new LocalProcessor(finder));
-      typeProcessors.add(new RemoteProcessor(finder));
+      addTypeProcessor(new LocalProcessor(finder));
+      addTypeProcessor(new RemoteProcessor(finder));
       
-      methodProcessors.add(new InitProcessor(finder));
+      addMethodProcessor(new InitProcessor(finder));
    }
    
    public abstract SessionBeanMetaData create(Class<?> beanClass);

Deleted: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/EJBAnnotationProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/EJBAnnotationProcessor.java	2007-11-08 09:10:47 UTC (rev 66849)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/EJBAnnotationProcessor.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -1,35 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.metadata.annotation.creator;
-
-/**
- * An EJB annotation can be found on a class or property.
- * 
- * TODO: we don't know whether we want a remote interface or a local one.
- *
- * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
- */
-public class EJBAnnotationProcessor
-{
-   
-}

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/EJBFieldProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/EJBFieldProcessor.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/EJBFieldProcessor.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -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 java.lang.reflect.Field;
+
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.javaee.spec.AnnotatedEJBReferencesMetaData;
+
+/**
+ * @EJB processor for Field annotations
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class EJBFieldProcessor
+   extends AbstractEJBProcessor<Field>
+   implements Processor<AnnotatedEJBReferencesMetaData, Field>
+{
+
+   /**
+    * @param finder
+    */
+   public EJBFieldProcessor(AnnotationFinder<AnnotatedElement> finder)
+   {
+      super(finder);
+   }
+
+   @Override
+   protected String getName(Field element)
+   {
+      String name = element.getName();
+      return name;
+   }
+   @Override
+   protected Class getType(Field element)
+   {
+      return element.getType();
+   }
+}


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

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/EJBMethodProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/EJBMethodProcessor.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/EJBMethodProcessor.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -0,0 +1,68 @@
+/*
+ * 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 java.lang.reflect.Method;
+
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.javaee.spec.AnnotatedEJBReferencesMetaData;
+
+/**
+ * @EJB processor for Method annotations
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class EJBMethodProcessor
+   extends AbstractEJBProcessor<Method>
+   implements Processor<AnnotatedEJBReferencesMetaData, Method>
+{
+
+   /**
+    * @param finder
+    */
+   public EJBMethodProcessor(AnnotationFinder<AnnotatedElement> finder)
+   {
+      super(finder);
+   }
+
+   @Override
+   protected String getName(Method element)
+   {
+      String name = element.getName().substring(3);
+      if (name.length() > 1)
+      {
+         name = name.substring(0, 1).toLowerCase() + name.substring(1);
+      }
+      else
+      {
+         name = name.toLowerCase();
+      }
+      return name;
+   }
+   @Override
+   protected Class getType(Method element)
+   {
+      return element.getParameterTypes()[0];
+   }
+}


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

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceFieldProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceFieldProcessor.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceFieldProcessor.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -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 java.lang.reflect.Field;
+
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.javaee.spec.ResourceReferencesMetaData;
+
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class ResourceFieldProcessor
+   extends AbstractResourceProcessor<Field, ResourceReferencesMetaData>
+   implements Processor<ResourceReferencesMetaData, Field>
+{
+
+   /**
+    * @param finder
+    */
+   public ResourceFieldProcessor(AnnotationFinder<AnnotatedElement> finder)
+   {
+      super(finder);
+   }
+
+   @Override
+   protected String getName(Field element)
+   {
+      String name = element.getName();
+      return name;
+   }
+   @Override
+   protected String getType(Field element)
+   {
+      return element.getType().getName();
+   }
+   @Override
+   protected String getDeclaringClass(Field element)
+   {
+      return element.getDeclaringClass().getName();
+   }
+
+}


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

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceMethodProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceMethodProcessor.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceMethodProcessor.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -0,0 +1,71 @@
+/*
+ * 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 java.lang.reflect.Method;
+
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.javaee.spec.ResourceReferencesMetaData;
+
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class ResourceMethodProcessor
+   extends AbstractResourceProcessor<Method, ResourceReferencesMetaData>
+   implements Processor<ResourceReferencesMetaData, Method>
+{
+
+   /**
+    * @param finder
+    */
+   public ResourceMethodProcessor(AnnotationFinder<AnnotatedElement> finder)
+   {
+      super(finder);
+   }
+
+   @Override
+   protected String getName(Method element)
+   {
+      String name = element.getName().substring(3);
+      if (name.length() > 1)
+      {
+         name = name.substring(0, 1).toLowerCase() + name.substring(1);
+      }
+      else
+      {
+         name = name.toLowerCase();
+      }
+      return name;
+   }
+   @Override
+   protected String getType(Method element)
+   {
+      return element.getParameterTypes()[0].getName();
+   }
+   @Override
+   protected String getDeclaringClass(Method element)
+   {
+      return element.getDeclaringClass().getName();
+   }
+}


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

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceProcessor.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceProcessor.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -0,0 +1,31 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.annotation.creator;
+
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class ResourceProcessor
+{
+
+}


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

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ServletProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ServletProcessor.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ServletProcessor.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.annotation.creator;
+
+import java.lang.reflect.AnnotatedElement;
+
+
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+
+/**
+ * Create the correct meta data for a stateless annotation.
+ *
+ * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class ServletProcessor extends AbstractComponentProcessor
+{
+   public ServletProcessor(AnnotationFinder<AnnotatedElement> finder)
+   {
+      super(finder);
+   }
+   
+}


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

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/TransactionAttributeMethodProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/TransactionAttributeMethodProcessor.java	2007-11-08 09:10:47 UTC (rev 66849)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/TransactionAttributeMethodProcessor.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -37,7 +37,9 @@
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
  * @version $Revision: $
  */
-public class TransactionAttributeMethodProcessor<T extends EnterpriseBeanMetaData> extends AbstractTransactionAttributeProcessor<Method, T> implements Processor<T, Method>
+public class TransactionAttributeMethodProcessor<T extends EnterpriseBeanMetaData>
+   extends AbstractTransactionAttributeProcessor<Method, T>
+   implements Processor<T, Method>
 {
    private static final Logger log = Logger.getLogger(TransactionAttributeMethodProcessor.class);
    

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java	2007-11-08 09:10:47 UTC (rev 66849)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -31,6 +31,7 @@
 
 import org.jboss.metadata.client.spec.ApplicationClientMetaData;
 import org.jboss.metadata.ejb.jboss.JBossEnvironmentRefsGroupMetaData;
+import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBReferencesMetaData;
 import org.jboss.metadata.javaee.spec.Environment;
@@ -210,6 +211,15 @@
    {
       return jndiEnvironmentRefsGroup.getEjbReferences();
    }
+   // TODO?
+   @XmlTransient
+   public AnnotatedEJBReferenceMetaData getAnnotatedEjbReferences()
+   {
+      AnnotatedEJBReferenceMetaData refs = null;
+      if(jndiEnvironmentRefsGroup != null)
+         refs = jndiEnvironmentRefsGroup.getAnnotatedEjbReferences();
+      return refs;
+   }
 
    public EnvironmentEntriesMetaData getEnvironmentEntries()
    {

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClientMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClientMetaData.java	2007-11-08 09:10:47 UTC (rev 66849)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClientMetaData.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -25,6 +25,7 @@
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlTransient;
 
+import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBReferencesMetaData;
 import org.jboss.metadata.javaee.spec.EnvironmentEntriesMetaData;
@@ -147,6 +148,15 @@
          return jndiEnvironmentRefsGroup.getEjbReferences();
       return null;
    }
+   // TODO?
+   @XmlTransient
+   public AnnotatedEJBReferenceMetaData getAnnotatedEjbReferences()
+   {
+      AnnotatedEJBReferenceMetaData refs = null;
+      if(jndiEnvironmentRefsGroup != null)
+         refs = jndiEnvironmentRefsGroup.getAnnotatedEjbReferences();
+      return refs;
+   }
 
    public EnvironmentEntriesMetaData getEnvironmentEntries()
    {

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java	2007-11-08 09:10:47 UTC (rev 66849)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -49,6 +49,7 @@
 import org.jboss.metadata.javaee.jboss.AnnotationsMetaData;
 import org.jboss.metadata.javaee.jboss.IgnoreDependencyMetaData;
 import org.jboss.metadata.javaee.jboss.JndiRefsMetaData;
+import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferencesMetaData;
 import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
@@ -908,6 +909,15 @@
          refs = jndiEnvironmentRefsGroup.getEjbReferences();
       return refs;
    }
+   // TODO?
+   @XmlTransient
+   public AnnotatedEJBReferenceMetaData getAnnotatedEjbReferences()
+   {
+      AnnotatedEJBReferenceMetaData refs = null;
+      if(jndiEnvironmentRefsGroup != null)
+         refs = jndiEnvironmentRefsGroup.getAnnotatedEjbReferences();
+      return refs;
+   }
 
    @XmlTransient
    public EnvironmentEntriesMetaData getEnvironmentEntries()

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeanMetaData.java	2007-11-08 09:10:47 UTC (rev 66849)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeanMetaData.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -28,6 +28,7 @@
 import javax.xml.bind.annotation.XmlTransient;
 
 import org.jboss.metadata.common.ejb.IEnterpriseBeanMetaData;
+import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferencesMetaData;
 import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
@@ -348,6 +349,13 @@
       return null;
    }
 
+   public AnnotatedEJBReferenceMetaData getAnnotatedEjbReferences()
+   {
+      if (jndiEnvironmentRefsGroup != null)
+         return jndiEnvironmentRefsGroup.getAnnotatedEjbReferences();
+      return null;
+   }
+
    public EnvironmentEntriesMetaData getEnvironmentEntries()
    {
       if (jndiEnvironmentRefsGroup != null)

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/InterceptorMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/InterceptorMetaData.java	2007-11-08 09:10:47 UTC (rev 66849)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/InterceptorMetaData.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -21,6 +21,7 @@
 */
 package org.jboss.metadata.ejb.spec;
 
+import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferencesMetaData;
 import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
@@ -45,6 +46,7 @@
 import org.jboss.metadata.javaee.support.AbstractMappedMetaData;
 import org.jboss.metadata.javaee.support.NamedMetaDataWithDescriptions;
 import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
 
 /**
@@ -218,6 +220,15 @@
          return environment.getEjbReferences();
       return null;
    }
+   // TODO?
+   @XmlTransient
+   public AnnotatedEJBReferenceMetaData getAnnotatedEjbReferences()
+   {
+      AnnotatedEJBReferenceMetaData refs = null;
+      if(environment != null)
+         refs = environment.getAnnotatedEjbReferences();
+      return refs;
+   }
 
    public EnvironmentEntriesMetaData getEnvironmentEntries()
    {

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AnnotatedEJBReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AnnotatedEJBReferenceMetaData.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AnnotatedEJBReferenceMetaData.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.javaee.spec;
+
+import javax.xml.bind.annotation.XmlType;
+
+import org.jboss.metadata.javaee.support.MergeableMappedMetaData;
+
+/**
+ * Metadata for an @EJB reference
+ * @EJB.name = ejbRefName
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+ at XmlType(name="annotated-ejb-refType")
+public class AnnotatedEJBReferenceMetaData
+   extends AbstractEJBReferenceMetaData
+   implements MergeableMappedMetaData<AnnotatedEJBReferenceMetaData>
+{
+   private static final long serialVersionUID = 1;
+   private Class beanInterface;
+   
+   public Class getBeanInterface()
+   {
+      return beanInterface;
+   }
+   public void setBeanInterface(Class beanInterface)
+   {
+      this.beanInterface = beanInterface;
+   }
+
+   public AnnotatedEJBReferenceMetaData merge(AnnotatedEJBReferenceMetaData original)
+   {
+      AnnotatedEJBReferenceMetaData merged = new AnnotatedEJBReferenceMetaData();
+      merged.merge(this, original);
+      if(beanInterface != null)
+         merged.setBeanInterface(beanInterface);
+      else if(original != null && original.getBeanInterface() != null)
+         merged.setBeanInterface(original.getBeanInterface());
+      return merged;
+   }
+
+}


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

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AnnotatedEJBReferencesMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AnnotatedEJBReferencesMetaData.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AnnotatedEJBReferencesMetaData.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -0,0 +1,69 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.metadata.javaee.spec;
+
+import org.jboss.metadata.javaee.support.AbstractMappedMetaData;
+import org.jboss.metadata.javaee.support.JavaEEMetaDataUtil;
+
+/**
+ * @EJB references metadata.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class AnnotatedEJBReferencesMetaData
+   extends AbstractMappedMetaData<AnnotatedEJBReferenceMetaData>
+{
+   /** The serialVersionUID */
+   private static final long serialVersionUID = 1;
+
+   /**
+    * Merge ejb references
+    * 
+    * @param override the override references
+    * @param overriden the overriden references 
+    * @param overridenFile the overriden file name
+    * @param overrideFile the override file
+    * @return the merged referencees
+    */
+   public static AnnotatedEJBReferencesMetaData merge(AnnotatedEJBReferencesMetaData override,
+         AnnotatedEJBReferencesMetaData overriden,
+         String overridenFile, String overrideFile)
+   {
+      if (override == null && overriden == null)
+         return null;
+      
+      if (override == null)
+         return overriden;
+      
+      AnnotatedEJBReferencesMetaData merged = new AnnotatedEJBReferencesMetaData();
+      return JavaEEMetaDataUtil.merge(merged, overriden, override, "@EJB", overridenFile, overrideFile, false);
+   }
+
+   /**
+    * Create a new EJBLocalReferencesMetaData.
+    */
+   public AnnotatedEJBReferencesMetaData()
+   {
+      super("ejb local ref name");
+   }
+}


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

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EnvironmentRefsGroupMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EnvironmentRefsGroupMetaData.java	2007-11-08 09:10:47 UTC (rev 66849)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EnvironmentRefsGroupMetaData.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -42,7 +42,7 @@
       "messageDestinationReferences", "persistenceContextRefs", "persistenceUnitRefs",
       "postConstructs", "preDestroys"})
 public class EnvironmentRefsGroupMetaData extends RemoteEnvironmentRefsGroupMetaData
-   implements Serializable, Environment
+   implements Serializable, Environment, MutableEnvironment
 {
    /** The serialVersionUID */
    private static final long serialVersionUID = 1337095770028220349L;

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MutableEnvironment.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MutableEnvironment.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MutableEnvironment.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.javaee.spec;
+
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface MutableEnvironment extends MutableRemoteEnvironment, Environment
+{
+   /**
+    * Get the ejbLocalReferences.
+    * 
+    * @return the ejbLocalReferences.
+    */
+   void setEjbLocalReferences(EJBLocalReferencesMetaData refs);
+
+   /**
+    * Get the persistenceContextRefs.
+    * 
+    * @return the persistenceContextRefs.
+    */
+   void setPersistenceContextRefs(PersistenceContextReferencesMetaData refs);
+
+}


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

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MutableRemoteEnvironment.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MutableRemoteEnvironment.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MutableRemoteEnvironment.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -0,0 +1,99 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.javaee.spec;
+
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface MutableRemoteEnvironment extends RemoteEnvironment
+{
+   /**
+    * Set the environmentEntries.
+    * 
+    * @return the environmentEntries.
+    */
+   void setEnvironmentEntries(EnvironmentEntriesMetaData entries);
+
+   /**
+    * Set the ejbReferences.
+    * 
+    * @return the ejbReferences.
+    */
+   void setEjbReferences(EJBReferencesMetaData refs);
+
+   /**
+    * Set the annotatedEjbReferences.
+    * 
+    * @return the annotatedEjbReferences.
+    */
+   void setAnnotatedEjbReferences(AnnotatedEJBReferenceMetaData annotatedEjbReferences);
+
+   /**
+    * Set the service references
+    * @return
+    */
+   void setServiceReferences(ServiceReferencesMetaData refs);
+
+   /**
+    * Set the resourceReferences.
+    * 
+    * @return the resourceReferences.
+    */
+   void setResourceReferences(ResourceReferencesMetaData refs);
+
+   /**
+    * Set the resourceEnvironmentReferences.
+    * 
+    * @return the resourceEnvironmentReferences.
+    */
+   void setResourceEnvironmentReferences(ResourceEnvironmentReferencesMetaData refs);
+
+   /**
+    * Set the messageDestinationReferences.
+    * 
+    * @return the messageDestinationReferences.
+    */
+   void setMessageDestinationReferences(MessageDestinationReferencesMetaData refs);
+
+   /**
+    * Set the postConstructs.
+    * 
+    * @return the postConstructs.
+    */
+   void setPostConstructs(LifecycleCallbacksMetaData callbacks);
+
+   /**
+    * Set the preDestroys.
+    * 
+    * @return the preDestroys.
+    */
+   void setPreDestroys(LifecycleCallbacksMetaData callbacks);
+
+   /**
+    * Set the persistenceUnitRefs.
+    * 
+    * @return the persistenceUnitRefs.
+    */
+   void setPersistenceUnitRefs(PersistenceUnitReferencesMetaData refs);
+
+}


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

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironment.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironment.java	2007-11-08 09:10:47 UTC (rev 66849)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironment.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -55,6 +55,13 @@
    EJBReferencesMetaData getEjbReferences();
 
    /**
+    * Get the ejbReferences.
+    * 
+    * @return the ejbReferences.
+    */
+   AnnotatedEJBReferenceMetaData getAnnotatedEjbReferences();
+
+   /**
     * Get by name
     * 
     * @param name the name

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java	2007-11-08 09:10:47 UTC (rev 66849)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -24,6 +24,7 @@
 import java.io.Serializable;
 
 import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlTransient;
 
 import org.jboss.metadata.javaee.jboss.JBossServiceReferencesMetaData;
 import org.jboss.metadata.javaee.support.AbstractMappedMetaData;
@@ -48,7 +49,8 @@
          "persistenceUnitRefs",
          "postConstructs",
          "preDestroys"})
-public class RemoteEnvironmentRefsGroupMetaData implements Serializable, RemoteEnvironment
+public class RemoteEnvironmentRefsGroupMetaData
+   implements Serializable, RemoteEnvironment, MutableRemoteEnvironment
 {
    /** The serialVersionUID */
    private static final long serialVersionUID = 1L;
@@ -56,6 +58,9 @@
    /** The environment entries */
    private EnvironmentEntriesMetaData environmentEntries;
 
+   /** @EJB references */
+   private transient AnnotatedEJBReferenceMetaData annotatedEjbReferences;
+
    /** The ejb references */
    private EJBReferencesMetaData ejbReferences;
 
@@ -136,6 +141,19 @@
       this.ejbReferences = ejbReferences;
    }
 
+   @XmlTransient
+   public AnnotatedEJBReferenceMetaData getAnnotatedEjbReferences()
+   {
+      return annotatedEjbReferences;
+   }
+   @XmlTransient
+   public void setAnnotatedEjbReferences(AnnotatedEJBReferenceMetaData annotatedEjbReferences)
+   {
+      if (annotatedEjbReferences == null)
+         throw new IllegalArgumentException("Null annotatedEjbReferences");
+      this.annotatedEjbReferences = annotatedEjbReferences;
+   }
+
    /**
     * Get the serviceReferences.
     * 

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/web/spec/WebMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/web/spec/WebMetaData.java	2007-11-08 09:10:47 UTC (rev 66849)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/web/spec/WebMetaData.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -27,6 +27,7 @@
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlTransient;
 
+import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferencesMetaData;
 import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
@@ -355,6 +356,15 @@
          return jndiEnvironmentRefsGroup.getEjbReferences();
       return null;
    }
+   // TODO?
+   @XmlTransient
+   public AnnotatedEJBReferenceMetaData getAnnotatedEjbReferences()
+   {
+      AnnotatedEJBReferenceMetaData refs = null;
+      if(jndiEnvironmentRefsGroup != null)
+         refs = jndiEnvironmentRefsGroup.getAnnotatedEjbReferences();
+      return refs;
+   }
 
    public EnvironmentEntriesMetaData getEnvironmentEntries()
    {

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-08 09:10:47 UTC (rev 66849)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/MyStatelessBean.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -21,9 +21,14 @@
  */
 package org.jboss.test.metadata.annotation.ejb3;
 
+import java.net.URL;
+
+import javax.annotation.Resource;
+import javax.annotation.Resources;
 import javax.ejb.EJB;
 import javax.ejb.Init;
 import javax.ejb.LocalHome;
+import javax.ejb.SessionContext;
 import javax.ejb.Stateless;
 import javax.ejb.TransactionAttribute;
 import javax.ejb.TransactionAttributeType;
@@ -37,11 +42,22 @@
 @SuppressWarnings("unused")
 @Stateless
 @TransactionAttribute(TransactionAttributeType.NEVER)
+ at Resources({
+   @Resource(name="googleHome", type=java.net.URL.class, mappedName="http://www.google.com"),
+   @Resource(name="jdbc/ds", mappedName="java:/DefaultDS")
+})
 public class MyStatelessBean implements MyStatelessLocal
 {
    @EJB
    private MyStatelessLocal injectedField;
-   
+   @Resource
+   private SessionContext context;
+
+   @Resource(description="A string from the env")
+   private String sfield;
+   private URL homePage;
+   private URL googleHome;
+
    @EJB(name="overrideName")
    private MyStatelessLocal injectedFieldWithOverridenName;
    
@@ -50,4 +66,15 @@
    {
       
    }
+
+   public URL getHomePage()
+   {
+      return homePage;
+   }
+   @Resource
+   public void setHomePage(URL homePage)
+   {
+      this.homePage = homePage;
+   }
+   
 }

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/repository/MetaDataRepositoryUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/repository/MetaDataRepositoryUnitTestCase.java	2007-11-08 09:10:47 UTC (rev 66849)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/repository/MetaDataRepositoryUnitTestCase.java	2007-11-08 09:38:11 UTC (rev 66850)
@@ -41,6 +41,7 @@
 import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.spec.SessionBeanMetaData;
 import org.jboss.metadata.ejb.spec.SessionType;
+import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
 import org.jboss.metadata.plugins.loader.memory.MemoryMetaDataLoader;
 import org.jboss.metadata.plugins.loader.reflection.AnnotatedElementMetaDataLoader;
 import org.jboss.metadata.plugins.repository.basic.BasicMetaDataRepository;
@@ -81,6 +82,8 @@
       assertTrue(beanMD instanceof SessionBeanMetaData);
       SessionBeanMetaData sbeanMD = (SessionBeanMetaData) beanMD;
       assertEquals(SessionType.Stateless, sbeanMD.getSessionType());
+      AnnotatedEJBReferenceMetaData aejbRefs = sbeanMD.getAnnotatedEjbReferences();
+      assertNotNull(aejbRefs);
    }
 
    /**




More information about the jboss-cvs-commits mailing list