You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2010/04/15 09:39:44 UTC

svn commit: r934317 - in /openejb/trunk/openejb3/container: openejb-core/src/main/java/org/apache/openejb/config/ openejb-core/src/main/java/org/apache/openejb/config/sys/ openejb-core/src/test/java/org/apache/openejb/config/ openejb-core/src/test/reso...

Author: dblevins
Date: Thu Apr 15 07:39:43 2010
New Revision: 934317

URL: http://svn.apache.org/viewvc?rev=934317&view=rev
Log:
Was a complete lack of the non-cmp side of openejb-jar.xml v2 to v3 conversion.  This covers the basics of jndi names and properties elements

Added:
    openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/
    openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/ejb-jar.xml   (with props)
    openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/geronimo-openejb.xml   (with props)
    openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/openejb-jar-expected.xml   (with props)
    openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/openejb-jar.xml   (with props)
Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java
    openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java
    openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb2/GeronimoEjbJarType.java
    openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb2/JaxbOpenejbJar2.java
    openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/PropertiesAdapter.java

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java?rev=934317&r1=934316&r2=934317&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2Conversion.java Thu Apr 15 07:39:43 2010
@@ -57,6 +57,10 @@ import org.apache.openejb.jee.oejb2.EjbL
 import org.apache.openejb.jee.oejb2.Jndi;
 import org.apache.openejb.jee.oejb2.SessionBeanType;
 import org.apache.openejb.jee.oejb2.WebServiceSecurityType;
+import org.apache.openejb.jee.oejb2.GeronimoEjbJarType;
+import org.apache.openejb.jee.oejb2.RpcBean;
+import org.apache.openejb.jee.oejb2.TssLinkType;
+import org.apache.openejb.jee.oejb2.WebServiceBindingType;
 import org.apache.openejb.jee.oejb3.OpenejbJar;
 import org.apache.openejb.jee.oejb3.EjbDeployment;
 import org.apache.openejb.jee.oejb3.EjbLink;
@@ -461,6 +465,52 @@ public class OpenEjb2Conversion implemen
         }
     }
 
