You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by dj...@apache.org on 2006/09/25 22:03:26 UTC
svn commit: r449796 - in /incubator/openejb/trunk/openejb2: ./
modules/openejb-builder/
modules/openejb-builder/src/main/java/org/openejb/deployment/
modules/openejb-builder/src/main/java/org/openejb/deployment/ant/
modules/openejb-builder/src/test/jav...
Author: djencks
Date: Mon Sep 25 13:03:25 2006
New Revision: 449796
URL: http://svn.apache.org/viewvc?view=rev&rev=449796
Log:
GERONIMO-2414 move the ejb conversions to the openejb module builders
Added:
incubator/openejb/trunk/openejb2/modules/openejb-builder/src/test/java/org/openejb/deployment/SchemaConversionTest.java (with props)
incubator/openejb/trunk/openejb2/modules/openejb-builder/src/test/resources/
- copied from r449747, geronimo/server/trunk/modules/geronimo-j2ee-schema/src/test/resources/
Removed:
incubator/openejb/trunk/openejb2/modules/openejb-builder/src/test/resources/geronimo/
incubator/openejb/trunk/openejb2/modules/openejb-builder/src/test/resources/j2ee_1_3dtd/DescriptionGroupTestExpected.xml
incubator/openejb/trunk/openejb2/modules/openejb-builder/src/test/resources/j2ee_1_3dtd/DescriptionGroupTestSource.xml
incubator/openejb/trunk/openejb2/modules/openejb-builder/src/test/resources/j2ee_1_3dtd/JNDIEnvironmentRefsGroupTestExpected.xml
incubator/openejb/trunk/openejb2/modules/openejb-builder/src/test/resources/j2ee_1_3dtd/JNDIEnvironmentRefsGroupTestSource.xml
incubator/openejb/trunk/openejb2/modules/openejb-builder/src/test/resources/j2ee_1_3dtd/application-client-13.xml
incubator/openejb/trunk/openejb2/modules/openejb-builder/src/test/resources/j2ee_1_3dtd/application-client-14.xml
incubator/openejb/trunk/openejb2/modules/openejb-builder/src/test/resources/j2ee_1_3dtd/ra-10.xml
incubator/openejb/trunk/openejb2/modules/openejb-builder/src/test/resources/j2ee_1_3dtd/ra-15.xml
incubator/openejb/trunk/openejb2/modules/openejb-builder/src/test/resources/j2ee_1_3dtd/tmp.xml
Modified:
incubator/openejb/trunk/openejb2/modules/openejb-builder/pom.xml
incubator/openejb/trunk/openejb2/modules/openejb-builder/src/main/java/org/openejb/deployment/OpenEjbModuleBuilder.java
incubator/openejb/trunk/openejb2/modules/openejb-builder/src/main/java/org/openejb/deployment/XmlBeansHelper.java
incubator/openejb/trunk/openejb2/modules/openejb-builder/src/main/java/org/openejb/deployment/ant/DDLExporterTask.java
incubator/openejb/trunk/openejb2/pom.xml
Modified: incubator/openejb/trunk/openejb2/modules/openejb-builder/pom.xml
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb2/modules/openejb-builder/pom.xml?view=diff&rev=449796&r1=449795&r2=449796
==============================================================================
--- incubator/openejb/trunk/openejb2/modules/openejb-builder/pom.xml (original)
+++ incubator/openejb/trunk/openejb2/modules/openejb-builder/pom.xml Mon Sep 25 13:03:25 2006
@@ -70,6 +70,13 @@
<!--</dependency>-->
<!---->
<dependency>
+ <groupId>org.apache.geronimo.testsupport</groupId>
+ <artifactId>testsupport-common</artifactId>
+ <version>${geronimoVersion}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
</dependency>
Modified: incubator/openejb/trunk/openejb2/modules/openejb-builder/src/main/java/org/openejb/deployment/OpenEjbModuleBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb2/modules/openejb-builder/src/main/java/org/openejb/deployment/OpenEjbModuleBuilder.java?view=diff&rev=449796&r1=449795&r2=449796
==============================================================================
--- incubator/openejb/trunk/openejb2/modules/openejb-builder/src/main/java/org/openejb/deployment/OpenEjbModuleBuilder.java (original)
+++ incubator/openejb/trunk/openejb2/modules/openejb-builder/src/main/java/org/openejb/deployment/OpenEjbModuleBuilder.java Mon Sep 25 13:03:25 2006
@@ -109,6 +109,8 @@
import org.apache.geronimo.xbeans.j2ee.SessionBeanType;
import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlDocumentProperties;
import org.openejb.EJBModuleImplGBean;
import org.openejb.EjbDeployment;
import org.openejb.proxy.EJBProxyFactory;
@@ -144,6 +146,7 @@
private final NamingBuilder namingBuilders;
private final ActivationSpecInfoLocator activationSpecInfoLocator;
private final ResourceEnvironmentSetter resourceEnvironmentSetter;
+ private static final QName CMP_VERSION = new QName(SchemaConversionUtils.J2EE_NAMESPACE, "cmp-version");
static {
@@ -290,7 +293,7 @@
//there is a file named ejb-jar.xml in META-INF. If we can't process it, it is an error.
try {
// parse it
- EjbJarDocument ejbJarDoc = SchemaConversionUtils.convertToEJBSchema(XmlBeansUtil.parse(specDD));
+ EjbJarDocument ejbJarDoc = convertToEJBSchema(XmlBeansUtil.parse(specDD));
ejbJar = ejbJarDoc.getEjbJar();
} catch (XmlException e) {
throw new DeploymentException("Error parsing ejb-jar.xml", e);
@@ -389,6 +392,151 @@
return openejbEjbJar;
}
+ public ActivationSpecInfoLocator getActivationSpecInfoLocator() {
+ return activationSpecInfoLocator;
+ }
+
+ public ResourceEnvironmentSetter getResourceEnvironmentSetter() {
+ return resourceEnvironmentSetter;
+ }
+
+ public static EjbJarDocument convertToEJBSchema(XmlObject xmlObject) throws XmlException {
+ if (EjbJarDocument.type.equals(xmlObject.schemaType())) {
+ XmlBeansUtil.validateDD(xmlObject);
+ return (EjbJarDocument) xmlObject;
+ }
+ XmlCursor cursor = xmlObject.newCursor();
+ XmlCursor moveable = xmlObject.newCursor();
+ //cursor is intially located before the logical STARTDOC token
+ try {
+ cursor.toFirstChild();
+ if ("http://java.sun.com/xml/ns/j2ee".equals(cursor.getName().getNamespaceURI())) {
+ XmlObject result = xmlObject.changeType(EjbJarDocument.type);
+ XmlBeansUtil.validateDD(result);
+ return (EjbJarDocument) result;
+ }
+ // deployment descriptor is probably in EJB 1.1 or 2.0 format
+ XmlDocumentProperties xmlDocumentProperties = cursor.documentProperties();
+ String publicId = xmlDocumentProperties.getDoctypePublicId();
+ String cmpVersion;
+ if ("-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN".equals(publicId)) {
+ cmpVersion = "1.x";
+ } else if ("-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN".equals(publicId)) {
+ cmpVersion = null;//2.x is the default "2.x";
+ } else {
+ throw new XmlException("Unrecognized document type: " + publicId);
+ }
+ String schemaLocationURL = "http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd";
+ String version = "2.1";
+ SchemaConversionUtils.convertToSchema(cursor, SchemaConversionUtils.J2EE_NAMESPACE, schemaLocationURL, version);
+ //play with message-driven
+ cursor.toStartDoc();
+ convertBeans(cursor, moveable, cmpVersion);
+ } finally {
+ cursor.dispose();
+ moveable.dispose();
+ }
+ XmlObject result = xmlObject.changeType(EjbJarDocument.type);
+ if (result != null) {
+ XmlBeansUtil.validateDD(result);
+ return (EjbJarDocument) result;
+ }
+ XmlBeansUtil.validateDD(xmlObject);
+ return (EjbJarDocument) xmlObject;
+ }
+
+ private static void convertBeans(XmlCursor cursor, XmlCursor moveable, String cmpVersion) {
+ cursor.toChild(SchemaConversionUtils.J2EE_NAMESPACE, "ejb-jar");
+ cursor.toChild(SchemaConversionUtils.J2EE_NAMESPACE, "enterprise-beans");
+ if (cursor.toFirstChild()) {
+ //there's at least one ejb...
+ do {
+ cursor.push();
+ String type = cursor.getName().getLocalPart();
+ if ("session".equals(type)) {
+ cursor.toChild(SchemaConversionUtils.J2EE_NAMESPACE, "transaction-type");
+ cursor.toNextSibling();
+ SchemaConversionUtils.convertToJNDIEnvironmentRefsGroup(SchemaConversionUtils.J2EE_NAMESPACE, cursor, moveable);
+ } else if ("entity".equals(type)) {
+ cursor.toChild(SchemaConversionUtils.J2EE_NAMESPACE, "persistence-type");
+ String persistenceType = cursor.getTextValue();
+ //reentrant is the last required tag before jndiEnvironmentRefsGroup
+ cursor.toNextSibling(SchemaConversionUtils.J2EE_NAMESPACE, "reentrant");
+ //Convert 2.0 True/False to true/false for 2.1
+ cursor.setTextValue(cursor.getTextValue().toLowerCase());
+ if (cmpVersion != null && !cursor.toNextSibling(CMP_VERSION) && "Container".equals(persistenceType)) {
+ cursor.toNextSibling();
+ cursor.insertElementWithText(CMP_VERSION, cmpVersion);
+ }
+
+ cursor.toNextSibling(SchemaConversionUtils.J2EE_NAMESPACE, "abstract-schema-name");
+ while (cursor.toNextSibling(SchemaConversionUtils.J2EE_NAMESPACE, "cmp-field")) {
+ }
+ cursor.toNextSibling(SchemaConversionUtils.J2EE_NAMESPACE, "primkey-field");
+ cursor.toNextSibling();
+ SchemaConversionUtils.convertToJNDIEnvironmentRefsGroup(SchemaConversionUtils.J2EE_NAMESPACE, cursor, moveable);
+ } else if ("message-driven".equals(type)) {
+ cursor.toFirstChild();
+ if (cursor.toNextSibling(SchemaConversionUtils.J2EE_NAMESPACE, "messaging-type")) {
+ cursor.toNextSibling(SchemaConversionUtils.J2EE_NAMESPACE, "transaction-type");
+ } else {
+ cursor.toNextSibling(SchemaConversionUtils.J2EE_NAMESPACE, "transaction-type");
+ //insert messaging-type (introduced in EJB 2.1 spec) before transaction-type
+ cursor.insertElementWithText("messaging-type", SchemaConversionUtils.J2EE_NAMESPACE, "javax.jms.MessageListener");
+ //cursor still on transaction-type
+ }
+ if (!cursor.toNextSibling(SchemaConversionUtils.J2EE_NAMESPACE, "activation-config")) {
+ //skip transaction-type
+ cursor.toNextSibling();
+ //convert EJB 2.0 elements to activation-config-properties.
+ moveable.toCursor(cursor);
+ cursor.push();
+ cursor.beginElement("activation-config", SchemaConversionUtils.J2EE_NAMESPACE);
+ boolean hasProperties = addActivationConfigProperty(moveable, cursor, "message-selector", "messageSelector");
+ hasProperties |= addActivationConfigProperty(moveable, cursor, "acknowledge-mode", "acknowledgeMode");
+ if (new QName(SchemaConversionUtils.J2EE_NAMESPACE, "message-driven-destination").equals(moveable.getName()) ||
+ moveable.toNextSibling(SchemaConversionUtils.J2EE_NAMESPACE, "message-driven-destination")) {
+ moveable.push();
+ moveable.toFirstChild();
+ hasProperties |= addActivationConfigProperty(moveable, cursor, "destination-type", "destinationType");
+ hasProperties |= addActivationConfigProperty(moveable, cursor, "subscription-durability", "subscriptionDurability");
+ moveable.pop();
+ moveable.removeXml();
+ }
+ cursor.pop();
+ if (!hasProperties) {
+ //the activation-config element that we created is empty so delete it
+ cursor.toPrevSibling();
+ cursor.removeXml();
+ //cursor should now be at first element in JNDIEnvironmentRefsGroup
+ }
+ } else {
+ //cursor pointing at activation-config
+ cursor.toNextSibling();
+ //cursor should now be at first element in JNDIEnvironmentRefsGroup
+ }
+ SchemaConversionUtils.convertToJNDIEnvironmentRefsGroup(SchemaConversionUtils.J2EE_NAMESPACE, cursor, moveable);
+ }
+ cursor.pop();
+ } while (cursor.toNextSibling());
+ }
+ }
+
+ private static boolean addActivationConfigProperty(XmlCursor moveable, XmlCursor cursor, String elementName, String propertyName) {
+ QName name = new QName(SchemaConversionUtils.J2EE_NAMESPACE, elementName);
+ if (name.equals(moveable.getName()) || moveable.toNextSibling(name)) {
+ cursor.push();
+ cursor.beginElement("activation-config-property", SchemaConversionUtils.J2EE_NAMESPACE);
+ cursor.insertElementWithText("activation-config-property-name", SchemaConversionUtils.J2EE_NAMESPACE, propertyName);
+ cursor.insertElementWithText("activation-config-property-value", SchemaConversionUtils.J2EE_NAMESPACE, moveable.getTextValue());
+ moveable.removeXml();
+ cursor.pop();
+ cursor.toNextSibling();
+ return true;
+ }
+ return false;
+ }
+
public void installModule(JarFile earFile, EARContext earContext, Module module, Collection configurationStores, ConfigurationStore targetConfigurationStore, Collection repository) throws DeploymentException {
JarFile moduleFile = module.getModuleFile();
try {
@@ -652,11 +800,4 @@
return GBEAN_INFO;
}
- public ActivationSpecInfoLocator getActivationSpecInfoLocator() {
- return activationSpecInfoLocator;
- }
-
- public ResourceEnvironmentSetter getResourceEnvironmentSetter() {
- return resourceEnvironmentSetter;
- }
}
Modified: incubator/openejb/trunk/openejb2/modules/openejb-builder/src/main/java/org/openejb/deployment/XmlBeansHelper.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb2/modules/openejb-builder/src/main/java/org/openejb/deployment/XmlBeansHelper.java?view=diff&rev=449796&r1=449795&r2=449796
==============================================================================
--- incubator/openejb/trunk/openejb2/modules/openejb-builder/src/main/java/org/openejb/deployment/XmlBeansHelper.java (original)
+++ incubator/openejb/trunk/openejb2/modules/openejb-builder/src/main/java/org/openejb/deployment/XmlBeansHelper.java Mon Sep 25 13:03:25 2006
@@ -79,7 +79,7 @@
public static EjbJarType loadEjbJar(File file) throws IOException, XmlException {
EjbJarDocument ejbJarDoc = ((EjbJarDocument) XmlObject.Factory.parse(file));
- ejbJarDoc = SchemaConversionUtils.convertToEJBSchema(ejbJarDoc);
+ ejbJarDoc = OpenEjbModuleBuilder.convertToEJBSchema(ejbJarDoc);
return ejbJarDoc.getEjbJar();
}
Modified: incubator/openejb/trunk/openejb2/modules/openejb-builder/src/main/java/org/openejb/deployment/ant/DDLExporterTask.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb2/modules/openejb-builder/src/main/java/org/openejb/deployment/ant/DDLExporterTask.java?view=diff&rev=449796&r1=449795&r2=449796
==============================================================================
--- incubator/openejb/trunk/openejb2/modules/openejb-builder/src/main/java/org/openejb/deployment/ant/DDLExporterTask.java (original)
+++ incubator/openejb/trunk/openejb2/modules/openejb-builder/src/main/java/org/openejb/deployment/ant/DDLExporterTask.java Mon Sep 25 13:03:25 2006
@@ -71,6 +71,7 @@
import org.apache.xmlbeans.XmlObject;
import org.openejb.deployment.CmpSchemaBuilder;
import org.openejb.deployment.TranqlCmpSchemaBuilder;
+import org.openejb.deployment.OpenEjbModuleBuilder;
import org.openejb.entity.cmp.ModuleSchema;
import org.openejb.entity.cmp.TranqlSchemaBuilder;
import org.openejb.xbeans.ejbjar.OpenejbOpenejbJarDocument;
@@ -157,7 +158,7 @@
} finally {
in.close();
}
- EjbJarType ejbJarType = SchemaConversionUtils.convertToEJBSchema(xmlObject).getEjbJar();
+ EjbJarType ejbJarType = OpenEjbModuleBuilder.convertToEJBSchema(xmlObject).getEjbJar();
in = openejbJarLocation.getInputStream(project);
try {
Added: incubator/openejb/trunk/openejb2/modules/openejb-builder/src/test/java/org/openejb/deployment/SchemaConversionTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb2/modules/openejb-builder/src/test/java/org/openejb/deployment/SchemaConversionTest.java?view=auto&rev=449796
==============================================================================
--- incubator/openejb/trunk/openejb2/modules/openejb-builder/src/test/java/org/openejb/deployment/SchemaConversionTest.java (added)
+++ incubator/openejb/trunk/openejb2/modules/openejb-builder/src/test/java/org/openejb/deployment/SchemaConversionTest.java Mon Sep 25 13:03:25 2006
@@ -0,0 +1,175 @@
+/*
+ * 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.
+ */
+
+
+package org.openejb.deployment;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.Assert;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.geronimo.deployment.xmlbeans.XmlBeansUtil;
+import org.apache.geronimo.schema.SchemaConversionUtils;
+import org.apache.geronimo.testsupport.XmlBeansTestSupport;
+import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlObject;
+
+/**
+ * ejb 1.1 dtd appears to be a subset of ejb 2.0 dtd so the same xsl should
+ * work for both.
+ *
+ * @version $Rev$ $Date$
+ */
+public class SchemaConversionTest extends XmlBeansTestSupport {
+ private static final Log log = LogFactory.getLog(SchemaConversionTest.class);
+
+ private ClassLoader classLoader = this.getClass().getClassLoader();
+
+ public void testEJB11ToEJB21Transform() throws Exception {
+ URL srcXml = classLoader.getResource("j2ee_1_2dtd/ejb-1-11.xml");
+ URL expectedOutputXml = classLoader.getResource("j2ee_1_2dtd/ejb-1-21.xml");
+ XmlObject xmlObject = XmlObject.Factory.parse(srcXml);
+ XmlObject expected = XmlObject.Factory.parse(expectedOutputXml);
+ XmlBeansUtil.validateDD(expected);
+ xmlObject = OpenEjbModuleBuilder.convertToEJBSchema(xmlObject);
+// log.debug(xmlObject.toString());
+// log.debug(expected.toString());
+ List problems = new ArrayList();
+ boolean ok = compareXmlObjects(xmlObject, expected, problems);
+ Assert.assertTrue("Differences: " + problems, ok);
+ //make sure trying to convert twice has no bad effects
+ XmlCursor cursor2 = xmlObject.newCursor();
+ try {
+ String schemaLocationURL = "http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd";
+ String version = "2.1";
+ Assert.assertFalse(SchemaConversionUtils.convertToSchema(cursor2, SchemaConversionUtils.J2EE_NAMESPACE, schemaLocationURL, version));
+ } finally {
+ cursor2.dispose();
+ }
+ boolean ok2 = compareXmlObjects(xmlObject, expected, problems);
+ Assert.assertTrue("Differences after reconverting to schema: " + problems, ok2);
+ //do the whole transform twice...
+ xmlObject = OpenEjbModuleBuilder.convertToEJBSchema(xmlObject);
+ boolean ok3 = compareXmlObjects(xmlObject, expected, problems);
+ Assert.assertTrue("Differences after reconverting to ejb schema: " + problems, ok3);
+ }
+
+ public void testEJB20ToEJB21Transform() throws Exception {
+ URL srcXml = classLoader.getResource("j2ee_1_3dtd/ejb-jar.xml");
+ URL expectedOutputXml = classLoader.getResource("j2ee_1_3dtd/ejb-jar-21.xml");
+ XmlObject xmlObject = XmlObject.Factory.parse(srcXml);
+ XmlObject expected = XmlObject.Factory.parse(expectedOutputXml);
+ XmlBeansUtil.validateDD(expected);
+ xmlObject = OpenEjbModuleBuilder.convertToEJBSchema(xmlObject);
+// log.debug(xmlObject.toString());
+// log.debug(expected.toString());
+ List problems = new ArrayList();
+ boolean ok = compareXmlObjects(xmlObject, expected, problems);
+ Assert.assertTrue("Differences: " + problems, ok);
+ //make sure trying to convert twice has no bad effects
+ XmlCursor cursor2 = xmlObject.newCursor();
+ try {
+ String schemaLocationURL = "http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd";
+ String version = "2.1";
+ Assert.assertFalse(SchemaConversionUtils.convertToSchema(cursor2, SchemaConversionUtils.J2EE_NAMESPACE, schemaLocationURL, version));
+ } finally {
+ cursor2.dispose();
+ }
+ boolean ok2 = compareXmlObjects(xmlObject, expected, problems);
+ Assert.assertTrue("Differences after reconverting to schema: " + problems, ok2);
+ //do the whole transform twice...
+ xmlObject = OpenEjbModuleBuilder.convertToEJBSchema(xmlObject);
+ boolean ok3 = compareXmlObjects(xmlObject, expected, problems);
+ Assert.assertTrue("Differences after reconverting to ejb schema: " + problems, ok3);
+ }
+
+ public void testMDB20ToEJB21TransformBugGERONIMO_1649() throws Exception {
+ URL srcXml = classLoader.getResource("j2ee_1_3dtd/mdb-ejb-jar-20-GERONIMO-1649.xml");
+ URL expectedOutputXml = classLoader.getResource("j2ee_1_3dtd/mdb-ejb-jar-21-GERONIMO-1649.xml");
+ XmlObject xmlObject = XmlObject.Factory.parse(srcXml);
+ XmlObject expected = XmlObject.Factory.parse(expectedOutputXml);
+ XmlBeansUtil.validateDD(expected);
+ xmlObject = OpenEjbModuleBuilder.convertToEJBSchema(xmlObject);
+// log.debug(xmlObject.toString());
+// log.debug(expected.toString());
+ List problems = new ArrayList();
+ boolean ok = compareXmlObjects(xmlObject, expected, problems);
+ Assert.assertTrue("Differences: " + problems, ok);
+ //make sure trying to convert twice has no bad effects
+ XmlCursor cursor2 = xmlObject.newCursor();
+ try {
+ String schemaLocationURL = "http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd";
+ String version = "2.1";
+ Assert.assertFalse(SchemaConversionUtils.convertToSchema(cursor2, SchemaConversionUtils.J2EE_NAMESPACE, schemaLocationURL, version));
+ } finally {
+ cursor2.dispose();
+ }
+ boolean ok2 = compareXmlObjects(xmlObject, expected, problems);
+ Assert.assertTrue("Differences after reconverting to schema: " + problems, ok2);
+ //do the whole transform twice...
+ xmlObject = OpenEjbModuleBuilder.convertToEJBSchema(xmlObject);
+ boolean ok3 = compareXmlObjects(xmlObject, expected, problems);
+ Assert.assertTrue("Differences after reconverting to ejb schema: " + problems, ok3);
+ }
+
+ public void testMDB20To21Transform() throws Exception {
+ URL srcXml = classLoader.getResource("j2ee_1_3dtd/mdb-ejb-jar-20.xml");
+ URL expectedOutputXml = classLoader.getResource("j2ee_1_3dtd/mdb-ejb-jar-21.xml");
+ XmlObject xmlObject = XmlObject.Factory.parse(srcXml);
+ XmlObject expected = XmlObject.Factory.parse(expectedOutputXml);
+ XmlBeansUtil.validateDD(expected);
+ xmlObject = OpenEjbModuleBuilder.convertToEJBSchema(xmlObject);
+// log.debug(xmlObject.toString());
+// log.debug(expected.toString());
+ List problems = new ArrayList();
+ boolean ok = compareXmlObjects(xmlObject, expected, problems);
+ Assert.assertTrue("Differences: " + problems, ok);
+ //make sure trying to convert twice has no bad effects
+ XmlCursor cursor2 = xmlObject.newCursor();
+ try {
+ String schemaLocationURL = "http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd";
+ String version = "2.1";
+ Assert.assertFalse(SchemaConversionUtils.convertToSchema(cursor2, SchemaConversionUtils.J2EE_NAMESPACE, schemaLocationURL, version));
+ } finally {
+ cursor2.dispose();
+ }
+ boolean ok2 = compareXmlObjects(xmlObject, expected, problems);
+ Assert.assertTrue("Differences after reconverting to schema: " + problems, ok2);
+ //do the whole transform twice...
+ xmlObject = OpenEjbModuleBuilder.convertToEJBSchema(xmlObject);
+ boolean ok3 = compareXmlObjects(xmlObject, expected, problems);
+ Assert.assertTrue("Differences after reconverting to ejb schema: " + problems, ok3);
+ }
+
+
+ public void testEJB21To21DoesNothing() throws Exception {
+ URL srcXml = classLoader.getResource("j2ee_1_4schema/ejb-jar.xml");
+ URL expectedOutputXml = classLoader.getResource("j2ee_1_4schema/ejb-jar.xml");
+ XmlObject xmlObject = XmlObject.Factory.parse(srcXml);
+ xmlObject = OpenEjbModuleBuilder.convertToEJBSchema(xmlObject);
+ XmlObject expected = XmlObject.Factory.parse(expectedOutputXml);
+ List problems = new ArrayList();
+ boolean ok = compareXmlObjects(xmlObject, expected, problems);
+ Assert.assertTrue("Differences: " + problems, ok);
+ }
+
+}
Propchange: incubator/openejb/trunk/openejb2/modules/openejb-builder/src/test/java/org/openejb/deployment/SchemaConversionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/openejb/trunk/openejb2/modules/openejb-builder/src/test/java/org/openejb/deployment/SchemaConversionTest.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: incubator/openejb/trunk/openejb2/modules/openejb-builder/src/test/java/org/openejb/deployment/SchemaConversionTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: incubator/openejb/trunk/openejb2/pom.xml
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb2/pom.xml?view=diff&rev=449796&r1=449795&r2=449796
==============================================================================
--- incubator/openejb/trunk/openejb2/pom.xml (original)
+++ incubator/openejb/trunk/openejb2/pom.xml Mon Sep 25 13:03:25 2006
@@ -674,6 +674,9 @@
<testResources>
<testResource>
+ <directory>src/test/resources</directory>
+ </testResource>
+ <testResource>
<directory>src/test-data</directory>
</testResource>
<testResource>