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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Oct 3 11:42:55 EDT 2007


Author: scott.stark at jboss.org
Date: 2007-10-03 11:42:55 -0400 (Wed, 03 Oct 2007)
New Revision: 65803

Added:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationMetaDataWrapper.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationsMetaDataWrapper.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/DescriptionsWrapper.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaDataWrapper.java
Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationMetaData.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss5xEverythingUnitTestCase.java
   projects/metadata/trunk/src/test/resources/log4j.xml
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss5xEverything_testEverything.xml
Log:
Add support for jboss/standardjboss delegation.

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationMetaData.java	2007-10-03 15:22:54 UTC (rev 65802)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationMetaData.java	2007-10-03 15:42:55 UTC (rev 65803)
@@ -146,6 +146,13 @@
    
    /** The depends */
    private Set<String> depends;
+   // Flags for
+   private boolean commitOptionWasSet;
+   private boolean callLoggingWasSet;
+   private boolean ejbStoreOnCleanWasSet;
+   private boolean insertAfterEjbPostCreateWasSet;
+   private boolean storeNotFlushedWasSet;
+   private boolean syncOnCommitOnlyWasSet;
    
    /**
     * Get the containerName.
@@ -201,6 +208,11 @@
    {
       return callLogging;
    }
+   @XmlTransient
+   public boolean callLoggingWasSet()
+   {
+      return callLoggingWasSet;
+   }
 
    /**
     * Set the callLogging.
@@ -210,6 +222,7 @@
    public void setCallLogging(boolean callLogging)
    {
       this.callLogging = callLogging;
+      callLoggingWasSet = true;
    }
 
    /**
@@ -221,6 +234,11 @@
    {
       return syncOnCommitOnly;
    }
+   @XmlTransient
+   public boolean syncOnCommitOnlyWasSet()
+   {
+      return syncOnCommitOnlyWasSet;
+   }
 
    /**
     * Set the syncOnCommitOnly.
@@ -230,6 +248,7 @@
    public void setSyncOnCommitOnly(boolean syncOnCommitOnly)
    {
       this.syncOnCommitOnly = syncOnCommitOnly;
+      syncOnCommitOnlyWasSet = true;
    }
 
    /**
@@ -241,6 +260,11 @@
    {
       return insertAfterEjbPostCreate;
    }
+   @XmlTransient
+   public boolean insertAfterEjbPostCreateWasSet()
+   {
+      return insertAfterEjbPostCreateWasSet;
+   }
 
    /**
     * Set the insertAfterEjbPostCreate.
@@ -250,6 +274,7 @@
    public void setInsertAfterEjbPostCreate(boolean insertAfterEjbPostCreate)
    {
       this.insertAfterEjbPostCreate = insertAfterEjbPostCreate;
+      insertAfterEjbPostCreateWasSet = true;
    }
 
    /**
@@ -261,6 +286,11 @@
    {
       return ejbStoreOnClean;
    }
+   @XmlTransient
+   public boolean ejbStoreOnCleanWasSet()
+   {
+      return ejbStoreOnCleanWasSet;
+   }
 
    /**
     * Set the ejbStoreOnClean.
@@ -271,6 +301,7 @@
    public void setEjbStoreOnClean(boolean ejbStoreOnClean)
    {
       this.ejbStoreOnClean = ejbStoreOnClean;
+      ejbStoreOnCleanWasSet = true;
    }
 
    /**
@@ -282,6 +313,11 @@
    {
       return storeNotFlushed;
    }
+   @XmlTransient
+   public boolean storeNotFlushedWasSet()
+   {
+      return storeNotFlushedWasSet;
+   }
 
    /**
     * Set the storeNotFlushed.
@@ -292,6 +328,7 @@
    public void setStoreNotFlushed(boolean storeNotFlushed)
    {
       this.storeNotFlushed = storeNotFlushed;
+      storeNotFlushedWasSet = true;
    }
 
    /**
@@ -441,6 +478,11 @@
    {
       return commitOption;
    }
+   @XmlTransient
+   boolean commitOptionWasSet()
+   {
+      return commitOptionWasSet;
+   }
 
    /**
     * Set the commitOption.
@@ -453,6 +495,7 @@
       if (commitOption == null)
          throw new IllegalArgumentException("Null commitOption");
       this.commitOption = commitOption;
+      commitOptionWasSet = true;
    }
 
    /**

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationMetaDataWrapper.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationMetaDataWrapper.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationMetaDataWrapper.java	2007-10-03 15:42:55 UTC (rev 65803)
@@ -0,0 +1,262 @@
+/*
+ * 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.ejb.jboss;
+
+import java.util.Set;
+
+import org.jboss.annotation.javaee.Descriptions;
+import org.w3c.dom.Element;
+
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class ContainerConfigurationMetaDataWrapper extends ContainerConfigurationMetaData
+{
+   private static final long serialVersionUID = 1;
+   private transient ContainerConfigurationMetaData primary;
+   private transient ContainerConfigurationMetaData defaults;
+
+   ContainerConfigurationMetaDataWrapper(ContainerConfigurationMetaData primary,
+      ContainerConfigurationMetaData defaults)
+   {
+      this.primary = primary;
+      this.defaults = defaults;
+   }
+
+   @Override
+   public Descriptions getDescriptions()
+   {
+      return primary.getDescriptions();
+   }
+
+   @Override
+   public String getKey()
+   {
+      return primary.getKey();
+   }
+
+   @Override
+   public String getName()
+   {
+      return primary.getName();
+   }
+
+   @Override
+   public String getId()
+   {
+      return primary.getId();
+   }
+
+   @Override
+   public ClusterConfigMetaData getClusterConfig()
+   {
+      ClusterConfigMetaData md = primary.getClusterConfig();
+      if (md == null)
+         md = defaults.getClusterConfig();
+      return md;
+   }
+
+   @Override
+   public CommitOption getCommitOption()
+   {
+      CommitOption co = defaults != null ? defaults.getCommitOption() : CommitOption.A;
+      if (primary.commitOptionWasSet())
+         co = primary.getCommitOption();
+      return co;
+   }
+
+   @Override
+   public Element getContainerCacheConf()
+   {
+      Element conf = primary.getContainerCacheConf();
+      if (conf == null && defaults != null)
+         conf = defaults.getContainerCacheConf();
+      return conf;
+   }
+
+   @Override
+   public Element getContainerInterceptors()
+   {
+      Element conf = primary.getContainerInterceptors();
+      if (conf == null && defaults != null)
+         conf = defaults.getContainerInterceptors();
+      return conf;
+   }
+
+   @Override
+   public String getContainerName()
+   {
+      return primary.getContainerName();
+   }
+
+   @Override
+   public Element getContainerPoolConf()
+   {
+      Element conf = primary.getContainerPoolConf();
+      if (conf == null && defaults != null)
+         conf = defaults.getContainerPoolConf();
+      return conf;
+   }
+
+   @Override
+   public String getDefaultInvokerName()
+   {
+      String name = primary.getDefaultInvokerName();
+      if (name == null && defaults != null)
+         name = defaults.getDefaultInvokerName();
+      return name;
+   }
+
+   @Override
+   public Set<String> getDepends()
+   {
+      return primary.getDepends();
+   }
+
+   @Override
+   public String getExtendsName()
+   {
+      return primary.getExtendsName();
+   }
+
+   @Override
+   public String getInstanceCache()
+   {
+      String name = primary.getInstanceCache();
+      if (name == null && defaults != null)
+         name = defaults.getInstanceCache();
+      return name;
+   }
+
+   @Override
+   public String getInstancePool()
+   {
+      String name = primary.getInstancePool();
+      if (name == null && defaults != null)
+         name = defaults.getInstancePool();
+      return name;
+   }
+
+   @Override
+   public Set<String> getInvokerProxyBindingNames()
+   {
+      Set<String> names = primary.getInvokerProxyBindingNames();
+      if (names == null || names.isEmpty() && defaults != null)
+         names = defaults.getInvokerProxyBindingNames();
+      return names;
+   }
+
+   @Override
+   public String getLockingPolicy()
+   {
+      String name = primary.getLockingPolicy();
+      if (name == null && defaults != null)
+         name = defaults.getLockingPolicy();
+      return name;
+   }
+
+   @Override
+   public int getOptiondRefreshRate()
+   {
+      return primary.getOptiondRefreshRate();
+   }
+
+   @Override
+   public long getOptiondRefreshRateMillis()
+   {
+      return primary.getOptiondRefreshRateMillis();
+   }
+
+   @Override
+   public String getPersistenceManager()
+   {
+      String name = primary.getPersistenceManager();
+      if (name == null && defaults != null)
+         name = defaults.getPersistenceManager();
+      return name;
+   }
+
+   @Override
+   public String getSecurityDomain()
+   {
+      String name = primary.getSecurityDomain();
+      if (name == null && defaults != null)
+         name = defaults.getSecurityDomain();
+      return name;
+   }
+
+   @Override
+   public String getWebClassLoader()
+   {
+      String name = primary.getWebClassLoader();
+      if (name == null && defaults != null)
+         name = defaults.getWebClassLoader();
+      return name;
+   }
+
+   @Override
+   public boolean isCallLogging()
+   {
+      boolean flag = defaults != null ? defaults.isCallLogging() : false;
+      if (primary.callLoggingWasSet())
+         flag = primary.isCallLogging();
+      return flag;
+   }
+
+   @Override
+   public boolean isEjbStoreOnClean()
+   {
+      boolean flag = defaults != null ? defaults.isEjbStoreOnClean() : false;
+      if (primary.ejbStoreOnCleanWasSet())
+         flag = primary.isEjbStoreOnClean();
+      return flag;
+   }
+
+   @Override
+   public boolean isInsertAfterEjbPostCreate()
+   {
+      boolean flag = defaults != null ? defaults.isInsertAfterEjbPostCreate() : false;
+      if (primary.insertAfterEjbPostCreateWasSet())
+         flag = primary.isInsertAfterEjbPostCreate();
+      return flag;
+   }
+
+   @Override
+   public boolean isStoreNotFlushed()
+   {
+      boolean flag = defaults != null ? defaults.isStoreNotFlushed() : false;
+      if (primary.storeNotFlushedWasSet())
+         flag = primary.isStoreNotFlushed();
+      return flag;
+   }
+
+   @Override
+   public boolean isSyncOnCommitOnly()
+   {
+      boolean flag = defaults != null ? defaults.isSyncOnCommitOnly() : false;
+      if (primary.syncOnCommitOnlyWasSet())
+         flag = primary.isSyncOnCommitOnly();
+      return flag;
+   }
+
+}


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

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationsMetaDataWrapper.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationsMetaDataWrapper.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationsMetaDataWrapper.java	2007-10-03 15:42:55 UTC (rev 65803)
@@ -0,0 +1,134 @@
+/*
+ * 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.ejb.jboss;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Set;
+
+import org.jboss.annotation.javaee.Descriptions;
+import org.jboss.metadata.ejb.jboss.ContainerConfigurationMetaData;
+import org.jboss.metadata.ejb.jboss.ContainerConfigurationsMetaData;
+
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class ContainerConfigurationsMetaDataWrapper extends ContainerConfigurationsMetaData
+{
+   private static final long serialVersionUID = 1;
+   private ContainerConfigurationsMetaData primary;
+   private ContainerConfigurationsMetaData defaults;
+   private HashMap<String, ContainerConfigurationMetaData> merged = new HashMap<String, ContainerConfigurationMetaData>();
+
+   ContainerConfigurationsMetaDataWrapper(ContainerConfigurationsMetaData primary,
+      ContainerConfigurationsMetaData defaults)
+   {
+      this.primary = primary;
+      this.defaults = defaults;
+      for(String key : defaults.keySet())
+      {
+         ContainerConfigurationMetaData md = defaults.get(key);
+         String extendsName = md.getExtendsName();
+         if (extendsName != null)
+         {
+            ContainerConfigurationMetaData parent = defaults.get(extendsName);
+            ContainerConfigurationMetaDataWrapper wrapper = new ContainerConfigurationMetaDataWrapper(md, parent);
+            md = wrapper;
+         }
+         merged.put(key, md);
+      }
+      for(String key : primary.keySet())
+      {
+         ContainerConfigurationMetaData md = primary.get(key);
+         String extendsName = md.getExtendsName();
+         if (extendsName != null)
+         {
+            ContainerConfigurationMetaData parent = primary.get(extendsName);
+            if (parent == null)
+               parent = defaults.get(extendsName);
+            ContainerConfigurationMetaDataWrapper wrapper = new ContainerConfigurationMetaDataWrapper(md, parent);
+            md = wrapper;
+         }
+         merged.put(key, md);
+      }
+   }
+
+   public boolean containsKey(String key)
+   {
+      return merged.containsKey(key);
+   }
+
+   public ContainerConfigurationMetaData get(String key)
+   {
+      ContainerConfigurationMetaData ccmd = merged.get(key);
+      return ccmd;
+   }
+
+   public Descriptions getDescriptions()
+   {
+      return new DescriptionsWrapper(primary.getDescriptions(), defaults.getDescriptions());
+   }
+
+   public String getId()
+   {
+      return primary.getId();
+   }
+
+   public boolean isEmpty()
+   {
+      boolean isEmpty = merged.isEmpty();
+      return isEmpty;
+   }
+
+   public Iterator<ContainerConfigurationMetaData> iterator()
+   {
+      return merged.values().iterator();
+   }
+
+   public Set<String> keySet()
+   {
+      return merged.keySet();
+   }
+
+   
+   @Override
+   public int size()
+   {
+      return merged.size();
+   }
+
+   public Object[] toArray()
+   {
+      return merged.values().toArray();
+   }
+
+   public <X> X[] toArray(X[] a)
+   {
+      return merged.values().toArray(a);
+   }
+
+   public String toString()
+   {
+      return merged.toString();
+   }
+}


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

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/DescriptionsWrapper.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/DescriptionsWrapper.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/DescriptionsWrapper.java	2007-10-03 15:42:55 UTC (rev 65803)
@@ -0,0 +1,69 @@
+/*
+ * 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.ejb.jboss;
+
+import java.lang.annotation.Annotation;
+import java.util.ArrayList;
+
+import org.jboss.annotation.javaee.Description;
+import org.jboss.annotation.javaee.Descriptions;
+
+/**
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class DescriptionsWrapper
+   implements Descriptions
+{
+   private static final long serialVersionUID = 1;
+   private Description[] value;
+
+   DescriptionsWrapper(Descriptions primary, Descriptions defaults)
+   {
+      ArrayList<Description> tmp = new ArrayList<Description>();
+      Description[] d = primary != null ? primary.value() : null;
+      if (d != null)
+      {
+         for(Description desc : d)
+            tmp.add(desc);
+      }
+      d = defaults != null ? defaults.value() : null;
+      if (d != null)
+      {
+         for(Description desc : d)
+            tmp.add(desc);
+      }
+      value = new Description[tmp.size()];
+      tmp.toArray(value);
+   }
+
+   public Class<? extends Annotation> annotationType()
+   {
+      return Descriptions.class;
+   }
+
+   public Description[] value()
+   {
+      return value;
+   }
+}


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

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaDataWrapper.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaDataWrapper.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaDataWrapper.java	2007-10-03 15:42:55 UTC (rev 65803)
@@ -0,0 +1,221 @@
+/*
+ * 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.ejb.jboss;
+
+import org.jboss.metadata.ejb.jboss.ContainerConfigurationMetaData;
+import org.jboss.metadata.ejb.jboss.ContainerConfigurationsMetaData;
+import org.jboss.metadata.ejb.jboss.InvokerProxyBindingMetaData;
+import org.jboss.metadata.ejb.jboss.InvokerProxyBindingsMetaData;
+import org.jboss.metadata.ejb.jboss.JBossAssemblyDescriptorMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.ejb.jboss.LoaderRepositoryMetaData;
+import org.jboss.metadata.ejb.jboss.ResourceManagerMetaData;
+import org.jboss.metadata.ejb.jboss.ResourceManagersMetaData;
+import org.jboss.metadata.ejb.jboss.WebservicesMetaData;
+import org.jboss.metadata.ejb.spec.EjbJarMetaData;
+import org.jboss.metadata.javaee.spec.DescriptionGroupMetaData;
+
+/**
+ * Read only wrapper that combines a primary and standardjboss.xml defaults into
+ * a unified view.
+ *
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class JBossMetaDataWrapper extends JBossMetaData
+{
+   private static final long serialVersionUID = 1;
+   private JBossMetaData primary;
+   private JBossMetaData defaults;
+   private ContainerConfigurationsMetaData configurationsWrapper;
+
+   public JBossMetaDataWrapper(JBossMetaData primary, JBossMetaData defaults)
+   {
+      this.primary = primary;
+      this.defaults = defaults;
+      configurationsWrapper = new ContainerConfigurationsMetaDataWrapper(primary.getContainerConfigurations(),
+            defaults.getContainerConfigurations());
+      wireOverrides();
+   }
+
+   @Override
+   public JBossAssemblyDescriptorMetaData getAssemblyDescriptor()
+   {
+      return primary.getAssemblyDescriptor();
+   }
+
+   @Override
+   public ContainerConfigurationMetaData getContainerConfiguration(String name)
+   {
+      ContainerConfigurationMetaData ccmd = configurationsWrapper.get(name);
+      return ccmd;
+   }
+
+   @Override
+   public ContainerConfigurationsMetaData getContainerConfigurations()
+   {
+      return configurationsWrapper;
+   }
+
+   @Override
+   public JBossEnterpriseBeanMetaData getEnterpriseBean(String name)
+   {
+      return primary.getEnterpriseBean(name);
+   }
+
+   @Override
+   public JBossEnterpriseBeansMetaData getEnterpriseBeans()
+   {
+      return primary.getEnterpriseBeans();
+   }
+
+   @Override
+   public InvokerProxyBindingMetaData getInvokerProxyBinding(String name)
+   {
+      return primary.getInvokerProxyBinding(name);
+   }
+
+   @Override
+   public InvokerProxyBindingsMetaData getInvokerProxyBindings()
+   {
+      return primary.getInvokerProxyBindings();
+   }
+
+   @Override
+   public String getJmxName()
+   {
+      return primary.getJmxName();
+   }
+
+   @Override
+   public LoaderRepositoryMetaData getLoaderRepository()
+   {
+      return primary.getLoaderRepository();
+   }
+
+   @Override
+   public JBossAssemblyDescriptorMetaData getMergedAssemblyDescriptor()
+   {
+      return primary.getMergedAssemblyDescriptor();
+   }
+
+   @Override
+   public JBossEnterpriseBeanMetaData getMergedEnterpriseBean(String name)
+   {
+      return primary.getMergedEnterpriseBean(name);
+   }
+
+   @Override
+   public JBossEnterpriseBeansMetaData getMergedEnterpriseBeans()
+   {
+      return primary.getMergedEnterpriseBeans();
+   }
+
+   @Override
+   public ResourceManagerMetaData getResourceManager(String name)
+   {
+      return primary.getResourceManager(name);
+   }
+
+   @Override
+   public ResourceManagersMetaData getResourceManagers()
+   {
+      return primary.getResourceManagers();
+   }
+
+   @Override
+   public String getSecurityDomain()
+   {
+      return primary.getSecurityDomain();
+   }
+
+   @Override
+   public String getUnauthenticatedPrincipal()
+   {
+      String unauthenticatedPrincipal = primary.getUnauthenticatedPrincipal();
+      if (unauthenticatedPrincipal == null)
+         unauthenticatedPrincipal = defaults.getUnauthenticatedPrincipal();
+      return unauthenticatedPrincipal;
+   }
+
+   @Override
+   public String getVersion()
+   {
+      return primary.getVersion();
+   }
+
+   @Override
+   public WebservicesMetaData getWebservices()
+   {
+      return primary.getWebservices();
+   }
+
+   @Override
+   public boolean isExceptionOnRollback()
+   {
+      return primary.isExceptionOnRollback();
+   }
+
+   @Override
+   public boolean isExcludeMissingMethods()
+   {
+      return primary.isExcludeMissingMethods();
+   }
+
+   @Override
+   public EjbJarMetaData getOverridenMetaData()
+   {
+      return primary.getOverridenMetaData();
+   }
+
+   @Override
+   public void setOverridenMetaData(EjbJarMetaData data)
+   {
+      primary.setOverridenMetaData(data);
+   }
+
+   @Override
+   public DescriptionGroupMetaData getDescriptionGroup()
+   {
+      return primary.getDescriptionGroup();
+   }
+
+   @Override
+   public String getId()
+   {
+      return primary.getId();
+   }
+
+   @Override
+   public String toString()
+   {
+      return primary.toString();
+   }
+
+   protected void wireOverrides()
+   {
+      JBossEnterpriseBeansMetaData beans = primary.getEnterpriseBeans();
+      beans.setJBossMetaData(this);
+   }
+}


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

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss5xEverythingUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss5xEverythingUnitTestCase.java	2007-10-03 15:22:54 UTC (rev 65802)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss5xEverythingUnitTestCase.java	2007-10-03 15:42:55 UTC (rev 65803)
@@ -48,6 +48,7 @@
 import org.jboss.metadata.ejb.jboss.WebserviceDescriptionMetaData;
 import org.jboss.metadata.ejb.jboss.WebserviceDescriptionsMetaData;
 import org.jboss.metadata.ejb.jboss.WebservicesMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaDataWrapper;
 import org.jboss.metadata.ejb.spec.AssemblyDescriptorMetaData;
 import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
 import org.jboss.metadata.ejb.spec.EjbJarMetaData;
@@ -82,6 +83,9 @@
  */
 public class JBoss5xEverythingUnitTestCase extends AbstractEJBEverythingTest
 {
+   /** Is there a standardjboss.xml default available */
+   private boolean hasStandardJBoss = false;
+
    public static Test suite()
    {
       return suite(JBoss5xEverythingUnitTestCase.class);
@@ -135,7 +139,8 @@
    {
       //enableTrace("org.jboss.xb");
       //enableTrace("org.jboss.xb.builder");
-      JBoss50MetaData jbossMetaData = unmarshal();      
+      JBoss50MetaData jbossMetaData = unmarshal();
+      hasStandardJBoss = false;
       assertEverything(jbossMetaData);
    }
    public void testStandard() throws Exception
@@ -144,10 +149,12 @@
       //enableTrace("org.jboss.xb.builder");
       JBoss50MetaData stdMetaData = unmarshal();
       JBoss50MetaData jbossMetaData = unmarshal("JBoss5xEverything_testEverything.xml", JBoss50MetaData.class, null);
-      assertEverything(stdMetaData);
+      JBossMetaDataWrapper wrapper = new JBossMetaDataWrapper(jbossMetaData, stdMetaData);
+      hasStandardJBoss = true;
+      assertEverything(wrapper);
    }
 
-   public void assertEverything(JBoss50MetaData jbossMetaData)
+   public void assertEverything(JBossMetaData jbossMetaData)
    {
       assertVersion(jbossMetaData);
       assertId("jboss", jbossMetaData);
@@ -167,9 +174,11 @@
       assertInvokerProxyBindings(jbossMetaData.getInvokerProxyBindings());
       assertInvokerProxyBinding("invokerProxyBinding1", 1, jbossMetaData.getInvokerProxyBinding("invokerProxyBinding1Name"));
       assertInvokerProxyBinding("invokerProxyBinding2", 2, jbossMetaData.getInvokerProxyBinding("invokerProxyBinding2Name"));
-      fixUpContainerConfigurations(jbossMetaData);
+      int dummyConfigs = fixUpContainerConfigurations(jbossMetaData);
+      if (hasStandardJBoss)
+         assertEquals("There should be no dummy configs", 0, dummyConfigs);
       assertContainerConfigurations(jbossMetaData);
-      
+
       fixUpEjbJar(jbossMetaData);
       //ApplicationMetaData application = new ApplicationMetaData(jbossMetaData);
       //assertEquals("jboss-jmx-name", application.getJmxName());
@@ -200,7 +209,7 @@
       }
    }
    
