[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