+    /**
+     * Actually called from ReadDescriptors as Geronimo needs this info early
+     * @param o2
+     * @return
+     */
+    public static GeronimoEjbJarType convertToGeronimoOpenejbXml(OpenejbJarType o2) {
+        GeronimoEjbJarType g2 = new GeronimoEjbJarType();
+
+        g2.setEnvironment(o2.getEnvironment());
+        g2.setSecurity(o2.getSecurity());
+        g2.getService().addAll(o2.getService());
+        g2.getMessageDestination().addAll(o2.getMessageDestination());
+        g2.getPersistence().addAll(o2.getPersistence());
+
+        for (org.apache.openejb.jee.oejb2.EnterpriseBean bean : o2.getEnterpriseBeans()) {
+            g2.getAbstractNamingEntry().addAll(bean.getAbstractNamingEntry());
+            g2.getPersistenceContextRef().addAll(bean.getPersistenceContextRef());
+            g2.getPersistenceUnitRef().addAll(bean.getPersistenceUnitRef());
+            g2.getEjbLocalRef().addAll(bean.getEjbLocalRef());
+            g2.getEjbRef().addAll(bean.getEjbRef());
+            g2.getResourceEnvRef().addAll(bean.getResourceEnvRef());
+            g2.getResourceRef().addAll(bean.getResourceRef());
+            g2.getServiceRef().addAll(bean.getServiceRef());
+
+            if (bean instanceof RpcBean) {
+                RpcBean rpcBean = (RpcBean) bean;
+                if (rpcBean.getTssLink() != null){
+                    g2.getTssLink().add(new TssLinkType(rpcBean.getEjbName(), rpcBean.getTssLink(), rpcBean.getJndiName()));
+                }
+            }
+
+            if (bean instanceof SessionBeanType) {
+                SessionBeanType sb = (SessionBeanType) bean;
+                WebServiceBindingType b = new WebServiceBindingType();
+                b.setEjbName(sb.getEjbName());
+                b.setWebServiceAddress(sb.getWebServiceAddress());
+                b.setWebServiceVirtualHost(sb.getWebServiceVirtualHost());
+                b.setWebServiceSecurity(sb.getWebServiceSecurity());
+                if (b.containsData()){
+                    g2.getWebServiceBinding().add(b);
+                }
+            }
+        }
+        return g2;
+    }
+
     private class EntityData {
         private final Entity entity;
         private final Map<String, Field> fields = new TreeMap<String, Field>();

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java?rev=934317&r1=934316&r2=934317&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java Thu Apr 15 07:39:43 2010
@@ -32,14 +32,9 @@ import org.apache.openejb.jee.Webservice
 import org.apache.openejb.jee.jpa.unit.JaxbPersistenceFactory;
 import org.apache.openejb.jee.jpa.unit.Persistence;
 import org.apache.openejb.jee.jpa.EntityMappings;
-import org.apache.openejb.jee.oejb2.EnterpriseBean;
 import org.apache.openejb.jee.oejb2.GeronimoEjbJarType;
 import org.apache.openejb.jee.oejb2.JaxbOpenejbJar2;
 import org.apache.openejb.jee.oejb2.OpenejbJarType;
-import org.apache.openejb.jee.oejb2.RpcBean;
-import org.apache.openejb.jee.oejb2.SessionBeanType;
-import org.apache.openejb.jee.oejb2.TssLinkType;
-import org.apache.openejb.jee.oejb2.WebServiceBindingType;
 import org.apache.openejb.jee.oejb3.JaxbOpenejbJar3;
 import org.apache.openejb.jee.oejb3.OpenejbJar;
 import org.xml.sax.Attributes;
@@ -135,43 +130,7 @@ public class ReadDescriptors implements 
                     OpenejbJarType o2 = (OpenejbJarType) element.getValue();
                     ejbModule.getAltDDs().put("openejb-jar.xml", o2);
 
-                    GeronimoEjbJarType g2 = new GeronimoEjbJarType();
-
-                    g2.setEnvironment(o2.getEnvironment());
-                    g2.setSecurity(o2.getSecurity());
-                    g2.getService().addAll(o2.getService());
-                    g2.getMessageDestination().addAll(o2.getMessageDestination());
-                    g2.getPersistence().addAll(o2.getPersistence());
-
-                    for (EnterpriseBean bean : o2.getEnterpriseBeans()) {
-                        g2.getAbstractNamingEntry().addAll(bean.getAbstractNamingEntry());
-                        g2.getPersistenceContextRef().addAll(bean.getPersistenceContextRef());
-                        g2.getPersistenceUnitRef().addAll(bean.getPersistenceUnitRef());
-                        g2.getEjbLocalRef().addAll(bean.getEjbLocalRef());
-                        g2.getEjbRef().addAll(bean.getEjbRef());
-                        g2.getResourceEnvRef().addAll(bean.getResourceEnvRef());
-                        g2.getResourceRef().addAll(bean.getResourceRef());
-                        g2.getServiceRef().addAll(bean.getServiceRef());
-
-                        if (bean instanceof RpcBean) {
-                            RpcBean rpcBean = (RpcBean) bean;
-                            if (rpcBean.getTssLink() != null){
-                                g2.getTssLink().add(new TssLinkType(rpcBean.getEjbName(), rpcBean.getTssLink(), rpcBean.getJndiName()));
-                            }
-                        }
-
-                        if (bean instanceof SessionBeanType) {
-                            SessionBeanType sb = (SessionBeanType) bean;
-                            WebServiceBindingType b = new WebServiceBindingType();
-                            b.setEjbName(sb.getEjbName());
-                            b.setWebServiceAddress(sb.getWebServiceAddress());
-                            b.setWebServiceVirtualHost(sb.getWebServiceVirtualHost());
-                            b.setWebServiceSecurity(sb.getWebServiceSecurity());
-                            if (b.containsData()){
-                                g2.getWebServiceBinding().add(b);
-                            }
-                        }
-                    }
+                    GeronimoEjbJarType g2 = OpenEjb2Conversion.convertToGeronimoOpenejbXml(o2);
 
                     ejbModule.getAltDDs().put("geronimo-openejb.xml", g2);
                 } catch (final Exception v2ParsingException) {

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java?rev=934317&r1=934316&r2=934317&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java Thu Apr 15 07:39:43 2010
@@ -36,9 +36,18 @@ public class PropertiesAdapter extends X
     }
 
     public String marshal(Properties properties) throws Exception {
+        if (properties == null) return null;
+
         ByteArrayOutputStream out = new ByteArrayOutputStream();
         properties.store(out, null);
-        return new String(out.toByteArray());
-    }
 