-   private void assertVersion(JBoss50MetaData jbossMetaData)
+   private void assertVersion(JBossMetaData jbossMetaData)
    {
       assertEquals("5.0", jbossMetaData.getVersion());
    }
@@ -445,10 +454,12 @@
 
       assertEquals(prefix + "AOPDomain", session.getAopDomainName());
       
-      // TODO DOM cache-config
-      
-      // TODO DOM pool-config
-      
+      if (this.hasStandardJBoss)
+      {
+         ContainerConfigurationMetaData ccmd = session.determineContainerConfiguration();
+         this.assertContainerPoolConf(prefix, ccmd.getContainerPoolConf());
+      }
+
       if (first)
          assertTrue(session.isConcurrent());
       else
@@ -801,36 +812,84 @@
       assertNull(mdb.getJndiRefs());
    }
 
-   private void fixUpContainerConfigurations(JBossMetaData jbossMetaData)
+   /**
+    * Add dummy configurations refenced by the testEverything.xml descriptor
+    * @param jbossMetaData
+    * @return the number of dummy configs added
+    */
+   private int fixUpContainerConfigurations(JBossMetaData jbossMetaData)
    {
       ContainerConfigurationsMetaData configurations = jbossMetaData.getContainerConfigurations();
       assertNotNull(configurations);
-      fixUpContainerConfiguration(ContainerConfigurationMetaData.STATELESS, configurations);
-      fixUpContainerConfiguration(ContainerConfigurationMetaData.CMP_2x, configurations);
-      fixUpContainerConfiguration(ContainerConfigurationMetaData.MESSAGE_INFLOW_DRIVEN, configurations);
-      fixUpContainerConfiguration("session1ConfigurationName", configurations);
-      fixUpContainerConfiguration("session2ConfigurationName", configurations);
-      fixUpContainerConfiguration("entity1ConfigurationName", configurations);
-      fixUpContainerConfiguration("entity2ConfigurationName", configurations);
-      fixUpContainerConfiguration("mdb1ConfigurationName", configurations);
-      fixUpContainerConfiguration("mdb2ConfigurationName", configurations);
+      int fixCount = 0;
+
+      if (fixUpContainerConfiguration(ContainerConfigurationMetaData.STATELESS, configurations) )
+      {
+         getLog().debug("Added dummy config: "+ContainerConfigurationMetaData.STATELESS);
+         fixCount ++;
+      }
+      if (fixUpContainerConfiguration(ContainerConfigurationMetaData.CMP_2x, configurations) )
+      {
+         getLog().debug("Added dummy config: "+ContainerConfigurationMetaData.CMP_2x);
+         fixCount ++;
+      }
+      if (fixUpContainerConfiguration(ContainerConfigurationMetaData.MESSAGE_INFLOW_DRIVEN, configurations) )
+      {
+         getLog().debug("Added dummy config: "+ContainerConfigurationMetaData.MESSAGE_INFLOW_DRIVEN);
+         fixCount ++;
+      }
+      if (fixUpContainerConfiguration("session1ConfigurationName", configurations) )
+      {
+         getLog().debug("Added dummy config: "+"session1ConfigurationName");
+         fixCount ++;
+      }
+      if (fixUpContainerConfiguration("session2ConfigurationName", configurations) )
+      {
+         getLog().debug("Added dummy config: "+"session2ConfigurationName");
+         fixCount ++;
+      }
+      if (fixUpContainerConfiguration("entity1ConfigurationName", configurations) )
+      {
+         getLog().debug("Added dummy config: "+"entity1ConfigurationName");
+         fixCount ++;
+      }
+      if (fixUpContainerConfiguration("entity2ConfigurationName", configurations) )
+      {
+         getLog().debug("Added dummy config: "+"entity2ConfigurationName");
+         fixCount ++;
+      }
+      if (fixUpContainerConfiguration("mdb1ConfigurationName", configurations) )
+      {
+         getLog().debug("Added dummy config: "+"mdb1ConfigurationName");
+         fixCount ++;
+      }
+      if (fixUpContainerConfiguration("mdb2ConfigurationName", configurations) )
+      {
+         getLog().debug("Added dummy config: "+"mdb2ConfigurationName");
+         fixCount ++;
+      }
+      return fixCount;
    }
