[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