[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