You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by rd...@apache.org on 2002/11/27 23:19:13 UTC
cvs commit: jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/schema TestSchema.java
rdonkin 2002/11/27 14:19:13
Modified: betwixt/src/java/org/apache/commons/betwixt
XMLIntrospector.java
betwixt/src/test/org/apache/commons/betwixt
TestXMLIntrospector.java
betwixt/src/test/org/apache/commons/betwixt/schema
TestSchema.java
Added: betwixt/src/java/org/apache/commons/betwixt/registry
DefaultXMLBeanInfoRegistry.java
NoCacheRegistry.java XMLBeanInfoRegistry.java
package.html
betwixt/src/test/org/apache/commons/betwixt/registry
TestXMLBeanInfoRegistry.java
Log:
Added XMLBeanInfoRegistry feature. This interface decouples the XMLBeanInfo caching implementation. This is a good thing since as well as exotic user defined caches, it also allows users to safe add their own XMLBeanInfo classes to the cache programatically.
Revision Changes Path
1.11 +24 -14 jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/XMLIntrospector.java
Index: XMLIntrospector.java
===================================================================
RCS file: /home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/XMLIntrospector.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- XMLIntrospector.java 26 Oct 2002 14:30:54 -0000 1.10
+++ XMLIntrospector.java 27 Nov 2002 22:19:12 -0000 1.11
@@ -82,6 +82,8 @@
import org.apache.commons.betwixt.strategy.DefaultPluralStemmer;
import org.apache.commons.betwixt.strategy.NameMapper;
import org.apache.commons.betwixt.strategy.PluralStemmer;
+import org.apache.commons.betwixt.registry.XMLBeanInfoRegistry;
+import org.apache.commons.betwixt.registry.DefaultXMLBeanInfoRegistry;
/**
* <p><code>XMLIntrospector</code> an introspector of beans to create a
@@ -114,11 +116,8 @@
/** should we wrap collections in an extra element? */
private boolean wrapCollectionsInElement = true;
- /** Is <code>XMLBeanInfo</code> caching enabled? */
- boolean cachingEnabled = true;
-
/** Maps classes to <code>XMLBeanInfo</code>'s */
- protected Map cacheXMLBeanInfos = new HashMap();
+ private XMLBeanInfoRegistry registry = new DefaultXMLBeanInfoRegistry();
/** Digester used to parse the XML descriptor files */
private XMLBeanInfoDigester digester;
@@ -157,26 +156,39 @@
this.log = log;
}
+ public XMLBeanInfoRegistry getRegistry() {
+ return registry;
+ }
+
+ public void setRegistry(XMLBeanInfoRegistry registry) {
+ this.registry = registry;
+ }
+
+
/**
* Is <code>XMLBeanInfo</code> caching enabled?
+ *
+ * @deprecated replaced by XMlBeanInfoRegistry
*/
public boolean isCachingEnabled() {
- return cachingEnabled;
+ return true;
}
/**
* Set whether <code>XMLBeanInfo</code> caching should be enabled.
+ *
+ * @deprecated replaced by XMlBeanInfoRegistry
*/
public void setCachingEnabled(boolean cachingEnabled) {
- this.cachingEnabled = cachingEnabled;
+ //
}
/**
* Flush existing cached <code>XMLBeanInfo</code>'s.
+ *
+ * @deprecated use flushable registry instead
*/
- public void flushCache() {
- cacheXMLBeanInfos.clear();
- }
+ public void flushCache() {}
/** Create a standard <code>XMLBeanInfo</code> by introspection
The actual introspection depends only on the <code>BeanInfo</code>
@@ -204,10 +216,8 @@
}
XMLBeanInfo xmlInfo = null;
- if ( cachingEnabled ) {
- // if caching is enabled, try in caching first
- xmlInfo = (XMLBeanInfo) cacheXMLBeanInfos.get( aClass );
- }
+ // see if info's in registry
+ xmlInfo = registry.get( aClass );
if (xmlInfo == null) {
// lets see if we can find an XML descriptor first
if ( log.isDebugEnabled() ) {
@@ -221,7 +231,7 @@
}
if (xmlInfo != null) {
- cacheXMLBeanInfos.put( aClass, xmlInfo );
+ registry.put( aClass, xmlInfo );
}
} else {
log.trace("Used cached XMLBeanInfo.");
1.1 jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/registry/DefaultXMLBeanInfoRegistry.java
Index: DefaultXMLBeanInfoRegistry.java
===================================================================
package org.apache.commons.betwixt.registry;
/*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999-2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
import java.util.Map;
import java.util.HashMap;
import org.apache.commons.betwixt.XMLBeanInfo;
/** The default caching implementation.
* A hashmap is used.
*
* @author <a href="mailto:rdonkin@apache.org">Robert Burrell Donkin</a>
* @version $Id: DefaultXMLBeanInfoRegistry.java,v 1.1 2002/11/27 22:19:12 rdonkin Exp $
*/
public class DefaultXMLBeanInfoRegistry implements XMLBeanInfoRegistry {
/** Used to associated <code>XMLBeanInfo</code>'s to classes */
private Map xmlBeanInfos = new HashMap();
/**
* Get from cache.
*/
public XMLBeanInfo get(Class forThisClass) {
return (XMLBeanInfo) xmlBeanInfos.get(forThisClass);
}
/**
* Put into cache
*/
public void put(Class forThisClass, XMLBeanInfo beanInfo) {
xmlBeanInfos.put(forThisClass, beanInfo);
}
/**
* Flush existing cached <code>XMLBeanInfo</code>'s.
*/
public void flush() {
xmlBeanInfos.clear();
}
}
1.1 jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/registry/NoCacheRegistry.java
Index: NoCacheRegistry.java
===================================================================
package org.apache.commons.betwixt.registry;
/*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999-2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
import org.apache.commons.betwixt.XMLBeanInfo;
/** This plug-in registry does not cache at all.
* In effect, this turns caching off.
*
* @author <a href="mailto:rdonkin@apache.org">Robert Burrell Donkin</a>
* @version $Id: NoCacheRegistry.java,v 1.1 2002/11/27 22:19:12 rdonkin Exp $
*/
public final class NoCacheRegistry implements XMLBeanInfoRegistry {
/** Always return null.
*
* return <code>null</code>
*/
public XMLBeanInfo get(Class forThisClass) {
return null;
}
/** Do nothing */
public void put(Class forThisClass, XMLBeanInfo beanInfo) {}
}
1.1 jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/registry/XMLBeanInfoRegistry.java
Index: XMLBeanInfoRegistry.java
===================================================================
package org.apache.commons.betwixt.registry;
/*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999-2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
import org.apache.commons.betwixt.XMLBeanInfo;
/** <p>Plug in registry for <code>XMLBeanInfo</code>'s.</p>
*
* <p>This decouples the implementation of the <code>XMLBeanInfo</code> cache.
* Users can plug in the standard implementations found
* in this package to switch caching on and off.
* Alternatively, they can plug-in an exotic cache of their own devising.</p>
*
* <p>Users can also prime a cache with <code>XMLBeanInfo</code>
* classes created programmatically.</p>
*
* <p>To find a <code>XMLBeanInfo</code> for a class,
* <code>XMLIntrospector</code> checks in the registry first
* before starting introspection.
* If the registry returns an <code>XMLBeanInfo</code>, then that's used.
* Otherwise, the <code>XMLBeanInfo</code> will be found by standard introspection
* and then {@link #put} will be called so that the registry
* can cache - if it wished - the <code>XMLBeanInfo</code>.
* </p>
*
* @author <a href="mailto:rdonkin@apache.org">Robert Burrell Donkin</a>
* @version $Id: XMLBeanInfoRegistry.java,v 1.1 2002/11/27 22:19:12 rdonkin Exp $
*/
public interface XMLBeanInfoRegistry {
/**
* Get the <code>XMLBeanInfo</code> for the given class.
*
* @param forThisClass get <code>XMLBeanInfo</code> for this class
*
* @return <code>null</code> if fresh introspection should be used to find the <code>XMLBeanInfo</code>
*/
public XMLBeanInfo get(Class forThisClass);
/**
* Associate a class with it's <code>XMLBeanInfo</code>.
*/
public void put(Class forThisClass, XMLBeanInfo beanInfo);
}
1.1 jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/registry/package.html
Index: package.html
===================================================================
<html>
<head>
</head>
<body>
<p>This package contains various plugins that can be used with <code>XMLIntrospector</code>
to customize it's caching behaviour (or programmatically modify the XmlBeanInfo finding).
</p>
</body>
</html>
1.2 +8 -3 jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/TestXMLIntrospector.java
Index: TestXMLIntrospector.java
===================================================================
RCS file: /home/cvs/jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/TestXMLIntrospector.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TestXMLIntrospector.java 10 Jun 2002 17:53:32 -0000 1.1
+++ TestXMLIntrospector.java 27 Nov 2002 22:19:12 -0000 1.2
@@ -68,6 +68,9 @@
import junit.framework.TestSuite;
import junit.textui.TestRunner;
+import org.apache.commons.betwixt.registry.NoCacheRegistry;
+import org.apache.commons.betwixt.registry.DefaultXMLBeanInfoRegistry;
+
/** Test harness for the XMLIntrospector
*
@@ -121,7 +124,8 @@
// test introspection with caching off
- introspector.setCachingEnabled(false);
+ //introspector.setCachingEnabled(false);
+ introspector.setRegistry(new NoCacheRegistry());
info = introspector.introspect( bean );
assertTrue( "Found XMLBeanInfo", info != null );
@@ -136,8 +140,9 @@
// test introspection after flushing cache
- introspector.setCachingEnabled(true);
- introspector.flushCache();
+// introspector.setCachingEnabled(true);
+ introspector.setRegistry(new DefaultXMLBeanInfoRegistry());
+ //introspector.flushCache();
info = introspector.introspect( bean );
assertTrue( "Found XMLBeanInfo", info != null );
1.1 jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/registry/TestXMLBeanInfoRegistry.java
Index: TestXMLBeanInfoRegistry.java
===================================================================
/*
* $Header: /home/cvs/jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/registry/TestXMLBeanInfoRegistry.java,v 1.1 2002/11/27 22:19:12 rdonkin Exp $
* $Revision: 1.1 $
* $Date: 2002/11/27 22:19:12 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999-2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* $Id: TestXMLBeanInfoRegistry.java,v 1.1 2002/11/27 22:19:12 rdonkin Exp $
*/
package org.apache.commons.betwixt.registry;
import java.io.FileInputStream;
import java.io.InputStream;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import junit.textui.TestRunner;
import org.apache.commons.betwixt.XMLBeanInfo;
import org.apache.commons.betwixt.AbstractTestCase;
/** Test harness for the XMLBeanInfoRegistry
*
* @author <a href="mailto:rdonkin@apache.org">Robert Burrell Donkin</a>
* @version $Revision: 1.1 $
*/
public class TestXMLBeanInfoRegistry extends AbstractTestCase {
public static void main( String[] args ) {
TestRunner.run( suite() );
}
public static Test suite() {
return new TestSuite(TestXMLBeanInfoRegistry.class);
}
public TestXMLBeanInfoRegistry(String testName) {
super(testName);
}
public void testNoCache() throws Exception {
XMLBeanInfoRegistry registry = new NoCacheRegistry();
XMLBeanInfo xbi = new XMLBeanInfo(Long.class);
assertNull("No cache XML register (1)", registry.get(Long.class));
registry.put(Long.class, xbi);
assertNull("No cache XML register (2)", registry.get(Long.class));
}
public void testDefault() throws Exception {
XMLBeanInfoRegistry registry = new DefaultXMLBeanInfoRegistry();
XMLBeanInfo xbi = new XMLBeanInfo(Long.class);
assertNull("Default XML register (1)", registry.get(Long.class));
registry.put(Long.class, xbi);
assertEquals("Default XML register (2)", xbi, registry.get(Long.class));
}
}
1.4 +4 -1 jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/schema/TestSchema.java
Index: TestSchema.java
===================================================================
RCS file: /home/cvs/jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/schema/TestSchema.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TestSchema.java 27 Oct 2002 00:39:00 -0000 1.3
+++ TestSchema.java 27 Nov 2002 22:19:12 -0000 1.4
@@ -73,6 +73,7 @@
import org.apache.commons.betwixt.io.BeanWriter;
import org.apache.commons.betwixt.strategy.DecapitalizeNameMapper;
import org.apache.commons.betwixt.strategy.HyphenatedNameMapper;
+import org.apache.commons.betwixt.registry.DefaultXMLBeanInfoRegistry;
/**
@@ -113,13 +114,15 @@
StringReader in = new StringReader(buffer.getBuffer().toString());
reader = createBeanReader();
XMLIntrospector intro = createXMLIntrospector();
+ DefaultXMLBeanInfoRegistry registry = new DefaultXMLBeanInfoRegistry();
+ intro.setRegistry(registry);
// we have written the xml file back with element collections,
// so we have to say to the reader we want to use that now
// (the default when creating in this test is not to use them)
intro.setWrapCollectionsInElement(true);
// first flush the cash, else setting other options, doesn't
// end up in rereading / mapping the object model.
- intro.flushCache();
+ registry.flush();
// set the xmlIntrospector back to the reader
reader.setXMLIntrospector(intro);
PhysicalSchema schemaSecond = (PhysicalSchema) reader.parse(in);
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>