[jboss-cvs] JBossAS SVN: r90090 - in projects/metadata/trunk/src/test: resources and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jun 11 09:25:05 EDT 2009
Author: alex.loubyansky at jboss.com
Date: 2009-06-11 09:25:04 -0400 (Thu, 11 Jun 2009)
New Revision: 90090
Added:
projects/metadata/trunk/src/test/resources/schema2class.properties
Modified:
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/common/MetaDataSchemaResolverFactory.java
Log:
JBMETA-206
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/common/MetaDataSchemaResolverFactory.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/common/MetaDataSchemaResolverFactory.java 2009-06-11 13:20:19 UTC (rev 90089)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/common/MetaDataSchemaResolverFactory.java 2009-06-11 13:25:04 UTC (rev 90090)
@@ -21,37 +21,16 @@
*/
package org.jboss.test.metadata.common;
-import org.jboss.metadata.client.jboss.JBossClient5DTDMetaData;
-import org.jboss.metadata.client.jboss.JBossClient5MetaData;
-import org.jboss.metadata.client.spec.ApplicationClient14DTDMetaData;
-import org.jboss.metadata.client.spec.ApplicationClient14MetaData;
-import org.jboss.metadata.client.spec.ApplicationClient5MetaData;
-import org.jboss.metadata.ear.jboss.JBoss50AppMetaData;
-import org.jboss.metadata.ear.jboss.JBoss50DTDAppMetaData;
-import org.jboss.metadata.ear.spec.Ear13DTDMetaData;
-import org.jboss.metadata.ear.spec.Ear14MetaData;
-import org.jboss.metadata.ear.spec.Ear50MetaData;
-import org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData;
-import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
-import org.jboss.metadata.ejb.jboss.JBoss51MetaData;
-import org.jboss.metadata.ejb.spec.EjbJar1xMetaData;
-import org.jboss.metadata.ejb.spec.EjbJar20MetaData;
-import org.jboss.metadata.ejb.spec.EjbJar21MetaData;
-import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
-import org.jboss.metadata.jpa.spec.PersistenceMetaData;
-import org.jboss.metadata.rar.jboss.JBossRAMetaData;
-import org.jboss.metadata.rar.jboss.mcf.ConnectionFactoryDeploymentGroup;
-import org.jboss.metadata.rar.jboss.mcf.ManagedConnectionFactoryDeploymentGroup;
-import org.jboss.metadata.rar.spec.JCA15MetaData;
-import org.jboss.metadata.rar.spec.JCA16MetaData;
-import org.jboss.metadata.web.jboss.JBoss4xDTDWebMetaData;
-import org.jboss.metadata.web.jboss.JBoss50DTDWebMetaData;
-import org.jboss.metadata.web.spec.Web23MetaData;
-import org.jboss.metadata.web.spec.Web24MetaData;
-import org.jboss.metadata.web.spec.Web25MetaData;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+import java.util.regex.Pattern;
+
+import org.jboss.logging.Logger;
import org.jboss.xb.binding.resolver.MultiClassSchemaResolver;
import org.jboss.xb.binding.resolver.MutableSchemaResolver;
+
/**
* A MetaDataSchemaResolverFactory.
*
@@ -60,64 +39,121 @@
*/
public class MetaDataSchemaResolverFactory
{
+ private static final Logger log = Logger.getLogger(MetaDataSchemaResolverFactory.class);
+
+ private static MultiClassSchemaResolver resolver;
+ private static final Pattern classesPattern = Pattern.compile("(\\s)*,(\\s)*");
+
public static MutableSchemaResolver createSchemaResolver()
- {
- MultiClassSchemaResolver resolver = new MultiClassSchemaResolver();
-
- // EJB
- resolver.mapLocationToClass("ejb-jar_1_1.dtd", EjbJar1xMetaData.class);
- resolver.mapLocationToClass("ejb-jar_2_0.dtd", EjbJar20MetaData.class);
- resolver.mapLocationToClass("ejb-jar_2_1.xsd", EjbJar21MetaData.class);
- resolver.mapLocationToClass("ejb-jar_3_0.xsd", EjbJar30MetaData.class);
- resolver.mapLocationToClass("jboss", JBoss50DTDMetaData.class);
- resolver.mapLocationToClass("jboss_3_0.dtd", JBoss50DTDMetaData.class);
- resolver.mapLocationToClass("jboss_3_2.dtd", JBoss50DTDMetaData.class);
- resolver.mapLocationToClass("jboss_4_0.dtd", JBoss50DTDMetaData.class);
- resolver.mapLocationToClass("jboss_4_2.dtd", JBoss50DTDMetaData.class);
- resolver.mapLocationToClass("jboss_5_0.dtd", JBoss50DTDMetaData.class);
- resolver.mapLocationToClass("jboss_5_0.xsd", JBoss50MetaData.class);
- resolver.mapLocationToClass("jboss_5_1.xsd", JBoss51MetaData.class);
-
- // client
- resolver.mapLocationToClass("application-client_1_3.dtd", ApplicationClient14DTDMetaData.class);
- resolver.mapLocationToClass("application-client_1_4.xsd", ApplicationClient14MetaData.class);
- resolver.mapLocationToClass("application-client_5.xsd", ApplicationClient5MetaData.class);
- resolver.mapLocationToClass("jboss-client_4_0.dtd", JBossClient5DTDMetaData.class);
- resolver.mapLocationToClass("jboss-client_4_2.dtd", JBossClient5DTDMetaData.class);
- resolver.mapLocationToClass("jboss-client_5_0.dtd", JBossClient5DTDMetaData.class);
- resolver.mapLocationToClass("jboss-client_5_0.xsd", JBossClient5MetaData.class);
- resolver.mapLocationToClass("jboss-client", JBossClient5DTDMetaData.class);
+ {
+ if (resolver == null)
+ {
+ resolver = new MultiClassSchemaResolver();
+
+ java.net.URL url = Thread.currentThread().getContextClassLoader().getResource("schema2class.properties");
+ if(url != null)
+ {
+ Properties props = new Properties();
+ InputStream is = null;
+ try
+ {
+ is = url.openStream();
+ props.load(is);
+ }
+ catch (IOException e)
+ {
+ throw new IllegalStateException("Failed to load schema2class.properties", e);
+ }
+ finally
+ {
+ if(is != null)
+ {
+ try
+ {
+ is.close();
+ }
+ catch (IOException e)
+ {
+ }
+ }
+ }
- // WEB
- resolver.mapLocationToClass("web-app_2_3.dtd", Web23MetaData.class);
- resolver.mapLocationToClass("web-app_2_4.xsd", Web24MetaData.class);
- resolver.mapLocationToClass("web-app_2_5.xsd", Web25MetaData.class);
- resolver.mapLocationToClass("jboss-web", JBoss50DTDWebMetaData.class);
- resolver.mapLocationToClass("jboss-web_4_0.dtd", JBoss4xDTDWebMetaData.class);
- resolver.mapLocationToClass("jboss-web_4_2.dtd", JBoss4xDTDWebMetaData.class);
- resolver.mapLocationToClass("jboss-web_5_0.dtd", JBoss50DTDWebMetaData.class);
+ for(String schema : props.stringPropertyNames())
+ {
+ String classesStr = props.getProperty(schema);
+ String[] classNames = classesPattern.split(classesStr);
+ try
+ {
+ resolver.mapLocationToClasses(schema, classNames);
+ }
+ catch (ClassNotFoundException e)
+ {
+ throw new IllegalStateException("Failed to load class: '" + classesStr + '\'');
+ }
- // EAR
- resolver.mapLocationToClass("application", Ear13DTDMetaData.class);
- resolver.mapLocationToClass("application_1_2.dtd", Ear13DTDMetaData.class);
- resolver.mapLocationToClass("application_1_3.dtd", Ear13DTDMetaData.class);
- resolver.mapLocationToClass("application_1_4.xsd", Ear14MetaData.class);
- resolver.mapLocationToClass("application_5.xsd", Ear50MetaData.class);
- resolver.mapLocationToClass("jboss-app_3_2.dtd", JBoss50DTDAppMetaData.class);
- resolver.mapLocationToClass("jboss-app_4_0.dtd", JBoss50DTDAppMetaData.class);
- resolver.mapLocationToClass("jboss-app_4_2.dtd", JBoss50DTDAppMetaData.class);
- resolver.mapLocationToClass("jboss-app_5_0.dtd", JBoss50DTDAppMetaData.class);
- resolver.mapLocationToClass("jboss-app_5_0.xsd", JBoss50AppMetaData.class);
+ }
+ }
+ else
+ log.warn("schema2class.properties not found");
- // JPA
- resolver.mapLocationToClass("persistence_1_0.xsd", PersistenceMetaData.class);
+ // EJB
+ /*
+ resolver.mapLocationToClass("ejb-jar_1_1.dtd", EjbJar1xMetaData.class);
+ resolver.mapLocationToClass("ejb-jar_2_0.dtd", EjbJar20MetaData.class);
+ resolver.mapLocationToClass("ejb-jar_2_1.xsd", EjbJar21MetaData.class);
+ resolver.mapLocationToClass("ejb-jar_3_0.xsd", EjbJar30MetaData.class);
+ resolver.mapLocationToClass("jboss", JBoss50DTDMetaData.class);
+ resolver.mapLocationToClass("jboss_3_0.dtd", JBoss50DTDMetaData.class);
+ resolver.mapLocationToClass("jboss_3_2.dtd", JBoss50DTDMetaData.class);
+ resolver.mapLocationToClass("jboss_4_0.dtd", JBoss50DTDMetaData.class);
+ resolver.mapLocationToClass("jboss_4_2.dtd", JBoss50DTDMetaData.class);
+ resolver.mapLocationToClass("jboss_5_0.dtd", JBoss50DTDMetaData.class);
+ resolver.mapLocationToClass("jboss_5_0.xsd", JBoss50MetaData.class);
+ resolver.mapLocationToClass("jboss_5_1.xsd", JBoss51MetaData.class);
+
+ // client
+ resolver.mapLocationToClass("application-client_1_3.dtd", ApplicationClient14DTDMetaData.class);
+ resolver.mapLocationToClass("application-client_1_4.xsd", ApplicationClient14MetaData.class);
+ resolver.mapLocationToClass("application-client_5.xsd", ApplicationClient5MetaData.class);
+ resolver.mapLocationToClass("jboss-client_4_0.dtd", JBossClient5DTDMetaData.class);
+ resolver.mapLocationToClass("jboss-client_4_2.dtd", JBossClient5DTDMetaData.class);
+ resolver.mapLocationToClass("jboss-client_5_0.dtd", JBossClient5DTDMetaData.class);
+ resolver.mapLocationToClass("jboss-client_5_0.xsd", JBossClient5MetaData.class);
+ resolver.mapLocationToClass("jboss-client", JBossClient5DTDMetaData.class);
+
+ // WEB
+ resolver.mapLocationToClass("web-app_2_3.dtd", Web23MetaData.class);
+ resolver.mapLocationToClass("web-app_2_4.xsd", Web24MetaData.class);
+ resolver.mapLocationToClass("web-app_2_5.xsd", Web25MetaData.class);
+ resolver.mapLocationToClass("jboss-web", JBoss50DTDWebMetaData.class);
+ resolver.mapLocationToClass("jboss-web_4_0.dtd", JBoss4xDTDWebMetaData.class);
+ resolver.mapLocationToClass("jboss-web_4_2.dtd", JBoss4xDTDWebMetaData.class);
+ resolver.mapLocationToClass("jboss-web_5_0.dtd", JBoss50DTDWebMetaData.class);
+
+ // EAR
+ resolver.mapLocationToClass("application", Ear13DTDMetaData.class);
+ resolver.mapLocationToClass("application_1_2.dtd", Ear13DTDMetaData.class);
+ resolver.mapLocationToClass("application_1_3.dtd", Ear13DTDMetaData.class);
+ resolver.mapLocationToClass("application_1_4.xsd", Ear14MetaData.class);
+ resolver.mapLocationToClass("application_5.xsd", Ear50MetaData.class);
+ resolver.mapLocationToClass("jboss-app_3_2.dtd", JBoss50DTDAppMetaData.class);
+ resolver.mapLocationToClass("jboss-app_4_0.dtd", JBoss50DTDAppMetaData.class);
+ resolver.mapLocationToClass("jboss-app_4_2.dtd", JBoss50DTDAppMetaData.class);
+ resolver.mapLocationToClass("jboss-app_5_0.dtd", JBoss50DTDAppMetaData.class);
+ resolver.mapLocationToClass("jboss-app_5_0.xsd", JBoss50AppMetaData.class);
+
+ // JPA
+ resolver.mapLocationToClass("persistence_1_0.xsd", PersistenceMetaData.class);
+
+ // RA
+ resolver.mapLocationToClass("connector_1_5.xsd", JCA15MetaData.class);
+ resolver.mapLocationToClass("connector_1_6.xsd", JCA16MetaData.class);
+ resolver.mapLocationToClass("jboss-ra_1_0.xsd", JBossRAMetaData.class);
+ resolver.mapLocationToClasses("jboss-ds_5_0.xsd", ManagedConnectionFactoryDeploymentGroup.class,
+ ConnectionFactoryDeploymentGroup.class);
+ */
+ }
- // RA
- resolver.mapLocationToClass("connector_1_5.xsd", JCA15MetaData.class);
- resolver.mapLocationToClass("connector_1_6.xsd", JCA16MetaData.class);
- resolver.mapLocationToClass("jboss-ra_1_0.xsd", JBossRAMetaData.class);
- resolver.mapLocationToClasses("jboss-ds_5_0.xsd", ManagedConnectionFactoryDeploymentGroup.class, ConnectionFactoryDeploymentGroup.class);
-
return resolver;
}
}
Added: projects/metadata/trunk/src/test/resources/schema2class.properties
===================================================================
--- projects/metadata/trunk/src/test/resources/schema2class.properties (rev 0)
+++ projects/metadata/trunk/src/test/resources/schema2class.properties 2009-06-11 13:25:04 UTC (rev 90090)
@@ -0,0 +1,53 @@
+# EJB
+ejb-jar_1_1.dtd org.jboss.metadata.ejb.spec.EjbJar1xMetaData
+ejb-jar_2_0.dtd org.jboss.metadata.ejb.spec.EjbJar20MetaData
+ejb-jar_2_1.xsd org.jboss.metadata.ejb.spec.EjbJar21MetaData
+ejb-jar_3_0.xsd org.jboss.metadata.ejb.spec.EjbJar30MetaData
+jboss org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData
+jboss_3_0.dtd org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData
+jboss_3_2.dtd org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData
+jboss_4_0.dtd org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData
+jboss_4_2.dtd org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData
+jboss_5_0.dtd org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData
+jboss_5_0.xsd org.jboss.metadata.ejb.jboss.JBoss50MetaData
+jboss_5_1.xsd org.jboss.metadata.ejb.jboss.JBoss51MetaData
+
+# client
+application-client_1_3.dtd org.jboss.metadata.client.spec.ApplicationClient14DTDMetaData
+application-client_1_4.xsd org.jboss.metadata.client.spec.ApplicationClient14MetaData
+application-client_5.xsd org.jboss.metadata.client.spec.ApplicationClient5MetaData
+jboss-client_4_0.dtd org.jboss.metadata.client.jboss.JBossClient5DTDMetaData
+jboss-client_4_2.dtd org.jboss.metadata.client.jboss.JBossClient5DTDMetaData
+jboss-client_5_0.dtd org.jboss.metadata.client.jboss.JBossClient5DTDMetaData
+jboss-client_5_0.xsd org.jboss.metadata.client.jboss.JBossClient5MetaData
+jboss-client org.jboss.metadata.client.jboss.JBossClient5DTDMetaData
+
+# WEB
+web-app_2_3.dtd org.jboss.metadata.web.spec.Web23MetaData
+web-app_2_4.xsd org.jboss.metadata.web.spec.Web24MetaData
+web-app_2_5.xsd org.jboss.metadata.web.spec.Web25MetaData
+jboss-web org.jboss.metadata.web.jboss.JBoss50DTDWebMetaData
+jboss-web_4_0.dtd org.jboss.metadata.web.jboss.JBoss4xDTDWebMetaData
+jboss-web_4_2.dtd org.jboss.metadata.web.jboss.JBoss4xDTDWebMetaData
+jboss-web_5_0.dtd org.jboss.metadata.web.jboss.JBoss50DTDWebMetaData
+
+# EAR
+application org.jboss.metadata.ear.spec.Ear13DTDMetaData
+application_1_2.dtd org.jboss.metadata.ear.spec.Ear13DTDMetaData
+application_1_3.dtd org.jboss.metadata.ear.spec.Ear13DTDMetaData
+application_1_4.xsd org.jboss.metadata.ear.spec.Ear14MetaData
+application_5.xsd org.jboss.metadata.ear.spec.Ear50MetaData
+jboss-app_3_2.dtd org.jboss.metadata.ear.jboss.JBoss50DTDAppMetaData
+jboss-app_4_0.dtd org.jboss.metadata.ear.jboss.JBoss50DTDAppMetaData
+jboss-app_4_2.dtd org.jboss.metadata.ear.jboss.JBoss50DTDAppMetaData
+jboss-app_5_0.dtd org.jboss.metadata.ear.jboss.JBoss50DTDAppMetaData
+jboss-app_5_0.xsd org.jboss.metadata.ear.jboss.JBoss50AppMetaData
+
+# JPA
+persistence_1_0.xsd org.jboss.metadata.jpa.spec.PersistenceMetaData
+
+# RA
+connector_1_5.xsd org.jboss.metadata.rar.spec.JCA15MetaData
+connector_1_6.xsd org.jboss.metadata.rar.spec.JCA16MetaData
+jboss-ra_1_0.xsd org.jboss.metadata.rar.jboss.JBossRAMetaData
+jboss-ds_5_0.xsd org.jboss.metadata.rar.jboss.mcf.ManagedConnectionFactoryDeploymentGroup, org.jboss.metadata.rar.jboss.mcf.ConnectionFactoryDeploymentGroup
More information about the jboss-cvs-commits
mailing list