[jboss-cvs] JBossAS SVN: r66765 - projects/metadata/trunk/src/main/java/org/jboss/metadata.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Nov 6 08:15:58 EST 2007


Author: alex.loubyansky at jboss.com
Date: 2007-11-06 08:15:58 -0500 (Tue, 06 Nov 2007)
New Revision: 66765

Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ApplicationMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/BeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/BeanMetaDataIterator.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/EntityMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/MessageDrivenMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/SessionMetaData.java
Log:
make sure all the old-style beans in a module get the same application metadata instance (which also serves as a registry for 'plugin' data, e.g. cmp metadata)

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ApplicationMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ApplicationMetaData.java	2007-11-06 13:10:43 UTC (rev 66764)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ApplicationMetaData.java	2007-11-06 13:15:58 UTC (rev 66765)
@@ -174,7 +174,7 @@
    public Iterator<BeanMetaData> getEnterpriseBeans()
    {
       JBossEnterpriseBeansMetaData beans = (JBossEnterpriseBeansMetaData) getDelegate().getEnterpriseBeans();
-      return new BeanMetaDataIterator(beans);
+      return new BeanMetaDataIterator(this, beans);
    }
 
    /**
@@ -191,7 +191,7 @@
       JBossEnterpriseBeanMetaData bean = (JBossEnterpriseBeanMetaData) beans.get(ejbName);
       if (bean == null)
          return null;
-      return BeanMetaData.create(bean);
+      return BeanMetaData.create(this, bean);
    }
 
    /**
@@ -569,6 +569,7 @@
    public void addPluginData(String pluginName, Object pluginData)
    {
       plugins.put(pluginName, pluginData);
+      System.out.println("addPluginData: " + plugins + " " + hashCode());
    }
 
    /**
@@ -580,6 +581,7 @@
     */
    public Object getPluginData(String pluginName)
    {
+      System.out.println("getPluginData: " + plugins + " " + hashCode());
       return plugins.get(pluginName);
    }
 

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/BeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/BeanMetaData.java	2007-11-06 13:10:43 UTC (rev 66764)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/BeanMetaData.java	2007-11-06 13:15:58 UTC (rev 66765)
@@ -90,6 +90,9 @@
    /** The transaction type cache */
    private ConcurrentHashMap<Method, Byte> methodTx = new ConcurrentHashMap<Method, Byte>();
    
+   /** application metadata as a field rather than a local variable to hold plugin data (e.g. for cmp)*/
+   private ApplicationMetaData applicationMetaData;
+   
    /**
     * Create a new BeanMetaData.
     *
@@ -97,16 +100,16 @@
     * @return the metadata
     * @throws IllegalArgumentException for a null delegate or an unknown delegate
     */
-   public static BeanMetaData create(JBossEnterpriseBeanMetaData delegate)
+   public static BeanMetaData create(ApplicationMetaData app, JBossEnterpriseBeanMetaData delegate)
    {
       if (delegate == null)
          throw new IllegalArgumentException("Null delegate");
       if (delegate.isSession())
-         return new SessionMetaData(delegate);
+         return new SessionMetaData(app, delegate);
       if (delegate.isMessageDriven())
-         return new MessageDrivenMetaData(delegate);
+         return new MessageDrivenMetaData(app, delegate);
       if (delegate.isEntity())
-         return new EntityMetaData(delegate);
+         return new EntityMetaData(app, delegate);
       throw new IllegalArgumentException("Unknown delegate: " + delegate);
    }
    
@@ -116,9 +119,10 @@
     * @param delegate the delegate
     * @throws IllegalArgumentException for a null delegate
     */
-   protected BeanMetaData(JBossEnterpriseBeanMetaData delegate)
+   protected BeanMetaData(ApplicationMetaData app, JBossEnterpriseBeanMetaData delegate)
    {
       super(delegate);
+      this.applicationMetaData = app;
    }
    
    /**
@@ -496,7 +500,9 @@
     */
    public ApplicationMetaData getApplicationMetaData()
    {
-      return new ApplicationMetaData(getDelegate().getJBossMetaDataWithCheck());
+      if(applicationMetaData == null)
+         throw new IllegalStateException("ApplicationMetaData has not been initialized.");
+      return applicationMetaData;
    }
 
    /**

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/BeanMetaDataIterator.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/BeanMetaDataIterator.java	2007-11-06 13:10:43 UTC (rev 66764)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/BeanMetaDataIterator.java	2007-11-06 13:15:58 UTC (rev 66765)
@@ -34,10 +34,13 @@
 public class BeanMetaDataIterator
    implements Iterator<BeanMetaData>
 {
-   Iterator iter;
-   BeanMetaDataIterator(JBossEnterpriseBeansMetaData beans)
+   private final Iterator iter;
+   private final ApplicationMetaData app;
+   
+   BeanMetaDataIterator(ApplicationMetaData app, JBossEnterpriseBeansMetaData beans)
    {
       iter = beans.iterator();
+      this.app = app;
    }
 
    public boolean hasNext()
@@ -48,7 +51,7 @@
    public BeanMetaData next()
    {
       JBossEnterpriseBeanMetaData bean = (JBossEnterpriseBeanMetaData) iter.next();
-      BeanMetaData bmd = BeanMetaData.create(bean);
+      BeanMetaData bmd = BeanMetaData.create(app, bean);
       return bmd;
    }
 

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/EntityMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/EntityMetaData.java	2007-11-06 13:10:43 UTC (rev 66764)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/EntityMetaData.java	2007-11-06 13:15:58 UTC (rev 66765)
@@ -65,9 +65,9 @@
     * @param delegate the delegate
     * @throws IllegalArgumentException for a null delegate
     */
-   protected EntityMetaData(JBossEnterpriseBeanMetaData delegate)
+   protected EntityMetaData(ApplicationMetaData app, JBossEnterpriseBeanMetaData delegate)
    {
-      super(delegate);
+      super(app, delegate);
    }
    
    /**

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/MessageDrivenMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/MessageDrivenMetaData.java	2007-11-06 13:10:43 UTC (rev 66764)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/MessageDrivenMetaData.java	2007-11-06 13:15:58 UTC (rev 66765)
@@ -85,9 +85,9 @@
     * @param delegate the delegate
     * @throws IllegalArgumentException for a null delegate
     */
-   protected MessageDrivenMetaData(JBossEnterpriseBeanMetaData delegate)
+   protected MessageDrivenMetaData(ApplicationMetaData app, JBossEnterpriseBeanMetaData delegate)
    {
-      super(delegate);
+      super(app, delegate);
    }
    
    /**

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/SessionMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/SessionMetaData.java	2007-11-06 13:10:43 UTC (rev 66764)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/SessionMetaData.java	2007-11-06 13:15:58 UTC (rev 66765)
@@ -60,9 +60,9 @@
     * @param delegate the delegate
     * @throws IllegalArgumentException for a null delegate
     */
-   protected SessionMetaData(JBossEnterpriseBeanMetaData delegate)
+   protected SessionMetaData(ApplicationMetaData app, JBossEnterpriseBeanMetaData delegate)
    {
-      super(delegate);
+      super(app, delegate);
    }
    
    /**




More information about the jboss-cvs-commits mailing list