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"), "");
}
}