-   
-   private void fixUpContainerConfiguration(String name, ContainerConfigurationsMetaData configurations)
+
+   private boolean fixUpContainerConfiguration(String name, ContainerConfigurationsMetaData configurations)
    {
+      boolean added = false;
       if (configurations.get(name) == null)
       {
          ContainerConfigurationMetaData configuration = new ContainerConfigurationMetaData();
          configuration.setName(name);
          configurations.add(configuration);
+         added = true;
       }
+      return added;
    }
    
    private void assertContainerConfigurations(JBossMetaData jbossMetaData)
    {
       ContainerConfigurationsMetaData configurations = jbossMetaData.getContainerConfigurations();
       assertNotNull(configurations);
-      assertEquals(14, configurations.size());
+      int expectedSize = hasStandardJBoss ? 32 : 14;
+      assertEquals(expectedSize, configurations.size());
       assertNullContainerConfiguration("containerConfiguration0", jbossMetaData);
       assertFullContainerConfiguration("containerConfiguration1", jbossMetaData, true);
       assertFullContainerConfiguration("containerConfiguration2", jbossMetaData, false);
@@ -984,11 +1043,18 @@
       assertEquals("0.75", getElementText("cache-load-factor", policyConf));
    }
 
+   /**
+    * Validate the container-configuration/container-pool-conf
+    * @param prefix
+    * @param config
+    */
    private void assertContainerPoolConf(String prefix, Element config)
    {
       assertNotNull(prefix+" container-pool-conf", config);
       String id = config.getAttribute("id");
-      assertEquals(prefix+"-pool-conf", id);
+      // standardjboss.xml does not specify ids
+      if (hasStandardJBoss == false || id.length() > 0)
+         assertEquals(prefix+"-pool-conf", id);
       assertEquals("100", getElementText("MaximumSize", config));
    }
 

