[jboss-svn-commits] JBoss Common SVN: r2474 - in jbossxb-builder/trunk/src: test/java/org/jboss/ejb/metadata/jboss and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Aug 1 12:41:05 EDT 2007


Author: alex.loubyansky at jboss.com
Date: 2007-08-01 12:41:05 -0400 (Wed, 01 Aug 2007)
New Revision: 2474

Modified:
   jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java
   jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ContainerConfigurationsMetaData.java
   jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerBindingsMetaData.java
   jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerProxyBindingsMetaData.java
   jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnterpriseBeanMetaData.java
   jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnvironmentRefsGroupMetaData.java
   jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossMetaData.java
   jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/LoaderRepositoryConfigMetaData.java
   jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/MethodAttributesMetaData.java
   jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ResourceManagersMetaData.java
   jbossxb-builder/trunk/src/test/java/org/jboss/javaee/metadata/support/IdMetaDataImpl.java
   jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/JBoss5xEverythingUnitTestCase.java
Log:
fixed parsing of the jboss-specific DDs

Modified: jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java
===================================================================
--- jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java	2007-07-31 15:29:20 UTC (rev 2473)
+++ jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java	2007-08-01 16:41:05 UTC (rev 2474)
@@ -21,6 +21,10 @@
 */
 package org.jboss.xb.builder;
 
+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.Arrays;
 import java.util.Collections;
