[jboss-svn-commits] JBoss Common SVN: r2716 - jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Mar 3 12:13:08 EST 2008


Author: alesj
Date: 2008-03-03 12:13:08 -0500 (Mon, 03 Mar 2008)
New Revision: 2716

Modified:
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/DefaultSchemaResolver.java
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SingletonSchemaResolverFactory.java
Log:
Able to add jaxb defined schema.

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/DefaultSchemaResolver.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/DefaultSchemaResolver.java	2008-03-03 16:31:57 UTC (rev 2715)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/DefaultSchemaResolver.java	2008-03-03 17:13:08 UTC (rev 2716)
@@ -221,6 +221,23 @@
       return schemaInitByUri.remove(nsUri);
    }
 
+   /**
+    * Add an in-memory schema.
+    *
+    * @param nsUri schema namespace
+    * @param reference the schema reference class name
+    * @throws Exception for any error
+    */
+   public void addClassBinding(String nsUri, String reference) throws Exception
+   {
+      if (reference == null)
+         throw new IllegalArgumentException("Null reference class");
+
+      ClassLoader cl = Thread.currentThread().getContextClassLoader();
+      Class clazz = cl.loadClass(reference);
+      addClassBinding(nsUri, clazz);
+   }
+
    public void addClassBinding(String nsUri, Class clazz)
    {
       uriToClass.put(nsUri, clazz);

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SingletonSchemaResolverFactory.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SingletonSchemaResolverFactory.java	2008-03-03 16:31:57 UTC (rev 2715)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SingletonSchemaResolverFactory.java	2008-03-03 17:13:08 UTC (rev 2716)
@@ -26,6 +26,7 @@
 /**
  * SingletonSchemaResolverFactory.
  * 
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision$
  */
@@ -55,15 +56,17 @@
     */
    private SingletonSchemaResolverFactory()
    {
-      addSchema("urn:jboss:aop-beans:1.0", "org.jboss.aop.microcontainer.beans.xml.AOPBeansSchemaInitializer", Boolean.FALSE);
-      addSchema("urn:jboss:bean-deployer", "org.jboss.kernel.plugins.deployment.xml.BeanSchemaInitializer", Boolean.FALSE);
-      addSchema("urn:jboss:bean-deployer:2.0", "org.jboss.kernel.plugins.deployment.xml.BeanSchemaInitializer20", Boolean.FALSE);
-      addSchema("urn:jboss:javabean:1.0", "org.jboss.javabean.plugins.xml.JavaBeanSchemaInitializer", Boolean.FALSE);
-      addSchema("urn:jboss:javabean:2.0", "org.jboss.javabean.plugins.xml.JavaBeanSchemaInitializer20", Boolean.FALSE);
+      // old initializer 
       addSchema("urn:jboss:spring-beans:2.0", "org.jboss.spring.deployment.xml.SpringSchemaInitializer", Boolean.FALSE);
-      addSchema("urn:jboss:policy:1.0", "org.jboss.kernel.plugins.deployment.xml.PolicySchemaInitializer", Boolean.FALSE);
       addSchema("urn:jboss:osgi-beans:1.0", "org.jboss.osgi.deployment.xml.OSGiSchemaInitializer", Boolean.FALSE);
       addSchema("urn:jboss:seam-components:1.0", "org.jboss.seam.ioc.microcontainer.xml.SeamSchemaInitializer", Boolean.FALSE);
+      // new jaxb
+      addJaxbSchema("urn:jboss:aop-beans:1.0", "org.jboss.aop.microcontainer.beans.beanmetadatafactory.AOPDeployment");
+      addJaxbSchema("urn:jboss:bean-deployer", "org.jboss.kernel.plugins.deployment.AbstractKernelDeployment10");
+      addJaxbSchema("urn:jboss:bean-deployer:2.0", "org.jboss.kernel.plugins.deployment.AbstractKernelDeployment");
+      addJaxbSchema("urn:jboss:javabean:1.0", "org.jboss.javabean.plugins.jaxb.JavaBean10");
+      addJaxbSchema("urn:jboss:javabean:2.0", "org.jboss.javabean.plugins.jaxb.JavaBean20");
+      addJaxbSchema("urn:jboss:policy:1.0", "org.jboss.beans.metadata.plugins.policy.AbstractPolicyMetaData");
    }
 
    public SchemaBindingResolver getSchemaBindingResolver()
@@ -83,12 +86,14 @@
       try
       {
          resolver.addSchemaInitializer(namespace, initializer);
-         log.trace("Mapped initializer '" + namespace + "' to '" + initializer + "'");
+         if (log.isTraceEnabled())
+            log.trace("Mapped initializer '" + namespace + "' to '" + initializer + "'");
          return true;
       }
       catch (Exception ignored)
       {
-         log.trace("Ignored: ", ignored);
+         if (log.isTraceEnabled())
+            log.trace("Ignored: ", ignored);
          return false;
       }
    }
@@ -124,12 +129,14 @@
       try
       {
          resolver.addSchemaLocation(namespace, location);
-         log.trace("Mapped location '" + namespace + "' to '" + location + "'");
+         if (log.isTraceEnabled())
+            log.trace("Mapped location '" + namespace + "' to '" + location + "'");
          return true;
       }
       catch (Exception ignored)
       {
-         log.trace("Ignored: ", ignored);
+         if (log.isTraceEnabled())
+            log.trace("Ignored: ", ignored);
          return false;
       }
    }
@@ -160,6 +167,31 @@
    protected void setParseAnnotations(String namespace, Boolean parseAnnotations)
    {
       resolver.addSchemaParseAnnotations(namespace, parseAnnotations);
-      log.trace("Parse annotations '" + namespace + "' set to '" + parseAnnotations + "'");
+      if (log.isTraceEnabled())
+         log.trace("Parse annotations '" + namespace + "' set to '" + parseAnnotations + "'");
    }
+
+   /**
+    * Add a schema.
+    *
+    * @param namespace the namespace
+    * @param reference the schema reference class
+    * @return true when added
+    */
+   public boolean addJaxbSchema(String namespace, String reference)
+   {
+      try
+      {
+         resolver.addClassBinding(namespace, reference);
+         if (log.isTraceEnabled())
+            log.trace("Mapped '" + namespace + "' to '" + reference + "'");
+         return true;
+      }
+      catch (Exception ignored)
+      {
+         if (log.isTraceEnabled())
+            log.trace("Ignored: ", ignored);
+         return false;
+      }
+   }
 }




More information about the jboss-svn-commits mailing list