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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Nov 7 13:01:40 EST 2007


Author: alex.loubyansky at jboss.com
Date: 2007-11-07 13:01:40 -0500 (Wed, 07 Nov 2007)
New Revision: 66824

Added:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EjbJar1xMetaData.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar11UnitTestCase.java
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar11_testEntity.xml
Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEntityBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EntityBeanMetaData.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar20UnitTestCase.java
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar20_testEntity.xml
Log:
ejb1.x support and tests

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEntityBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEntityBeanMetaData.java	2007-11-07 17:57:46 UTC (rev 66823)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEntityBeanMetaData.java	2007-11-07 18:01:40 UTC (rev 66824)
@@ -310,6 +310,13 @@
     */
    public boolean isCMP1x()
    {
+      if(cmpVersion == null)
+      {
+         if(getEjbJarMetaData().isEJB2x())
+            return false;
+         else
+            return true;
+      }
       return "1.x".equals(cmpVersion);
    }
    

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EjbJar1xMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EjbJar1xMetaData.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EjbJar1xMetaData.java	2007-11-07 18:01:40 UTC (rev 66824)
@@ -0,0 +1,75 @@
+/*
+* 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.ejb.spec;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlNs;
+import javax.xml.bind.annotation.XmlNsForm;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+import org.jboss.xb.annotations.JBossXmlSchema;
+
+/**
+ * EjbJar1xMetaData.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 66015 $
+ */
+ at XmlRootElement(name="ejb-jar", namespace="")
+ at JBossXmlSchema(
+      xmlns={@XmlNs(namespaceURI = "", prefix = "jee")},
+      ignoreUnresolvedFieldOrClass=false,
+      namespace="",
+      elementFormDefault=XmlNsForm.QUALIFIED)
+ at XmlType(name="ejb-jarType",
+      namespace="",
+      propOrder={"descriptionGroup", "enterpriseBeans", "assemblyDescriptor", "ejbClientJar"})
+public class EjbJar1xMetaData extends EjbJarMetaData
+{
+   /**
+    * Override to get the version from the root element version attribute.
+    * 
+    * @param version the version.
+    * @throws IllegalArgumentException for a null version
+    */
+   @XmlAttribute
+   public void setVersion(String version)
+   {
+      super.setVersion(version);
+   }
+
+   /**
+    * Whether this is ejb1.x
+    * 
+    * @return true when ejb1.x
+    */
+   public boolean isEJB1x()
+   {
+      return true;
+   }
+
+   public InterceptorsMetaData getInterceptors()
+   {
+      return null;
+   }
+}

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EntityBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EntityBeanMetaData.java	2007-11-07 17:57:46 UTC (rev 66823)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EntityBeanMetaData.java	2007-11-07 18:01:40 UTC (rev 66824)
@@ -277,6 +277,13 @@
     */
    public boolean isCMP1x()
    {
+      if(cmpVersion == null)
+      {
+         if(getEjbJarMetaData().isEJB2x())
+            return false;
+         else
+            return true;
+      }
       return "1.x".equals(cmpVersion);
    }
    

