[jboss-cvs] JBossAS SVN: r71595 - in projects/metadata/trunk/src: test/java/org/jboss/test/metadata/ejb and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Apr 2 08:57:15 EDT 2008


Author: alex.loubyansky at jboss.com
Date: 2008-04-02 08:57:14 -0400 (Wed, 02 Apr 2008)
New Revision: 71595

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/JBossEnterpriseBeansMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeEverythingUnitTestCase.java
Log:
JBMETA-11

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	2008-04-02 12:50:14 UTC (rev 71594)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java	2008-04-02 12:57:14 UTC (rev 71595)
@@ -1519,6 +1519,10 @@
       }
    }
 
+   public void checkValid()
+   {
+   }
+   
    /**
     * Get the assembly descriptor
     * 

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeansMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeansMetaData.java	2008-04-02 12:50:14 UTC (rev 71594)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeansMetaData.java	2008-04-02 12:57:14 UTC (rev 71595)
@@ -166,7 +166,13 @@
             }
          }
       }
+    
+      // check that the merged bean metadata is valid
+      java.util.Iterator<JBossEnterpriseBeanMetaData> i = iterator();
+      while(i.hasNext())
+      {
+         JBossEnterpriseBeanMetaData ejb = i.next();
+         ejb.checkValid();
+      }
    }
-
-
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java	2008-04-02 12:50:14 UTC (rev 71594)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java	2008-04-02 12:57:14 UTC (rev 71595)
@@ -902,24 +902,10 @@
             jndiName = joverride.getJndiName();
          // homeJndiName
          if(joverride.homeJndiName != null)
-         {
-            if(joverride.getEjbJarMetaData().isEJB3x() ||
-               soriginal != null && soriginal.getEjbJarMetaData().isEJB3x())
-               throw new IllegalStateException(
-                  "EJB3 bean " + getEjbName() + " defines home-jndi-name '" +
-                  joverride.homeJndiName + "' in jboss.xml");
             homeJndiName = joverride.homeJndiName;
-         }
          // localHomeJndiName
          if(joverride.localHomeJndiName != null)
-         {
-            if(joverride.getEjbJarMetaData().isEJB3x() ||
-               soriginal != null && soriginal.getEjbJarMetaData().isEJB3x())
-               throw new IllegalStateException(
-                  "EJB3 bean " + getEjbName() + " defines local-home-jndi-name '" +
-                  joverride.localHomeJndiName + "' in jboss.xml");
             localHomeJndiName = joverride.localHomeJndiName;
-         }         
          // callByValue
          callByValue = joverride.isCallByValue();
          // clustered
@@ -938,4 +924,26 @@
             ejbTimeoutIdentity = joverride.getEjbTimeoutIdentity();
       }
    }
+   
+   @Override
+   public void checkValid()
+   {
+      if(getEnterpriseBeansMetaData() != null && getEjbJarMetaData() != null)
+      {
+         // this is how the ejb3 deployer determines whether it's ejb3 module or not
+         if(!(getEjbJarMetaData().isEJB1x() || getEjbJarMetaData().isEJB2x()))
+         {
+            if(this.home == null && this.homeJndiName != null)
+               throw new IllegalStateException(
+                  "EJB3 bean " + getEjbName() +
+                  " doesn't define home interface but defines home-jndi-name '" +
+                  this.homeJndiName + "' in jboss.xml");
+            if(this.localHome == null && this.localHomeJndiName != null)
+               throw new IllegalStateException(
+                  "EJB3 bean " + getEjbName() +
+                  " doesn't define local-home interface but defines local-home-jndi-name '" +
+                  this.localHomeJndiName + "' in jboss.xml");
+         }
+      }
+   }
 }

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeEverythingUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeEverythingUnitTestCase.java	2008-04-02 12:50:14 UTC (rev 71594)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeEverythingUnitTestCase.java	2008-04-02 12:57:14 UTC (rev 71595)
@@ -232,51 +232,47 @@
 
    public void testHomeJndiNameForEJB3() throws Exception
    {
-      EjbJar30MetaData ejbjar3 = new EjbJar30MetaData();
-      EnterpriseBeansMetaData originals = new EnterpriseBeansMetaData();
-      originals.setEjbJarMetaData(ejbjar3);
-      SessionBeanMetaData original = new SessionBeanMetaData();
-      original.setEnterpriseBeansMetaData(originals);
-      original.setEjbName("ejb3session");
+      EjbJar30MetaData spec = new EjbJar30MetaData();
+      EnterpriseBeansMetaData specBeans = new EnterpriseBeansMetaData();
+      spec.setEnterpriseBeans(specBeans);
+      SessionBeanMetaData specBean = new SessionBeanMetaData();
+      specBean.setEjbName("ejb3session");
+      specBeans.add(specBean);
       
       JBossMetaData jboss = new JBossMetaData();
-      JBossEnterpriseBeansMetaData overrides = new JBossEnterpriseBeansMetaData();
-      overrides.setEjbJarMetaData(jboss);
-      JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
-      override.setEjbName("ejb3session");
-      override.setEnterpriseBeansMetaData(overrides);
-      override.setHomeJndiName("home-jndi-name");
+      JBossEnterpriseBeansMetaData jbossBeans = new JBossEnterpriseBeansMetaData();
+      jboss.setEnterpriseBeans(jbossBeans);
+      JBossSessionBeanMetaData jbossBean = new JBossSessionBeanMetaData();
+      jbossBean.setEjbName("ejb3session");
+      jbossBean.setHomeJndiName("home-jndi-name");
+      jbossBeans.add(jbossBean);
 
-      JBossMetaData mergedJBoss = new JBossMetaData();
-      JBossEnterpriseBeansMetaData mergedBeans = new JBossEnterpriseBeansMetaData();
-      mergedBeans.setEjbJarMetaData(mergedJBoss);
-      
+      JBossMetaData merged = new JBossMetaData();
       try
       {
-         JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
-         merged.setEnterpriseBeansMetaData(mergedBeans);
-         merged.merge(override, original);
+         merged.merge(jboss, spec);
          fail("ejb3 session bean can't have home-jndi-name");
       }
       catch(IllegalStateException e)
       {
-         assertEquals("EJB3 bean ejb3session defines home-jndi-name 'home-jndi-name' in jboss.xml", e.getMessage());
+         assertEquals("EJB3 bean ejb3session doesn't define home interface but defines home-jndi-name 'home-jndi-name' in jboss.xml", e.getMessage());
       }
+      
+      jbossBean = new JBossSessionBeanMetaData();
+      jbossBean.setEjbName("ejb3session");
+      jbossBean.setLocalHomeJndiName("local-home-jndi-name");
+      jbossBeans.clear();
+      jbossBeans.add(jbossBean);
 
-      override = new JBossSessionBeanMetaData();
-      override.setEjbName("ejb3session");
-      override.setEnterpriseBeansMetaData(overrides);
-      override.setLocalHomeJndiName("local-home-jndi-name");
+      merged = new JBossMetaData();
       try
       {
-         JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();      
-         merged.setEnterpriseBeansMetaData(mergedBeans);
-         merged.merge(override, original);
+         merged.merge(jboss, spec);
          fail("ejb3 session bean can't have local-home-jndi-name");
       }
       catch(IllegalStateException e)
       {
-         assertEquals("EJB3 bean ejb3session defines local-home-jndi-name 'local-home-jndi-name' in jboss.xml", e.getMessage());
+         assertEquals("EJB3 bean ejb3session doesn't define local-home interface but defines local-home-jndi-name 'local-home-jndi-name' in jboss.xml", e.getMessage());
       }
    }
 




More information about the jboss-cvs-commits mailing list