djencks 2005/09/28 18:14:25
Modified: modules/openejb-builder/src/java/org/openejb/deployment
OpenEJBModuleBuilder.java OpenEJBSchemaUtils.java
Log:
GERONIMO-1027, GERONIMO-957. Version our schemas, and provide specific jetty
and tomcat schemas. Schema processing cleanup. A couple other minor fixes
Revision Changes Path
1.57 +18 -17
openejb/modules/openejb-builder/src/java/org/openejb/deployment/OpenEJBModuleBuilder.java
Index: OpenEJBModuleBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/OpenEJBModuleBuilder.java,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -r1.56 -r1.57
--- OpenEJBModuleBuilder.java 13 Sep 2005 13:04:59 -0000 1.56
+++ OpenEJBModuleBuilder.java 28 Sep 2005 22:14:25 -0000 1.57
@@ -68,10 +68,12 @@
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
+import javax.xml.namespace.QName;
import org.apache.geronimo.common.DeploymentException;
import org.apache.geronimo.deployment.service.ServiceConfigBuilder;
import org.apache.geronimo.deployment.util.DeploymentUtil;
+import org.apache.geronimo.deployment.xmlbeans.XmlBeansUtil;
import org.apache.geronimo.deployment.xbeans.DependencyType;
import org.apache.geronimo.deployment.xbeans.GbeanType;
import org.apache.geronimo.deployment.DeploymentContext;
@@ -117,6 +119,7 @@
import org.openejb.xbeans.ejbjar.OpenejbOpenejbJarDocument;
import org.openejb.xbeans.ejbjar.OpenejbOpenejbJarType;
import org.openejb.xbeans.ejbjar.OpenejbSessionBeanType;
+import org.openejb.xbeans.pkgen.EjbKeyGeneratorDocument;
import org.tranql.cache.GlobalSchema;
import org.tranql.ejb.EJBSchema;
import org.tranql.ejb.TransactionManagerDelegate;
@@ -144,6 +147,13 @@
private final Kernel kernel;
private static final String OPENEJBJAR_NAMESPACE =
OpenejbOpenejbJarDocument.type.getDocumentElementName().getNamespaceURI();
+ static {
+ Map conversions = new HashMap();
+ QName name = EjbKeyGeneratorDocument.type.getDocumentElementName();
+ conversions.put(name.getLocalPart(), name.getNamespaceURI());
+ SchemaConversionUtils.registerNamespaceConversions(conversions);
+ }
+
public OpenEJBModuleBuilder(URI[] defaultParentId, ObjectName listener,
Object webServiceLinkTemplate, WebServiceBuilder webServiceBuilder, Repository
repository, Kernel kernel) throws GBeanNotFoundException {
this(defaultParentId, listener, getLinkData(kernel,
webServiceLinkTemplate), webServiceBuilder, repository, kernel);
}
@@ -200,7 +210,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(SchemaConversionUtils.parse(specDD));
+ EjbJarDocument ejbJarDoc =
SchemaConversionUtils.convertToEJBSchema(XmlBeansUtil.parse(specDD));
ejbJar = ejbJarDoc.getEjbJar();
} catch (XmlException e) {
throw new DeploymentException("Error parsing ejb-jar.xml", e);
@@ -226,35 +236,26 @@
OpenejbOpenejbJarType getOpenejbJar(Object plan, JarFile moduleFile,
boolean standAlone, String targetPath, EjbJarType ejbJar) throws
DeploymentException {
OpenejbOpenejbJarType openejbJar = null;
+ XmlObject rawPlan = null;
try {
// load the openejb-jar.xml from either the supplied plan or
from the earFile
try {
if (plan instanceof XmlObject) {
- openejbJar = (OpenejbOpenejbJarType)
SchemaConversionUtils.getNestedObjectAsType((XmlObject) plan,
- "openejb-jar",
- OpenejbOpenejbJarType.type);
+ rawPlan = (XmlObject) plan;
} else {
- OpenejbOpenejbJarDocument openejbJarDoc = null;
if (plan != null) {
- openejbJarDoc =
OpenejbOpenejbJarDocument.Factory.parse((File) plan);
+ rawPlan = XmlBeansUtil.parse(((File) plan).toURL());
} else {
URL path = DeploymentUtil.createJarURL(moduleFile,
"META-INF/openejb-jar.xml");
- openejbJarDoc =
OpenejbOpenejbJarDocument.Factory.parse(path);
- }
- if (openejbJarDoc != null) {
- openejbJar = openejbJarDoc.getOpenejbJar();
+ rawPlan = XmlBeansUtil.parse(path);
}
}
} catch (IOException e) {
}
// if we got one extract, adjust, and validate it otherwise
create a default one
- if (openejbJar != null) {
- openejbJar = (OpenejbOpenejbJarType)
SchemaConversionUtils.convertToGeronimoNamingSchema(openejbJar);
- openejbJar = (OpenejbOpenejbJarType)
SchemaConversionUtils.convertToGeronimoSecuritySchema(openejbJar);
- openejbJar = (OpenejbOpenejbJarType)
SchemaConversionUtils.convertToGeronimoServiceSchema(openejbJar);
- openejbJar = (OpenejbOpenejbJarType)
OpenEJBSchemaUtils.convertToPKGenSchema(openejbJar);
- SchemaConversionUtils.validateDD(openejbJar);
+ if (rawPlan != null) {
+ openejbJar = (OpenejbOpenejbJarType)
SchemaConversionUtils.fixGeronimoSchema(rawPlan, "openejb-jar",
OpenejbOpenejbJarType.type);
} else {
String path;
if (standAlone) {
1.2 +3 -3
openejb/modules/openejb-builder/src/java/org/openejb/deployment/OpenEJBSchemaUtils.java
Index: OpenEJBSchemaUtils.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/OpenEJBSchemaUtils.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- OpenEJBSchemaUtils.java 9 Jul 2005 18:46:36 -0000 1.1
+++ OpenEJBSchemaUtils.java 28 Sep 2005 22:14:25 -0000 1.2
@@ -58,7 +58,7 @@
* @version $Revision$ $Date$
*/
public class OpenEJBSchemaUtils {
- private static final String OPENEJB_PKGEN_NAMESPACE =
"http://www.openejb.org/xml/ns/pkgen";
+ private static final String OPENEJB_PKGEN_NAMESPACE =
"http://www.openejb.org/xml/ns/pkgen-2.0";
/**
* Finds any key-generator elements in the openejb-jar.xml file and
@@ -66,7 +66,7 @@
*
* @param xmlObject The root of the openejb-jar.xml document
* @return The adjusted openejb-jar.xml document
- */
+ */
public static XmlObject convertToPKGenSchema(XmlObject xmlObject) {
XmlCursor cursor = xmlObject.newCursor();
XmlCursor end = xmlObject.newCursor();