Modified: projects/metadata/trunk/src/test/resources/log4j.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/log4j.xml	2007-10-03 15:22:54 UTC (rev 65802)
+++ projects/metadata/trunk/src/test/resources/log4j.xml	2007-10-03 15:42:55 UTC (rev 65803)
@@ -60,7 +60,7 @@
   <!-- ============================== -->
 
   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
-    <!--param name="Threshold" value="FATAL"/-->
+    <param name="Threshold" value="DEBUG"/>
     <param name="Target" value="System.out"/>
 
     <layout class="org.apache.log4j.PatternLayout">
@@ -70,52 +70,15 @@
   </appender>
 
 
-  <!-- ====================== -->
-  <!-- More Appender examples -->
-  <!-- ====================== -->
-
-  <!-- Buffer events and log them asynchronously
-  <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
-    <appender-ref ref="FILE"/>
-    <appender-ref ref="CONSOLE"/>
-  </appender>
-  -->
-
-  <!-- EMail events to an administrator
-  <appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
-    <param name="Threshold" value="ERROR"/>
-    <param name="To" value="admin at myhost.domain.com"/>
-    <param name="From" value="nobody at myhost.domain.com"/>
-    <param name="Subject" value="JBoss Sever Errors"/>
-    <param name="SMTPHost" value="localhost"/>
-    <param name="BufferSize" value="10"/>
-  </appender>
-  -->
-
-  <!-- Syslog events
-  <appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender">
-    <param name="Facility" value="LOCAL7"/>
-    <param name="FacilityPrinting" value="true"/>
-    <param name="SyslogHost" value="localhost"/>
-  </appender>
-  -->
-
-  <!-- Log events to JMS (requires a topic to be created)
-  <appender name="JMS" class="org.apache.log4j.net.JMSAppender">
-    <param name="Threshold" value="ERROR"/>
-    <param name="TopicConnectionFactoryBindingName" value="java:/ConnectionFactory"/>
-    <param name="TopicBindingName" value="topic/MyErrorsTopic"/>
-  </appender>
-  -->
-
   <!-- ================ -->
   <!-- Limit categories -->
   <!-- ================ -->
 