@@ -948,13 +952,14 @@
 
       if(typeInfo.isCollection())
       {
+         TypeInfo memberBaseType = findComponentType(typeInfo);
          // if the type is a parameterized collection then
          // bind its members as items
          TypeInfo gs = typeInfo.getGenericSuperclass();
          if (gs instanceof ParameterizedClassInfo)
          {
-            ParameterizedClassInfo pti = (ParameterizedClassInfo) gs;
-            TypeInfo memberBaseType = pti.getActualTypeArguments()[0];
+            //ParameterizedClassInfo pti = (ParameterizedClassInfo) gs;
+            //TypeInfo memberBaseType = pti.getActualTypeArguments()[0];
 
             JBossXmlModelGroup xmlModelGroup = ((ClassInfo) memberBaseType)
                   .getUnderlyingAnnotation(JBossXmlModelGroup.class);
@@ -979,7 +984,8 @@
                   if(memberTypeInfo.isCollection())
                   {
                      // TODO here we should properly identify the type of the item (based on a testcase)
-                     memberTypeInfo = pti.getActualTypeArguments()[0];
+                     //memberTypeInfo = pti.getActualTypeArguments()[0];
+                     memberTypeInfo = findComponentType((ClassInfo)memberTypeInfo);
                      isCol = true;
                   }
 
@@ -1141,12 +1147,9 @@
                   AbstractPropertyHandler memberPropertyHandler = null;
                   if(memberTypeInfo.isCollection())
                   {
-                     // TODO here we should properly identify the type of the item (based on a testcase)
-                     TypeInfo gs = ((ClassInfo)memberTypeInfo).getGenericSuperclass();
-                     ParameterizedClassInfo pti = (ParameterizedClassInfo) gs;
                      memberPropertyHandler = new CollectionPropertyHandler(memberProp, memberTypeInfo);
-                     memberTypeInfo = pti.getActualTypeArguments()[0];
                      isCol = true;
+                     memberTypeInfo = findComponentType((ClassInfo)memberTypeInfo);                     
                   }
                   else
                   {
@@ -1344,20 +1347,8 @@
                {
                   isCol = true;
                   propertyHandler = new CollectionPropertyHandler(property, propertyType);
-
-                  ClassInfo typeArg = null;
-                  // parametrized collection
-                  if(propertyType instanceof ParameterizedClassInfo)
-                  {
-                     ParameterizedClassInfo pti = (ParameterizedClassInfo) propertyType;
-                     typeArg = (ClassInfo) pti.getActualTypeArguments()[0];
-                  }
-                  else if(((ClassInfo) propertyType).getGenericSuperclass() instanceof ParameterizedClassInfo)
-                  {
-                     ParameterizedClassInfo pti = (ParameterizedClassInfo) ((ClassInfo) propertyType).getGenericSuperclass();
-                     typeArg = (ClassInfo) pti.getActualTypeArguments()[0];
-                  }
-                  
+                  ClassInfo typeArg = (ClassInfo) findComponentType(property);
+                                    
                   //if (((ClassInfo) typeArg).getUnderlyingAnnotation(XmlType.class) != null)
                   if (typeArg != null && typeArg.getUnderlyingAnnotation(JBossXmlModelGroup.class) == null)
                   {// it may be a model group in which case we don't want to change the type
@@ -1376,17 +1367,24 @@
                {
                   propertyHandler = new CollectionPropertyHandler(property, localPropertyType);
                   isCol = true;
-                  TypeInfo gs = ((ClassInfo) localPropertyType).getGenericSuperclass();
-                  if (gs instanceof ParameterizedClassInfo)
-                  {
-                     ParameterizedClassInfo pti = (ParameterizedClassInfo) gs;
-                     ClassInfo typeArg = (ClassInfo) pti.getActualTypeArguments()[0];
-                     //if (((ClassInfo) typeArg).getUnderlyingAnnotation(XmlType.class) != null)
-                     if (typeArg.getUnderlyingAnnotation(JBossXmlModelGroup.class) == null)
-                     {// it may be a model group in which case we don't want to change the type
-                        localPropertyType = typeArg;
-                     }
-                  }
+                  localPropertyType = findComponentType((ClassInfo)localPropertyType);
+                  
+//                  TypeInfo gs = ((ClassInfo) localPropertyType).getGenericSuperclass();
+//                  if (gs instanceof ParameterizedClassInfo)
+//                  {
+//                     ParameterizedClassInfo pti = (ParameterizedClassInfo) gs;
+//                     ClassInfo typeArg = (ClassInfo) pti.getActualTypeArguments()[0];
+//                     //if (((ClassInfo) typeArg).getUnderlyingAnnotation(XmlType.class) != null)
+//                     if (typeArg.getUnderlyingAnnotation(JBossXmlModelGroup.class) == null)
+//                     {// it may be a model group in which case we don't want to change the type
+//                        localPropertyType = typeArg;
+//                     
+//                        if(!type.equals(typeArg))
+//                        {
+//                           throw new IllegalStateException("Expected " + type + " but got " + typeArg.getName());
+//                        }
+//                     }
+//                  }
                }
                else
                {
@@ -1466,15 +1464,7 @@
          else if (wildcardType.isCollection())
          {
             localModel = createCollection(localModel);
-            if (type instanceof ParameterizedClassInfo)
-            {
-               ParameterizedClassInfo pinfo = (ParameterizedClassInfo) type;
-               type = pinfo.getActualTypeArguments()[0];
-            }
-            else
-            {
-               type = type.getTypeInfoFactory().getTypeInfo(Object.class);
-            }
+            type = findComponentType(wildcardProperty);
             if (trace)
                log.trace("Wildcard " + wildcardProperty.getName() + " is a collection of type " + type.getName());
          }
@@ -1692,4 +1682,120 @@
             builder.append('.').append(joinpoint);
       }
    }
+   
+   // the following is available in the latest org.jboss.reflect package
+   // but doesn't build at the moment...
+   private TypeInfo findComponentType(PropertyInfo prop)
+   {
+      return findActualType(prop, java.util.Collection.class, 0);
+   }
+
+   protected TypeInfo findComponentType(ClassInfo classInfo)
+   {
+      return findActualType(classInfo, classInfo.getType(), java.util.Collection.class, 0);
+   }
+   
+   private TypeInfo findActualType(PropertyInfo property, Class reference, int parameter)
+   {
+      MethodInfo getter = property.getGetter();
+      if(getter == null)
+      {
+         throw new IllegalStateException("Expected a getter for " + property.getName() + " in " + property.getBeanInfo().getName());
+      }
+      
+      Method m;
+      try
+      {
+         m = property.getBeanInfo().getClassInfo().getType().getMethod(getter.getName(), null);
+      }
+      catch (NoSuchMethodException e)
+      {
+         throw new IllegalStateException("Expected a getter for " + property.getName() + " in " + property.getBeanInfo().getName());
+      }
+
+      return findActualType((ClassInfo)property.getType(), m.getGenericReturnType(), reference, parameter);
+   }
+
+   protected TypeInfo findActualType(ClassInfo classInfo, Type genericType, Class reference, int parameter)
+   {
+      Type result = locateActualType(reference, parameter, classInfo.getType(), genericType);
+      if (result instanceof TypeVariable)
+      {
+         TypeVariable typeVariable = (TypeVariable) result;
+         result = typeVariable.getBounds()[0];
+      }
+      
+      return classInfo.getTypeInfoFactory().getTypeInfo(result);
+   }
+   
+   protected static Type locateActualType(Class reference, int parameter, Class clazz, Type type)
+   {
+      if (reference.equals(clazz))
+      {
+         if (type instanceof Class)
+         {
+            Class typeClass = (Class) type;
+            return typeClass.getTypeParameters()[parameter];
+         }
+         else
+         {
+            ParameterizedType parameterized = (ParameterizedType) type;
+            return parameterized.getActualTypeArguments()[parameter];
+         }
+      }
+      
+      Type[] interfaces = clazz.getGenericInterfaces();
+      for (Type intf : interfaces)
+      {         
+         Class interfaceClass;
+         if (intf instanceof Class)
+         {
+            interfaceClass = (Class) intf;
+         }
+         else if (intf instanceof ParameterizedType)
+         {
+            ParameterizedType interfaceType = (ParameterizedType) intf;
+            interfaceClass = (Class) interfaceType.getRawType();
+         }
+         else
+            throw new IllegalStateException("Unexpected type " + intf.getClass());
+
+         Type result = null;
+         if (reference.isAssignableFrom(interfaceClass))
+         {
+            result = locateActualType(reference, parameter, interfaceClass, intf);
+            if (result instanceof TypeVariable)
+               result = getParameter(clazz, type, (TypeVariable) result);
+         }
+
+         if (result != null)
+            return result;
+      }
+
+      Class superClass = clazz.getSuperclass();
+      Type genericSuperClass = clazz.getGenericSuperclass();
+      Type result = locateActualType(reference, parameter, superClass, genericSuperClass);
+      if (result instanceof TypeVariable)
+         result = getParameter(clazz, type, (TypeVariable) result);
+      return result;
+   }
+
+   private static Type getParameter(Class clazz, Type type, TypeVariable variable)
+   {
+      TypeVariable[] variables = clazz.getTypeParameters();
+      for (int i = 0; i < variables.length; ++i)
+      {
+         if (variables[i].getName().equals(variable.getName()))
+         {
+            if (type instanceof ParameterizedType)
+            {
+               ParameterizedType parameterized = (ParameterizedType) type;
+               return parameterized.getActualTypeArguments()[i];
+            }
+            return variable;
+         }
+      }
+      // Not generic
+      return Object.class;
+   }
 }

Modified: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ContainerConfigurationsMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ContainerConfigurationsMetaData.java	2007-07-31 15:29:20 UTC (rev 2473)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ContainerConfigurationsMetaData.java	2007-08-01 16:41:05 UTC (rev 2474)
@@ -22,6 +22,8 @@
 package org.jboss.ejb.metadata.jboss;
 
 import org.jboss.javaee.metadata.support.MappedMetaDataWithDescriptions;
+import org.jboss.xb.annotations.JBossXmlChild;
+
 import javax.xml.bind.annotation.XmlType;
 
 /**
@@ -31,6 +33,7 @@
  * @version $Revision: 1.1 $
  */
 @XmlType(name="container-configurationsType")
+ at JBossXmlChild(name="container-configuration", type=ContainerConfigurationMetaData.class, unbounded=true)
 public class ContainerConfigurationsMetaData extends MappedMetaDataWithDescriptions<ContainerConfigurationMetaData>
 {
    /** The serialVersionUID */

Modified: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerBindingsMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerBindingsMetaData.java	2007-07-31 15:29:20 UTC (rev 2473)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerBindingsMetaData.java	2007-08-01 16:41:05 UTC (rev 2474)
@@ -22,6 +22,8 @@
 package org.jboss.ejb.metadata.jboss;
 
 import org.jboss.javaee.metadata.support.MappedMetaDataWithDescriptions;
+import org.jboss.xb.annotations.JBossXmlChild;
+
 import javax.xml.bind.annotation.XmlType;
 
 /**
@@ -31,6 +33,7 @@
  * @version $Revision: 1.1 $
  */
 @XmlType(name="invoker-bindingsType")
+ at JBossXmlChild(name="invoker", type=InvokerBindingMetaData.class, unbounded=true)
 public class InvokerBindingsMetaData extends MappedMetaDataWithDescriptions<InvokerBindingMetaData>
 {
    /** The serialVersionUID */

Modified: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerProxyBindingsMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerProxyBindingsMetaData.java	2007-07-31 15:29:20 UTC (rev 2473)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerProxyBindingsMetaData.java	2007-08-01 16:41:05 UTC (rev 2474)
@@ -22,6 +22,8 @@
 package org.jboss.ejb.metadata.jboss;
 
 import org.jboss.javaee.metadata.support.MappedMetaDataWithDescriptions;
+import org.jboss.xb.annotations.JBossXmlChild;
+
 import javax.xml.bind.annotation.XmlType;
 
 /**
@@ -31,6 +33,7 @@
  * @version $Revision: 1.1 $
  */
 @XmlType(name="invoker-proxy-bindingsType")
+ at JBossXmlChild(name="invoker-proxy-binding", type=InvokerProxyBindingMetaData.class, unbounded=true)
 public class InvokerProxyBindingsMetaData extends MappedMetaDataWithDescriptions<InvokerProxyBindingMetaData>
 {
    /** The serialVersionUID */

Modified: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnterpriseBeanMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnterpriseBeanMetaData.java	2007-07-31 15:29:20 UTC (rev 2473)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnterpriseBeanMetaData.java	2007-08-01 16:41:05 UTC (rev 2474)
@@ -27,14 +27,11 @@
 import java.util.Set;
 
 import org.jboss.ejb.metadata.spec.EnterpriseBeanMetaData;
-import org.jboss.ejb.metadata.spec.EntityBeanMetaData;
 import org.jboss.ejb.metadata.spec.ExcludeListMetaData;
-import org.jboss.ejb.metadata.spec.MessageDrivenBeanMetaData;
 import org.jboss.ejb.metadata.spec.MethodInterfaceType;
 import org.jboss.ejb.metadata.spec.MethodPermissionMetaData;
 import org.jboss.ejb.metadata.spec.MethodPermissionsMetaData;
 import org.jboss.ejb.metadata.spec.SecurityIdentityMetaData;
-import org.jboss.ejb.metadata.spec.SessionBeanMetaData;
 import org.jboss.javaee.metadata.jboss.AnnotationsMetaData;
 import org.jboss.javaee.metadata.jboss.IgnoreDependencyMetaData;
 import org.jboss.javaee.metadata.jboss.JndiRefsMetaData;
@@ -66,6 +63,7 @@
 import org.jboss.xb.annotations.JBossXmlModelGroup;
 
 import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlTransient;
 
 /**
  * EnterpriseBean.
@@ -76,9 +74,9 @@
 @JBossXmlModelGroup(
       kind=JBossXmlConstants.MODEL_GROUP_CHOICE,
       particles={
-            @JBossXmlModelGroup.Particle(element=@XmlElement(name="session"), type=SessionBeanMetaData.class),
-            @JBossXmlModelGroup.Particle(element=@XmlElement(name="entity"), type=EntityBeanMetaData.class),
-            @JBossXmlModelGroup.Particle(element=@XmlElement(name="message-driven"), type=MessageDrivenBeanMetaData.class)})
+            @JBossXmlModelGroup.Particle(element=@XmlElement(name="session"), type=JBossSessionBeanMetaData.class),
+            @JBossXmlModelGroup.Particle(element=@XmlElement(name="entity"), type=JBossEntityBeanMetaData.class),
+            @JBossXmlModelGroup.Particle(element=@XmlElement(name="message-driven"), type=JBossMessageDrivenBeanMetaData.class)})
 //@SchemaImpl({JBossSessionBeanMetaData.class, JBossEntityBeanMetaData.class, JBossMessageDrivenBeanMetaData.class})
 public abstract class JBossEnterpriseBeanMetaData extends NamedMetaDataWithDescriptionGroupWithOverride<EnterpriseBeanMetaData> implements Environment
 {
@@ -614,7 +612,6 @@
     * @param jndiEnvironmentRefsGroup the jndiEnvironmentRefsGroup.
     * @throws IllegalArgumentException for a null jndiEnvironmentRefsGroup
     */
-   @XmlElement(/*noInterceptor=true*/)
    public void setJbossJndiEnvironmentRefsGroup(JBossEnvironmentRefsGroupMetaData jndiEnvironmentRefsGroup)
    {
       if (jndiEnvironmentRefsGroup == null)
@@ -627,6 +624,7 @@
     * 
     * @return the mergedEnvironment.
     */
+   @XmlTransient
    public JBossEnvironmentRefsGroupMetaData getMergedEnvironment()
    {
       if (mergedEnvironment != null)

Modified: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnvironmentRefsGroupMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnvironmentRefsGroupMetaData.java	2007-07-31 15:29:20 UTC (rev 2473)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnvironmentRefsGroupMetaData.java	2007-08-01 16:41:05 UTC (rev 2474)
@@ -40,7 +40,11 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at JBossXmlModelGroup(name="jbossJndiEnvironmentRefsGroup")
+ at JBossXmlModelGroup(name="jbossJndiEnvironmentRefsGroup",
+      propOrder={"environmentEntries", "ejbReferences", "ejbLocalReferences",
+      "serviceReferences", "resourceReferences", "resourceEnvironmentReferences",
+      "messageDestinationReferences", "persistenceContextRefs", "persistenceUnitRefs",
+      "postConstructs", "preDestroys", "securityIdentity"})
 public class JBossEnvironmentRefsGroupMetaData extends EnvironmentRefsGroupMetaData
 {
    /** The serialVersionUID */

Modified: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossMetaData.java	2007-07-31 15:29:20 UTC (rev 2473)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossMetaData.java	2007-08-01 16:41:05 UTC (rev 2474)
@@ -24,6 +24,8 @@
 import org.jboss.ejb.metadata.spec.EjbJarMetaData;
 import org.jboss.javaee.metadata.support.IdMetaDataImplWithDescriptionGroupWithOverride;
 import org.jboss.logging.Logger;
+
+import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlTransient;
 
@@ -111,6 +113,7 @@
     * @param version the version.
     * @throws IllegalArgumentException for a null version
     */
+   @XmlAttribute
    public void setVersion(String version)
    {
       if (version == null)

Modified: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/LoaderRepositoryConfigMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/LoaderRepositoryConfigMetaData.java	2007-07-31 15:29:20 UTC (rev 2473)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/LoaderRepositoryConfigMetaData.java	2007-08-01 16:41:05 UTC (rev 2474)
@@ -74,7 +74,7 @@
    {
       if (configParserClass == null)
          throw new IllegalArgumentException("Null configParserClass");
-      this.configParserClass = configParserClass;
+      this.configParserClass = configParserClass.trim();
    }
 
    /**
@@ -98,6 +98,48 @@
    {
       if (config == null)
          throw new IllegalArgumentException("Null config");
-      this.config = config;
+      this.config = config.trim();
    }
+
+   @Override
+   public int hashCode()
+   {
+      final int PRIME = 31;
+      int result = super.hashCode();
+      result = PRIME * result + ((config == null) ? 0 : config.hashCode());
+      result = PRIME * result + ((configParserClass == null) ? 0 : configParserClass.hashCode());
+      return result;
+   }
+
+   @Override
+   public boolean equals(Object obj)
+   {
+      if (this == obj)
+         return true;
+      if (!super.equals(obj))
+         return false;
+      if (getClass() != obj.getClass())
+         return false;
+      final LoaderRepositoryConfigMetaData other = (LoaderRepositoryConfigMetaData) obj;
+      if (config == null)
+      {
+         if (other.config != null)
+            return false;
+      }
+      else if (!config.equals(other.config))
+         return false;
+      if (configParserClass == null)
+      {
+         if (other.configParserClass != null)
+            return false;
+      }
+      else if (!configParserClass.equals(other.configParserClass))
+         return false;
+      return true;
+   }
+   
+   public String toString()
+   {
+      return "[id=" + getId() + ", config=" + config + ", parser=" + configParserClass + "]";
+   }
 }

Modified: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/MethodAttributesMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/MethodAttributesMetaData.java	2007-07-31 15:29:20 UTC (rev 2473)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/MethodAttributesMetaData.java	2007-08-01 16:41:05 UTC (rev 2474)
@@ -24,9 +24,12 @@
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.jboss.javaee.metadata.support.AbstractMappedMetaData;
+import org.jboss.xb.annotations.JBossXmlChild;
+
 import javax.xml.bind.annotation.XmlType;
 
 @XmlType(name="method-attributesType")
+ at JBossXmlChild(name="method", type=MethodAttributeMetaData.class, unbounded=true)
 public class MethodAttributesMetaData extends AbstractMappedMetaData<MethodAttributeMetaData>
 {
    /** The serialVersionUID */

Modified: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ResourceManagersMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ResourceManagersMetaData.java	2007-07-31 15:29:20 UTC (rev 2473)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ResourceManagersMetaData.java	2007-08-01 16:41:05 UTC (rev 2474)
@@ -22,6 +22,8 @@
 package org.jboss.ejb.metadata.jboss;
 
 import org.jboss.javaee.metadata.support.MappedMetaDataWithDescriptions;
+import org.jboss.xb.annotations.JBossXmlChild;
+
 import javax.xml.bind.annotation.XmlType;
 
 /**
@@ -31,6 +33,7 @@
  * @version $Revision: 1.1 $
  */
 @XmlType(name="resource-managersType")
+ at JBossXmlChild(name="resource-manager", type=ResourceManagerMetaData.class, unbounded=true)
 public class ResourceManagersMetaData extends MappedMetaDataWithDescriptions<ResourceManagerMetaData>
 {
    /** The serialVersionUID */

Modified: jbossxb-builder/trunk/src/test/java/org/jboss/javaee/metadata/support/IdMetaDataImpl.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/javaee/metadata/support/IdMetaDataImpl.java	2007-07-31 15:29:20 UTC (rev 2473)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/javaee/metadata/support/IdMetaDataImpl.java	2007-08-01 16:41:05 UTC (rev 2474)
@@ -91,4 +91,33 @@
       else if (original.id != null)
          merged.setId(original.id);
    }
+
+   @Override
+   public int hashCode()
+   {
+      final int PRIME = 31;
+      int result = 1;
+      result = PRIME * result + ((id == null) ? 0 : id.hashCode());
+      return result;
+   }
+
+   @Override
+   public boolean equals(Object obj)
+   {
+      if (this == obj)
+         return true;
+      if (obj == null)
+         return false;
+      if (getClass() != obj.getClass())
+         return false;
+      final IdMetaDataImpl other = (IdMetaDataImpl) obj;
+      if (id == null)
+      {
+         if (other.id != null)
+            return false;
+      }
+      else if (!id.equals(other.id))
+         return false;
+      return true;
+   }
 }

Modified: jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/JBoss5xEverythingUnitTestCase.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/JBoss5xEverythingUnitTestCase.java	2007-07-31 15:29:20 UTC (rev 2473)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/JBoss5xEverythingUnitTestCase.java	2007-08-01 16:41:05 UTC (rev 2474)
@@ -184,13 +184,16 @@
       Set<LoaderRepositoryConfigMetaData> configs = loaderRepositoryMetaData.getLoaderRepositoryConfig();
       assertNotNull(configs);
       assertEquals(size, configs.size());
-      int count = 1;
-      for (LoaderRepositoryConfigMetaData config : configs)
+      for (int count = 1; count < configs.size(); ++count)
       {
-         assertId("loaderRepositoryConfig" + count, config);
-         assertEquals("loaderRepositoryConfigParserClass" + count, config.getConfigParserClass());
-         assertEquals("loaderRepositoryConfig" + count, trim(config.getConfig()));
-         ++count;
+         LoaderRepositoryConfigMetaData config = new LoaderRepositoryConfigMetaData();
+         config.setId("loaderRepositoryConfig" + count + "-id");
+         config.setConfig("loaderRepositoryConfig" + count);
+         config.setConfigParserClass("loaderRepositoryConfigParserClass" + count);
+         assertTrue(configs + " contains " + config, configs.contains(config));
+//         assertId("loaderRepositoryConfig" + count, config);
+//         assertEquals("loaderRepositoryConfigParserClass" + count, config.getConfigParserClass());
+//         assertEquals("loaderRepositoryConfig" + count, trim(config.getConfig()));
       }
    }
    




More information about the jboss-svn-commits mailing list