Added: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar11UnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar11UnitTestCase.java	                        (rev 0)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar11UnitTestCase.java	2007-11-07 18:01:40 UTC (rev 66824)
@@ -0,0 +1,104 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.test.metadata.ejb;
+
+import org.jboss.metadata.ApplicationMetaData;
+import org.jboss.metadata.EntityMetaData;
+import org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData;
+import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
+import org.jboss.metadata.ejb.jboss.JBossEntityBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaDataWrapper;
+import org.jboss.metadata.ejb.spec.EjbJar1xMetaData;
+import org.jboss.metadata.ejb.spec.EntityBeanMetaData;
+import org.jboss.test.metadata.javaee.AbstractJavaEEMetaDataTest;
+import org.jboss.xb.binding.sunday.unmarshalling.DefaultSchemaResolver;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
+
+import junit.framework.Test;
+
+
+/**
+ * A EjbJar11UnitTestCase.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+public class EjbJar11UnitTestCase extends AbstractJavaEEMetaDataTest
+{
+   public static Test suite()
+   {
+      return suite(EjbJar11UnitTestCase.class);
+   }
+
+   public static SchemaBindingResolver initResolver()
+   {
+      DefaultSchemaResolver resolver = new DefaultSchemaResolver();
+      resolver.addClassBindingForLocation("ejb-jar_1_1.dtd", EjbJar1xMetaData.class);
+      resolver.addClassBindingForLocation("jboss_3_0.dtd", JBoss50DTDMetaData.class);
+      resolver.addClassBindingForLocation("jboss_5_0.xsd", JBoss50MetaData.class);
+      resolver.addClassBinding("http://www.jboss.com/xml/ns/javaee", JBoss50MetaData.class);
+      return resolver;
+   }
+
+   public EjbJar11UnitTestCase(String name)
+   {
+      super(name);
+   }
+
+   protected EjbJar1xMetaData unmarshal() throws Exception
+   {
+      return unmarshal(EjbJar1xMetaData.class);
+   }
+
+   public void testEntity() throws Exception
+   {
+      EjbJar1xMetaData specMetaData = unmarshal();
+      assertEquals("1.1", specMetaData.getVersion());
+      assertTrue(specMetaData.isEJB1x());
+      assertFalse(specMetaData.isEJB2x());
+      assertFalse(specMetaData.isEJB21());
+      assertFalse(specMetaData.isEJB3x());
+
+      ApplicationMetaData old = new ApplicationMetaData(specMetaData);
+      assertTrue(old.isEJB1x());
+      assertFalse(old.isEJB2x());
+      assertFalse(old.isEJB21());
+      assertFalse(old.isEJB3x());
+      
+      EntityBeanMetaData entity = (EntityBeanMetaData) specMetaData.getEnterpriseBean("EjbName");
+      assertNotNull(entity);
+      assertTrue(entity.isCMP1x());
+      
+      EntityMetaData emd = (EntityMetaData) old.getBeanByEjbName("EjbName");
+      assertNotNull(emd);
+      assertTrue(emd.isCMP1x());
+
+      JBossMetaData jbossMetaData = unmarshal("JBoss30_entityConfig.xml", JBossMetaData.class, null);
+      JBossMetaData mergedMetaData = new JBossMetaData();
+      mergedMetaData.merge(jbossMetaData, specMetaData);
+
+      JBossEntityBeanMetaData jbe = (JBossEntityBeanMetaData) mergedMetaData.getEnterpriseBean("EjbName");
+      assertNotNull(jbe);
+      assertTrue(jbe.isCMP1x());
+   }
+}

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar20UnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar20UnitTestCase.java	2007-11-07 17:57:46 UTC (rev 66823)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar20UnitTestCase.java	2007-11-07 18:01:40 UTC (rev 66824)
@@ -34,10 +34,12 @@
 import org.jboss.metadata.ejb.jboss.ContainerConfigurationMetaData;
 import org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData;
 import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
+import org.jboss.metadata.ejb.jboss.JBossEntityBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossMetaData;
 import org.jboss.metadata.ejb.jboss.JBossMetaDataWrapper;
 import org.jboss.metadata.ejb.spec.EjbJar20MetaData;
 import org.jboss.metadata.ejb.spec.EjbJar2xMetaData;
+import org.jboss.metadata.ejb.spec.EntityBeanMetaData;
 import org.jboss.metadata.ejb.spec.MessageDrivenBeanMetaData;
 import org.jboss.metadata.ejb.spec.SubscriptionDurability;
 import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
@@ -202,6 +204,23 @@
       assertEquals(null, conf2.getSecurityDomain());
       assertNotNull(conf2.getClusterConfig());
       assertEquals("DefaultPartition", conf2.getClusterConfig().getPartitionName());
+      
+      assertTrue(specMetaData.isEJB2x());
+      EntityBeanMetaData entity = (EntityBeanMetaData) specMetaData.getEnterpriseBean("TestEntity");
+      assertNotNull(entity);
+      assertFalse(entity.isCMP1x());
+      
+      entity = (EntityBeanMetaData) specMetaData.getEnterpriseBean("TestEntityCmp1");
+      assertNotNull(entity);
+      assertTrue(entity.isCMP1x());
+      
+      JBossEntityBeanMetaData jbe = (JBossEntityBeanMetaData) mergedMetaData.getEnterpriseBean("TestEntity");
+      assertNotNull(jbe);
+      assertFalse(jbe.isCMP1x());
+      
+      jbe = (JBossEntityBeanMetaData) mergedMetaData.getEnterpriseBean("TestEntityCmp1");
+      assertNotNull(jbe);
+      assertTrue(jbe.isCMP1x());
    }
 
    public void testOneMany()

Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar11_testEntity.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar11_testEntity.xml	                        (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar11_testEntity.xml	2007-11-07 18:01:40 UTC (rev 66824)
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'>
+
+<ejb-jar>
+  <description>no description</description>
+  <display-name>Ejb1</display-name>
+  <enterprise-beans>
+    <entity>
+      <description>no description</description>
+      <display-name>DisplayName</display-name>
+      <ejb-name>EjbName</ejb-name>
+      <home>bean.home.CMPBeanHome</home>
+      <remote>bean.remote.CMPBean</remote>
+      <ejb-class>bean.ejbclass.ECMPBeanEJB</ejb-class>
+      <persistence-type>Container</persistence-type>
+      <prim-key-class>java.lang.Integer</prim-key-class>
+      <reentrant>False</reentrant>
+      <cmp-field>
+	<field-name>KEY_ID</field-name>
+      </cmp-field>
+      <cmp-field>
+	<field-name>PRICE</field-name>
+      </cmp-field>
+      <cmp-field>
+	<field-name>BRAND_NAME</field-name>
+      </cmp-field>
+      <primkey-field>KEY_ID</primkey-field>
+      <env-entry>
+	<env-entry-name>table1</env-entry-name>
+	<env-entry-type>java.lang.String</env-entry-type>
+	<env-entry-value>TSTABLE1</env-entry-value>
+      </env-entry>
+      <resource-ref>
+	<description>description</description>
+	<res-ref-name>jdbc/DB1</res-ref-name>
+	<res-type>javax.sql.DataSource</res-type>
+	<res-auth>Container</res-auth>
+      </resource-ref>
+    </entity>
+  </enterprise-beans>
+</ejb-jar>
+

Modified: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar20_testEntity.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar20_testEntity.xml	2007-11-07 17:57:46 UTC (rev 66823)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar20_testEntity.xml	2007-11-07 18:01:40 UTC (rev 66824)
@@ -43,23 +43,31 @@
                 <field-name>value1</field-name>
             </cmp-field>
             <primkey-field>entityID</primkey-field>
+        </entity>
+
+        <entity >
+            <description><![CDATA[An entity.]]></description>
             
-            <!-- Write a file named ejb-finders-TestEntityBean.xml if you want to define extra finders. -->
+            <ejb-name>TestEntityCmp1</ejb-name>
+            
+            <home>org.jboss.test.entity.interfaces.TestEntityCmp1Home</home>
+            <remote>org.jboss.test.entity.interfaces.TestEntityCmp1</remote>            
+            <ejb-class>org.jboss.test.entity.beans.TestEntityCMP1</ejb-class>
+            <persistence-type>Container</persistence-type>
+            <prim-key-class>java.lang.String</prim-key-class>
+            <reentrant>False</reentrant>
+            <cmp-version>1.x</cmp-version>
+            <cmp-field >
+                <description><![CDATA[]]></description>
+                <field-name>entityID</field-name>
+            </cmp-field>
+            <cmp-field >
+                <description><![CDATA[]]></description>
+                <field-name>value1</field-name>
+            </cmp-field>
+            <primkey-field>entityID</primkey-field>
         </entity>
-        
-        <!--
-            To add entity beans that you have deployment descriptor info for, add
-            a file to your XDoclet merge directory called entity-beans.xml that contains
-            the <entity></entity> markup for those beans.
-        -->
-        
-        <!-- Message Driven Beans -->
-        <!--
-            To add message driven beans that you have deployment descriptor info for, add
-            a file to your XDoclet merge directory called message-driven-beans.xml that contains
-            the <message-driven></message-driven> markup for those beans.
-        -->
-        
+                
     </enterprise-beans>
     
     <!-- Relationships -->




More information about the jboss-cvs-commits mailing list