From: Dennis S. <dso...@us...> - 2008-08-28 06:39:52
|
Update of /cvsroot/jibx/core/build/test/org/jibx/schema In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv9399/test/org/jibx/schema Modified Files: SchemaTestBase.java Log Message: Update jUnit tests for current code. Index: SchemaTestBase.java =================================================================== RCS file: /cvsroot/jibx/core/build/test/org/jibx/schema/SchemaTestBase.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** SchemaTestBase.java 4 Jul 2008 20:43:48 -0000 1.5 --- SchemaTestBase.java 28 Aug 2008 06:39:48 -0000 1.6 *************** *** 8,11 **** --- 8,12 ---- import java.io.StringReader; import java.io.StringWriter; + import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; *************** *** 44,53 **** --- 45,60 ---- private static final String SCHEMA_CLASS = "org.jibx.schema.elements.SchemaElement"; + private static final String BINDING_FILE = "schema-xsprefix-binding.xml"; + private static final String BINDING_NAME = "schema_xsprefix_binding"; + private static final String EXTRACT_FILE = "schema-extract-binding.xml"; + private static final String EXTRACT_NAME = "schema_extract_binding"; private static final IBindingFactory m_bindingFactory; static { + ClassLoader loader; try { // set paths to be used for loading referenced classes + loader = SchemaTestBase.class.getClassLoader(); URL[] urls = Loader.getClassPaths(); String[] paths = new String[urls.length]; *************** *** 58,93 **** ClassFile.setPaths(paths); ! // find the binding definition ! ClassLoader loader = SchemaTestBase.class.getClassLoader(); ! InputStream is = loader.getResourceAsStream("org/jibx/schema/binding.xml"); ! if (is == null) { ! throw new RuntimeException("Schema binding definition not found"); ! } ! ! // process the binding ! BoundClass.reset(); ! MungedClass.reset(); ! BindingDefinition.reset(); ! BindingDefinition def = Utility.loadBinding("binding.xml", "binding", is, null, true); ! def.generateCode(false); ! ! // finish binding factory with information on classes used ! ClassFile[][] lists = MungedClass.fixDispositions(); ! def.addClassList(lists[0], lists[1]); ! ! // output the modified class files ! MungedClass.writeChanges(); ! // look up the mapped class and associated binding factory Class mclas = Class.forName(SCHEMA_CLASS); ! m_bindingFactory = BindingDirectory.getFactory(mclas); ! } catch (JiBXException e) { ! throw new RuntimeException("JiBXException: " + e.getMessage()); ! } catch (IOException e) { ! throw new RuntimeException("IOException: " + e.getMessage()); ! } catch (ClassNotFoundException e) { ! throw new RuntimeException("ClassNotFoundException: " + e.getMessage()); } } --- 65,131 ---- ClassFile.setPaths(paths); ! } catch (MalformedURLException e) { ! throw new RuntimeException("Internal error - unable to set classpaths"); ! } ! IBindingFactory factory = null; ! try { ! // look up the mapped class and existing binding factory Class mclas = Class.forName(SCHEMA_CLASS); ! factory = BindingDirectory.getFactory(BINDING_NAME, mclas); ! } catch (Exception e) { /* just fall through */ } ! if (factory == null) { ! try { ! ! // set paths to be used for loading referenced classes ! URL[] urls = Loader.getClassPaths(); ! String[] paths = new String[urls.length]; ! for (int i = 0; i < urls.length; i++) { ! paths[i] = urls[i].getFile(); ! } ! ClassCache.setPaths(paths); ! ClassFile.setPaths(paths); ! ! // find the binding definitions ! InputStream is1 = loader.getResourceAsStream(BINDING_FILE); ! if (is1 == null) { ! throw new RuntimeException("Schema binding definition not found"); ! } ! InputStream is2 = loader.getResourceAsStream(EXTRACT_FILE); ! if (is2 == null) { ! throw new RuntimeException("Schema extract binding definition not found"); ! } ! ! // process the binding ! BoundClass.reset(); ! MungedClass.reset(); ! BindingDefinition.reset(); ! BindingDefinition def1 = Utility.loadBinding(BINDING_FILE, BINDING_NAME, is1, null, true); ! BindingDefinition def2 = Utility.loadBinding(EXTRACT_FILE, EXTRACT_NAME, is2, null, true); ! def1.generateCode(false); ! def2.generateCode(false); ! ! // finish binding factory with information on classes used ! ClassFile[][] lists = MungedClass.fixDispositions(); ! def1.addClassList(lists[0], lists[1]); ! def2.addClassList(lists[0], lists[1]); ! ! // output the modified class files ! MungedClass.writeChanges(); ! ! // look up the mapped class and associated binding factory ! Class mclas = Class.forName(SCHEMA_CLASS); ! factory = BindingDirectory.getFactory(BINDING_NAME, mclas); ! ! } catch (JiBXException e) { ! throw new RuntimeException("JiBXException: " + e.getMessage()); ! } catch (IOException e) { ! throw new RuntimeException("IOException: " + e.getMessage()); ! } catch (ClassNotFoundException e) { ! throw new RuntimeException("ClassNotFoundException: " + e.getMessage()); ! } } + m_bindingFactory = factory; } *************** *** 245,248 **** --- 283,287 ---- */ protected SchemaElement prepareSchema(String text) throws Exception { + m_validationContext.reset(); SchemaElement schema = readSchema(text, m_validationContext); validateSchema(schema, m_validationContext); *************** *** 291,295 **** protected SchemasetCustom loadCustomization(String text) throws Exception { SchemasetCustom custom = new SchemasetCustom(null); ! IBindingFactory fact = BindingDirectory.getFactory("binding", "org.jibx.schema.codegen.custom"); IUnmarshallingContext ictx = fact.createUnmarshallingContext(); ictx.setDocument(new StringReader(text)); --- 330,335 ---- protected SchemasetCustom loadCustomization(String text) throws Exception { SchemasetCustom custom = new SchemasetCustom(null); ! IBindingFactory fact = BindingDirectory.getFactory("xsdcodegen_customs_binding", ! "org.jibx.schema.codegen.custom"); IUnmarshallingContext ictx = fact.createUnmarshallingContext(); ictx.setDocument(new StringReader(text)); |