[jboss-svn-commits] JBoss Common SVN: r3321 - jbossxb/trunk/src/main/java/org/jboss/xb/util.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jul 1 02:53:18 EDT 2009


Author: thomas.diesler at jboss.com
Date: 2009-07-01 02:53:18 -0400 (Wed, 01 Jul 2009)
New Revision: 3321

Modified:
   jbossxb/trunk/src/main/java/org/jboss/xb/util/JBossXBHelper.java
Log:
[JBDEPLOY-202] Allow overwrite of resolver singleton

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/util/JBossXBHelper.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/util/JBossXBHelper.java	2009-06-30 09:53:59 UTC (rev 3320)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/util/JBossXBHelper.java	2009-07-01 06:53:18 UTC (rev 3321)
@@ -21,6 +21,8 @@
  */
 package org.jboss.xb.util;
 
+// $Id: $
+
 import org.jboss.logging.Logger;
 import org.jboss.xb.annotations.JBossXmlSchema;
 import org.jboss.xb.binding.FeatureAware;
@@ -36,6 +38,7 @@
  *
  * @param <T> the expected type
  * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ * @author <a href="thomas.diesler at jboss.com">Thomas Diesler</a>
  */
 public class JBossXBHelper<T> implements FeatureAware
 {
@@ -45,9 +48,6 @@
    /** Unmarshaller factory */
    private static final UnmarshallerFactory factory = UnmarshallerFactory.newInstance();
 
-   /** The singleton schema resolver */
-   private static MutableSchemaResolver resolver = SingletonSchemaResolverFactory.getInstance().getSchemaBindingResolver();
-
    /** The output */
    private Class<T> output;
 
@@ -120,9 +120,12 @@
     *
     * @param namespace the namespace
     * @param metadata the metadata
+    * @deprecated Use {@link #addTypeBinding(String, Class)}
     */
    public static void addClassBinding(String namespace, Class<?> metadata)
    {
+      SingletonSchemaResolverFactory factory = SingletonSchemaResolverFactory.getInstance();
+      MutableSchemaResolver resolver = factory.getSchemaBindingResolver();
       resolver.mapURIToClass(namespace, metadata);
    }
 
@@ -130,13 +133,49 @@
     * Remove class binding.
     *
     * @param namespace the namespace
+    * @deprecated Use {@link #removeTypeBinding(String)}
     */
    public static void removeClassBinding(String namespace)
    {
+      SingletonSchemaResolverFactory factory = SingletonSchemaResolverFactory.getInstance();
+      MutableSchemaResolver resolver = factory.getSchemaBindingResolver();
       resolver.removeURIToClassMapping(namespace);
    }
 
    /**
+    * Add class binding.
+    *
+    * @param namespace the namespace
+    * @param metadata the metadata
+    */
+   public void addTypeBinding(String namespace, Class<?> metadata)
+   {
+      getResolver().mapURIToClass(namespace, metadata);
+   }
+
+   /**
+    * Remove class binding.
+    *
+    * @param namespace the namespace
+    */
+   public void removeTypeBinding(String namespace)
+   {
+      getResolver().removeURIToClassMapping(namespace);
+   }
+
+   /**
+    * Get the schema resolver.
+    * 
+    * This implementation returns a singleton schema resolver.
+    */
+   public MutableSchemaResolver getResolver()
+   {
+      SingletonSchemaResolverFactory factory = SingletonSchemaResolverFactory.getInstance();
+      MutableSchemaResolver resolver = factory.getSchemaBindingResolver();
+      return resolver;
+   }
+
+   /**
     * Find the namespace on class/package
     *
     * @param metadata the metadata class
@@ -186,7 +225,7 @@
       Unmarshaller unmarshaller = factory.newUnmarshaller();
       unmarshaller.setSchemaValidation(isUseSchemaValidation());
       unmarshaller.setValidation(isUseValidation());
-      Object parsed = unmarshaller.unmarshal(source, resolver);
+      Object parsed = unmarshaller.unmarshal(source, getResolver());
       if (parsed == null)
          throw new Exception("The xml " + source + " is not well formed!");
 




More information about the jboss-svn-commits mailing list