+        String string = new String(out.toByteArray());
+
+        if (!(properties instanceof SuperProperties)) {
+            // First comment is added by properties.store()
+            string = string.replaceFirst("#.*?" + System.getProperty("line.separator"), "");
+        }
+
+        return string; 
+    }
 }

Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java?rev=934317&r1=934316&r2=934317&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java Thu Apr 15 07:39:43 2010
@@ -16,136 +16,147 @@
  */
 package org.apache.openejb.config;
 
-import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashMap;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-
 import junit.framework.TestCase;
-import org.apache.openejb.jee.EjbJar;
-import org.apache.openejb.jee.JaxbJavaee;
+import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.jee.JAXBContextFactory;
+import org.apache.openejb.jee.oejb2.GeronimoEjbJarType;
 import org.apache.openejb.jee.oejb3.OpenejbJar;
 import org.apache.openejb.jee.jpa.EntityMappings;
 import org.custommonkey.xmlunit.Diff;
+import org.xml.sax.SAXException;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+import java.io.BufferedInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
 
 /**
  * @version $Rev$ $Date$
  */
 public class OpenEjb2ConversionTest extends TestCase {
+
+    public void testSimple() throws Exception {
+        String prefix = "convert/oej2/simple/";
+        
+        AppModule appModule = deploy(prefix);
+
+        // compare the results to the expected results
+        EjbModule ejbModule = appModule.getEjbModules().get(0);
+
+        assertJaxb(prefix + "geronimo-openejb.xml", ejbModule.getAltDDs().get("geronimo-openejb.xml"), GeronimoEjbJarType.class);
+        assertJaxb(prefix + "openejb-jar-expected.xml", ejbModule.getOpenejbJar(), OpenejbJar.class);
+    }
+
     public void testItests22() throws Exception {
-        convert("convert/oej2/cmp/itest-2.2/itest-2.2-");
+        convertCmp("convert/oej2/cmp/itest-2.2/itest-2.2-");
     }
-    
+
     public void testItests22Pojo() throws Exception {
-        convert("convert/oej2/cmp/itest-2.2/itest-2.2-pojo-");
+        convertCmp("convert/oej2/cmp/itest-2.2/itest-2.2-pojo-");
     }
 
     public void testDaytrader() throws Exception {
-        convert("convert/oej2/cmp/daytrader/daytrader-");
+        convertCmp("convert/oej2/cmp/daytrader/daytrader-");
     }
 
     public void testOneToOne() throws Exception {
-        convert("convert/oej2/cmp/onetoone/simplepk/");
+        convertCmp("convert/oej2/cmp/onetoone/simplepk/");
     }
 
     public void testOneToOneUni() throws Exception {
-        convert("convert/oej2/cmp/onetoone/simplepk/unidirectional-");
+        convertCmp("convert/oej2/cmp/onetoone/simplepk/unidirectional-");
     }
 
     public void testOneToMany() throws Exception {
-        convert("convert/oej2/cmp/onetomany/simplepk/");
+        convertCmp("convert/oej2/cmp/onetomany/simplepk/");
     }
 
     public void testOneToManyUni() throws Exception {
-        convert("convert/oej2/cmp/onetomany/simplepk/one-unidirectional-");
+        convertCmp("convert/oej2/cmp/onetomany/simplepk/one-unidirectional-");
     }
 
     public void testManyToOneUni() throws Exception {
-        convert("convert/oej2/cmp/onetomany/simplepk/many-unidirectional-");
+        convertCmp("convert/oej2/cmp/onetomany/simplepk/many-unidirectional-");
     }
 
     public void testManyToMany() throws Exception {
-        convert("convert/oej2/cmp/manytomany/simplepk/");
+        convertCmp("convert/oej2/cmp/manytomany/simplepk/");
     }
 
     public void testManyToManyUni() throws Exception {
-        convert("convert/oej2/cmp/manytomany/simplepk/unidirectional-");
+        convertCmp("convert/oej2/cmp/manytomany/simplepk/unidirectional-");
     }
 
-    private EntityMappings convert(String prefix) throws Exception {
-        return convert(prefix + "ejb-jar.xml", prefix + "openejb-jar.xml", prefix + "orm.xml");
+    private void convertCmp(String prefix) throws Exception {
+        AppModule appModule = deploy(prefix);
+
+        // compare the results to the expected results
+        assertJaxb(prefix + "orm.xml", appModule.getCmpMappings(), EntityMappings.class);
     }
 
-    private EntityMappings convert(String ejbJarFileName, String openejbJarFileName, String expectedFileName) throws Exception {
-        InputStream in = getClass().getClassLoader().getResourceAsStream(ejbJarFileName);
-        EjbJar ejbJar = (EjbJar) JaxbJavaee.unmarshal(EjbJar.class, new ByteArrayInputStream(readContent(in).getBytes()));
+    private  void assertJaxb(String expectedFile, Object object, Class<?> type) throws IOException, JAXBException, SAXException {
+        assertSame(type, object.getClass());
+        String expected = read(expectedFile);
+
+        String actual = toString(object, type);
 
+//        System.out.println("expected = " + expected);
+//        System.out.println("actual = " + actual);
+        
+        Diff myDiff = new Diff(expected, actual);
+        assertTrue("Files are similar " + myDiff, myDiff.similar());
+    }
+
+    private String read(String name) throws IOException {
+        InputStream in = getClass().getClassLoader().getResource(name).openStream();
+        StringBuffer sb = new StringBuffer();
+        in = new BufferedInputStream(in);
+        int i = in.read();
+        while (i != -1) {
+            sb.append((char) i);
+            i = in.read();
+        }
+        return sb.toString().trim();
+    }
+
+    private AppModule deploy(String prefix) throws OpenEJBException {
+        return deploy(prefix + "ejb-jar.xml", prefix + "openejb-jar.xml");
+    }
+
+    private AppModule deploy(String ejbJarFileName, String openejbJarFileName) throws OpenEJBException {
         // create and configure the module
-        EjbModule ejbModule = new EjbModule(getClass().getClassLoader(), "TestModule", ejbJarFileName, ejbJar, new OpenejbJar());
-        InitEjbDeployments initEjbDeployments = new InitEjbDeployments();
-        initEjbDeployments.deploy(ejbModule);
+        EjbModule ejbModule = new EjbModule(getClass().getClassLoader(), "TestModule", ejbJarFileName, null, null);
         AppModule appModule = new AppModule(getClass().getClassLoader(), "TestModule");
         appModule.getEjbModules().add(ejbModule);
 
         // add the altDD
+        ejbModule.getAltDDs().put("ejb-jar.xml", getClass().getClassLoader().getResource(ejbJarFileName));
         ejbModule.getAltDDs().put("openejb-jar.xml", getClass().getClassLoader().getResource(openejbJarFileName));
 
-        // convert the cmp declarations into jpa entity declarations
-        CmpJpaConversion cmpJpaConversion = new CmpJpaConversion();
-        cmpJpaConversion.deploy(appModule);
-//        EntityMappings entityMappings = cmpJpaConversion.generateEntityMappings(ejbModule);
-
-        // load the openejb-jar.xml file
-//        String openejbJarXml = readContent(getClass().getClassLoader().getResourceAsStream(openejbJarFileName));
-//        JAXBElement element = (JAXBElement) JaxbOpenejbJar2.unmarshal(OpenejbJarType.class, new ByteArrayInputStream(openejbJarXml.getBytes()));
-//        OpenejbJarType openejbJarType = (OpenejbJarType) element.getValue();
-
-        // fill in the jpa entity declarations with database mappings from the openejb-jar.xml file
-        OpenEjb2Conversion openEjb2Conversion = new OpenEjb2Conversion();
-        openEjb2Conversion.deploy(appModule);
-//        openEjb2CmpConversion.mergeEntityMappings(entityMappings, openejbJarType);
+        DynamicDeployer[] deployers = {new ReadDescriptors(), new InitEjbDeployments(), new CmpJpaConversion(), new OpenEjb2Conversion()};
 
-        // compare the results to the expected results
-        if (expectedFileName != null) {
-            in = getClass().getClassLoader().getResourceAsStream(expectedFileName);
-            String expected = readContent(in);
-            String actual = toString(appModule.getCmpMappings());
-            Diff myDiff = new Diff(expected, actual);
-            assertTrue("Files are similar " + myDiff, myDiff.similar());
+        for (DynamicDeployer deployer : deployers) {
+            deployer.deploy(appModule);
         }
-        return appModule.getCmpMappings();
+        return appModule;
     }
 
 
-    private String toString(EntityMappings entityMappings) throws JAXBException {
-        JAXBContext entityMappingsContext = JAXBContextFactory.newInstance(EntityMappings.class);
+    private String toString(Object object, Class<?> type) throws JAXBException {
+        JAXBContext jaxbContext = JAXBContextFactory.newInstance(type);
 
-        Marshaller marshaller = entityMappingsContext.createMarshaller();
+        Marshaller marshaller = jaxbContext.createMarshaller();
         marshaller.setProperty("jaxb.formatted.output", true);
 
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        marshaller.marshal(entityMappings, baos);
+        marshaller.marshal(object, baos);
 
         String actual = new String(baos.toByteArray());
         return actual.trim();
     }
 
 
-    private String readContent(InputStream in) throws IOException {
-        StringBuffer sb = new StringBuffer();
-        in = new BufferedInputStream(in);
-        int i = in.read();
-        while (i != -1) {
-            sb.append((char) i);
-            i = in.read();
-        }
-        return sb.toString().trim();
-    }
-
 }

Added: openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/ejb-jar.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/ejb-jar.xml?rev=934317&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/ejb-jar.xml (added)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/ejb-jar.xml Thu Apr 15 07:39:43 2010
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee">
+    <enterprise-beans>
+        <session id="FooBean">
+            <ejb-name>FooBean</ejb-name>
+            <home>org.foo.RHGreen</home>
+            <remote>org.foo.RGreen</remote>
+            <local-home>org.foo.LHYellow</local-home>
+            <local>org.foo.LYellow</local>
+            <business-local>org.foo.Orange</business-local>
+            <business-remote>org.foo.Red</business-remote>
+            <ejb-class>org.foo.FooBean</ejb-class>
+            <session-type>Stateless</session-type>
+            <transaction-type>Container</transaction-type>
+        </session>
+    </enterprise-beans>
+    <assembly-descriptor/>
+</ejb-jar>

Propchange: openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/ejb-jar.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/geronimo-openejb.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/geronimo-openejb.xml?rev=934317&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/geronimo-openejb.xml (added)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/geronimo-openejb.xml Thu Apr 15 07:39:43 2010
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<ns5:ejb-jar xmlns="http://geronimo.apache.org/xml/ns/deployment-1.2" xmlns:ns2="http://geronimo.apache.org/xml/ns/j2ee/application-1.2" xmlns:ns3="http://geronimo.apache.org/xml/ns/openejb-clustering-wadi-1.2" xmlns:ns4="http://geronimo.apache.org/xml/ns/naming-1.2" xmlns:ns5="http://openejb.apache.org/xml/ns/openejb-jar-2.2" xmlns:ns6="http://geronimo.apache.org/xml/ns/j2ee/ejb/openejb-2.0" xmlns:ns7="http://geronimo.apache.org/xml/ns/security-2.0" xmlns:ns8="http://java.sun.com/xml/ns/persistence" xmlns:ns9="http://openejb.apache.org/xml/ns/pkgen-2.1">
+    <environment>
+        <moduleId>
+            <groupId>org.foo</groupId>
+            <artifactId>FooModule</artifactId>
+            <version>1.0</version>
+            <type>car</type>
+        </moduleId>
+        <dependencies>
+            <dependency>
+                <groupId>org.foo</groupId>
+                <artifactId>somedep</artifactId>
+                <version>1.0</version>
+                <type>car</type>
+            </dependency>
+        </dependencies>
+    </environment>
+</ns5:ejb-jar>

Propchange: openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/geronimo-openejb.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/openejb-jar-expected.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/openejb-jar-expected.xml?rev=934317&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/openejb-jar-expected.xml (added)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/openejb-jar-expected.xml Thu Apr 15 07:39:43 2010
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1">
+    <properties>module.property.b=valueb
+module.property.a=valuea
+</properties>
+    <ejb-deployment ejb-name="FooBean" deployment-id="FooBean">
+        <jndi interface="Local" name="thename"/>
+        <jndi interface="Remote" name="anothername"/>
+        <jndi interface="LocalHome" name="loldstyle"/>
+        <jndi interface="RemoteHome" name="roldstyle"/>
+        <properties>bean.property.b=valueb
+bean.property.a=valuea
+</properties>
+    </ejb-deployment>
+</openejb-jar>
\ No newline at end of file

Propchange: openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/openejb-jar-expected.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/openejb-jar.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/openejb-jar.xml?rev=934317&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/openejb-jar.xml (added)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/openejb-jar.xml Thu Apr 15 07:39:43 2010
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<openejb-jar xmlns="http://openejb.apache.org/xml/ns/openejb-jar-2.2" xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2">
+  <dep:environment>
+    <dep:moduleId>
+      <dep:groupId>org.foo</dep:groupId>
+      <dep:artifactId>FooModule</dep:artifactId>
+      <dep:version>1.0</dep:version>
+      <dep:type>car</dep:type>
+    </dep:moduleId>
+    <dep:dependencies>
+      <dep:dependency>
+        <dep:groupId>org.foo</dep:groupId>
+        <dep:artifactId>somedep</dep:artifactId>
+        <dep:version>1.0</dep:version>
+        <dep:type>car</dep:type>
+      </dep:dependency>
+    </dep:dependencies>
+  </dep:environment>
+  <properties>
+    module.property.b=valueb
+    module.property.a=valuea
+  </properties>
+  <enterprise-beans>
+    <session>
+      <ejb-name>FooBean</ejb-name>
+      <jndi interface="Local" name="thename"/>
+      <jndi interface="Remote" name="anothername"/>
+      <jndi interface="LocalHome" name="loldstyle"/>
+      <jndi interface="RemoteHome" name="roldstyle"/>
+      <properties>
+        bean.property.b=valueb
+        bean.property.a=valuea
+      </properties>
+    </session>
+  </enterprise-beans>
+</openejb-jar>

Propchange: openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/simple/openejb-jar.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb2/GeronimoEjbJarType.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb2/GeronimoEjbJarType.java?rev=934317&r1=934316&r2=934317&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb2/GeronimoEjbJarType.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb2/GeronimoEjbJarType.java Thu Apr 15 07:39:43 2010
@@ -34,6 +34,7 @@ import javax.xml.bind.annotation.XmlAcce
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.JAXBElement;
 import java.util.List;
 import java.util.ArrayList;
@@ -88,6 +89,7 @@ import java.util.ArrayList;
     "service",
     "persistence"
 })
+@XmlRootElement(name = "ejb-jar")
 public class GeronimoEjbJarType {
 
     @XmlElement(namespace = "http://geronimo.apache.org/xml/ns/deployment-1.2")

Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb2/JaxbOpenejbJar2.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb2/JaxbOpenejbJar2.java?rev=934317&r1=934316&r2=934317&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb2/JaxbOpenejbJar2.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb2/JaxbOpenejbJar2.java Thu Apr 15 07:39:43 2010
@@ -18,6 +18,7 @@ package org.apache.openejb.jee.oejb2;
 
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
+import java.io.OutputStream;
 import java.util.HashMap;
 import java.util.Map;
 import javax.xml.bind.JAXBContext;
@@ -52,15 +53,20 @@ public class JaxbOpenejbJar2 {
     }
 
     public static <T>String marshal(Class<T> type, Object object) throws JAXBException {
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+
+        marshal(type, object, out);
+
+        return new String(out.toByteArray());
+    }
+
+    public static <T>void marshal(Class<T> type, Object object, OutputStream out) throws JAXBException {
         JAXBContext ctx2 = getContext(type);
         Marshaller marshaller = ctx2.createMarshaller();
 
         marshaller.setProperty("jaxb.formatted.output", true);
 
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        marshaller.marshal(object, baos);
-
-        return new String(baos.toByteArray());
+        marshaller.marshal(object, out);
     }
 
     public static <T>Object unmarshal(Class<T> type, InputStream in) throws ParserConfigurationException, SAXException, JAXBException {

Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/PropertiesAdapter.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/PropertiesAdapter.java?rev=934317&r1=934316&r2=934317&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/PropertiesAdapter.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/PropertiesAdapter.java Thu Apr 15 07:39:43 2010
@@ -37,6 +37,9 @@ public class PropertiesAdapter extends X
 
         ByteArrayOutputStream out = new ByteArrayOutputStream();
         properties.store(out, null);
-        return new String(out.toByteArray());
+
+        // First comment is added by properties.store() 
+        String string = new String(out.toByteArray());
+        return string.replaceFirst("#.*?" + System.getProperty("line.separator"), "");
     }
 }