You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ge...@apache.org on 2011/01/21 11:30:27 UTC

svn commit: r1061722 - in /geronimo/server/trunk/plugins: openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/ openejb/geronimo-openejb-builder/src/main/xsd/ openjpa2/geronimo-persistence-jpa20-builder/src/main/java/or...

Author: genspring
Date: Fri Jan 21 10:30:26 2011
New Revision: 1061722

URL: http://svn.apache.org/viewvc?rev=1061722&view=rev
Log:
enable cmp entity bean in geronimo.

Modified:
    geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbModuleBuilder.java
    geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/xsd/geronimo-openejb-2.0.xsd
    geronimo/server/trunk/plugins/openjpa2/geronimo-persistence-jpa20-builder/src/main/java/org/apache/geronimo/persistence/builder/PersistenceUnitBuilder.java

Modified: geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbModuleBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbModuleBuilder.java?rev=1061722&r1=1061721&r2=1061722&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbModuleBuilder.java (original)
+++ geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbModuleBuilder.java Fri Jan 21 10:30:26 2011
@@ -633,15 +633,19 @@ public class EjbModuleBuilder implements
         ejbModule.setOriginalSpecDD(XmlUtil.marshal(ejbJar));
 
         // Get the geronimo-openejb plan
-//            GeronimoEjbJarType geronimoEjbJarType = (GeronimoEjbJarType) ejbModule.getEjbModule().getAltDDs().get("geronimo-openejb.xml");
+           GeronimoEjbJarType geronimoEjbJarType = (GeronimoEjbJarType) ejbModule.getEjbModule().getAltDDs().get("geronimo-openejb.xml");
 
         // We must set all mapped name references back to null or Geronimo will blow up
-//        unmapReferences(ejbJar, geronimoEjbJarType);
+        unmapReferences(ejbJar, geronimoEjbJarType);
 
         // create a xmlbeans version of the ejb-jar.xml file, because the jndi code is coupled based on xmlbeans objects
+       /* EjbJarType ejbJarType = XmlUtil.convertToXmlbeans(ejbJar);
+        ejbModule.setSpecDD(ejbJarType);*/
 
         // convert the plan to xmlbeans since geronimo naming is coupled on xmlbeans objects
-//            ejbModule.setVendorDD(geronimoOpenejb);
+            OpenejbGeronimoEjbJarType geronimoOpenejb = XmlUtil.convertToXmlbeans(geronimoEjbJarType);
+            
+           ejbModule.getVendorDD().set(geronimoOpenejb);
 
         // todo move namingBuilders.buildEnvironment() here when geronimo naming supports it
 

Modified: geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/xsd/geronimo-openejb-2.0.xsd
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/xsd/geronimo-openejb-2.0.xsd?rev=1061722&r1=1061721&r2=1061722&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/xsd/geronimo-openejb-2.0.xsd (original)
+++ geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/xsd/geronimo-openejb-2.0.xsd Fri Jan 21 10:30:26 2011
@@ -66,7 +66,7 @@
             <!-- GBeans -->
             <xs:choice minOccurs="0" maxOccurs="unbounded">
                 <xs:element ref="sys:service"/>
-                <xs:any namespace="http://java.sun.com/xml/ns/persistence"/>
+                <xs:any processContents="lax" namespace="http://java.sun.com/xml/ns/persistence"/>
             </xs:choice>
         </xs:sequence>
     </xs:complexType>

Modified: geronimo/server/trunk/plugins/openjpa2/geronimo-persistence-jpa20-builder/src/main/java/org/apache/geronimo/persistence/builder/PersistenceUnitBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openjpa2/geronimo-persistence-jpa20-builder/src/main/java/org/apache/geronimo/persistence/builder/PersistenceUnitBuilder.java?rev=1061722&r1=1061721&r2=1061722&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openjpa2/geronimo-persistence-jpa20-builder/src/main/java/org/apache/geronimo/persistence/builder/PersistenceUnitBuilder.java (original)
+++ geronimo/server/trunk/plugins/openjpa2/geronimo-persistence-jpa20-builder/src/main/java/org/apache/geronimo/persistence/builder/PersistenceUnitBuilder.java Fri Jan 21 10:30:26 2011
@@ -34,6 +34,7 @@ import javax.xml.bind.JAXBException;
 import javax.xml.bind.Unmarshaller;
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamReader;
+
 import org.apache.geronimo.common.DeploymentException;
 import org.apache.geronimo.deployment.DeployableBundle;
 import org.apache.geronimo.deployment.ModuleIDBuilder;
@@ -62,6 +63,7 @@ import org.apache.xbean.osgi.bundle.util
 import org.apache.xbean.osgi.bundle.util.DiscoveryRange;
 import org.apache.xbean.osgi.bundle.util.ResourceDiscoveryFilter;
 import org.apache.xmlbeans.QNameSet;
+import org.apache.xmlbeans.XmlCursor;
 import org.apache.xmlbeans.XmlObject;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
@@ -123,6 +125,7 @@ public class PersistenceUnitBuilder impl
         Map<String, Persistence.PersistenceUnit> overrides = new HashMap<String, Persistence.PersistenceUnit>();
         try {
             for (XmlObject raw : raws) {
+             
                 Persistence persistence = fromXmlObject(raw);
                 for (Persistence.PersistenceUnit unit : persistence.getPersistenceUnit()) {
                     overrides.put(unit.getName().trim(), unit);
@@ -335,7 +338,29 @@ public class PersistenceUnitBuilder impl
     }
 
     private Persistence fromXmlObject(XmlObject xmlObject) throws JAXBException {
-        XMLStreamReader reader = xmlObject.newXMLStreamReader();
+        
+        /* 
+         * To avoid illegal exception in JAXB. Convert 
+         * 
+         * <xml-fragment> ... </xml-fragment> 
+         * to
+         * <persistence xmlns="http://java.sun.com/xml/ns/persistence"> ... </persistence>
+         * 
+         * before unmarshalling it 
+         */
+        XmlObject newXmlObject=XmlObject.Factory.newInstance();
+        XmlCursor newXmlCursor=newXmlObject.newCursor();
+        newXmlCursor.toNextToken();
+        newXmlCursor.beginElement(PERSISTENCE_QNAME);
+        
+        XmlCursor oldXmlCursor=xmlObject.newCursor();
+        oldXmlCursor.copyXmlContents(newXmlCursor);
+        
+        oldXmlCursor.dispose();
+        newXmlCursor.dispose();
+        
+        
+        XMLStreamReader reader = newXmlObject.newXMLStreamReader();
         JAXBContext context = JAXBContextFactory.newInstance(Persistence.class);
         Unmarshaller unmarshaller = context.createUnmarshaller();
         return (Persistence) unmarshaller.unmarshal(reader);