-  <!-- Limit JBoss categories to INFO -->
+  <!-- Limit JBoss categories to INFO
   <category name="org.jboss">
     <priority value="INFO" class="org.jboss.logging.XLevel"/>
   </category>
+  -->
 
   <!-- Increase the priority threshold for the DefaultDS category
   <category name="DefaultDS">

Modified: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss5xEverything_testEverything.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss5xEverything_testEverything.xml	2007-10-03 15:22:54 UTC (rev 65802)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss5xEverything_testEverything.xml	2007-10-03 15:42:55 UTC (rev 65803)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
+<!-- $Id:$ -->
 <jboss xmlns="http://www.jboss.com/xml/ns/javaee"
        xmlns:jee="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -2732,6 +2732,26 @@
       <jee:description>en-container-configurations-desc</jee:description>
       <jee:description xml:lang="fr">fr-container-configurations-desc</jee:description>
       <jee:description xml:lang="de">de-container-configurations-desc</jee:description>
+
+      <container-configuration extends="Standard Stateless SessionBean">
+         <container-name>session1ConfigurationName</container-name>
+      </container-configuration>
+      <container-configuration extends="Standard Stateless SessionBean">
+         <container-name>session2ConfigurationName</container-name>
+      </container-configuration>
+      <container-configuration extends="Standard CMP 2.x EntityBean">
+         <container-name>entity1ConfigurationName</container-name>
+      </container-configuration>
+      <container-configuration extends="Standard CMP 2.x EntityBean">
+         <container-name>entity2ConfigurationName</container-name>
+      </container-configuration>
+      <container-configuration extends="Standard Message Inflow Driven Bean">
+         <container-name>mdb1ConfigurationName</container-name>
+      </container-configuration>
+      <container-configuration extends="Standard Message Inflow Driven Bean">
+         <container-name>mdb2ConfigurationName</container-name>
+      </container-configuration>
+
       <container-configuration>
          <container-name>containerConfiguration0Name</container-name>
       </container-configuration>




More information about the jboss-cvs-commits mailing list