/****************************************************************************/ /* File: TestConfigProcessor.java */ /* Author: F. Georges */ /* Company: H2O Consulting */ /* Date: */ /* Tags: */ /* Copyright (c) 2009-2013 Florent Georges (see end of file.) */ /* ------------------------------------------------------------------------ */ package transform; import java.io.File; //import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.OutputStream; import java.io.Reader; import javax.xml.transform.Result; import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; //import javax.xml.xquery.XQConnection; //import javax.xml.xquery.XQDataSource; //import javax.xml.xquery.XQException; //import javax.xml.xquery.XQPreparedExpression; //import javax.xml.xquery.XQResultSequence; import net.sf.saxon.Configuration; import net.sf.saxon.TransformerFactoryImpl; import net.sf.saxon.query.DynamicQueryContext; import net.sf.saxon.query.StaticQueryContext; import net.sf.saxon.query.XQueryExpression; import net.sf.saxon.s9api.Processor; import net.sf.saxon.s9api.QName; import net.sf.saxon.s9api.SaxonApiException; import net.sf.saxon.s9api.Serializer; import net.sf.saxon.s9api.XQueryCompiler; import net.sf.saxon.s9api.XQueryEvaluator; import net.sf.saxon.s9api.XQueryExecutable; import net.sf.saxon.s9api.XsltCompiler; import net.sf.saxon.s9api.XsltExecutable; import net.sf.saxon.s9api.XsltTransformer; import net.sf.saxon.trans.XPathException; //import net.sf.saxon.xqj.SaxonXQDataSource; import org.expath.pkg.repo.FileSystemStorage; import org.expath.pkg.repo.PackageException; import org.expath.pkg.repo.Storage; import org.expath.pkg.saxon.ConfigHelper; import org.expath.pkg.saxon.SaxonRepository; import org.junit.Test; /** * ... * * @author Florent Georges */ public class TestConfigProcessor { public TestConfigProcessor() throws PackageException { Storage storage = new FileSystemStorage(new File("test/java/transform/repo")); REPO = new SaxonRepository(storage); } @Test( // error while compiling the stylesheet... expected=SaxonApiException.class ) public void configProcessor_fail() throws TransformerException , SaxonApiException , IOException { System.err.println("configProcessor_fail"); Processor proc = new Processor(false); XsltCompiler compiler = proc.newXsltCompiler(); Source style = new StreamSource(STYLE_STD); XsltExecutable exec = compiler.compile(style); XsltTransformer trans = exec.load(); trans.setInitialTemplate(new QName("main")); Serializer serial = new Serializer(); serial.setOutputStream(OUT); trans.setDestination(serial); trans.transform(); OUT.flush(); } @Test public void configProcessor_successful() throws TransformerException , SaxonApiException , IOException , XPathException , PackageException { System.err.println("configProcessor_successful"); Processor proc = new Processor(false); ConfigHelper helper = new ConfigHelper(REPO); helper.config(proc.getUnderlyingConfiguration()); XsltCompiler compiler = proc.newXsltCompiler(); Source style = new StreamSource(STYLE_STD); XsltExecutable exec = compiler.compile(style); XsltTransformer trans = exec.load(); trans.setInitialTemplate(new QName("main")); Serializer serial = new Serializer(); serial.setOutputStream(OUT); trans.setDestination(serial); trans.transform(); OUT.flush(); } @Test( // error while compiling the stylesheet... expected=TransformerConfigurationException.class ) public void configFactory_fail() throws TransformerException , SaxonApiException , IOException { System.err.println("configFactory_fail"); TransformerFactoryImpl factory = new TransformerFactoryImpl(); Source style = new StreamSource(STYLE_STD); Transformer trans = factory.newTransformer(style); Result res = new StreamResult(OUT); trans.transform(style, res); OUT.flush(); } @Test public void configFactory_successful() throws TransformerException , SaxonApiException , IOException , XPathException , PackageException { System.err.println("configFactory_successful"); TransformerFactoryImpl factory = new TransformerFactoryImpl(); ConfigHelper helper = new ConfigHelper(REPO); helper.config(factory.getConfiguration()); Source style = new StreamSource(STYLE_STD); Transformer trans = factory.newTransformer(style); Result res = new StreamResult(OUT); trans.transform(style, res); OUT.flush(); } @Test( // error while compiling the stylesheet... expected=TransformerConfigurationException.class ) public void configConfiguration_fail() throws TransformerException , SaxonApiException , IOException { System.err.println("configConfiguration_fail"); Configuration config = new Configuration(); TransformerFactoryImpl factory = new TransformerFactoryImpl(config); Source style = new StreamSource(STYLE_STD); Transformer trans = factory.newTransformer(style); Result res = new StreamResult(OUT); trans.transform(style, res); OUT.flush(); } @Test public void configConfiguration_successful() throws TransformerException , SaxonApiException , IOException , XPathException , PackageException { System.err.println("configConfiguration_successful"); Configuration config = new Configuration(); ConfigHelper helper = new ConfigHelper(REPO); helper.config(config); TransformerFactoryImpl factory = new TransformerFactoryImpl(config); Source style = new StreamSource(STYLE_STD); Transformer trans = factory.newTransformer(style); Result res = new StreamResult(OUT); trans.transform(style, res); OUT.flush(); } @Test( // error while compiling the stylesheet... expected=TransformerConfigurationException.class ) public void usingJava_fail() throws TransformerException , SaxonApiException , IOException { System.err.println("usingJava_fail"); Configuration config = new Configuration(); TransformerFactoryImpl factory = new TransformerFactoryImpl(config); Source style = new StreamSource(STYLE_JAVA); Transformer trans = factory.newTransformer(style); Result res = new StreamResult(OUT); trans.transform(style, res); OUT.flush(); } @Test public void usingJava_successful() throws TransformerException , SaxonApiException , IOException , XPathException , PackageException { System.err.println("usingJava_successful"); Configuration config = new Configuration(); ConfigHelper helper = new ConfigHelper(REPO); helper.config(config); TransformerFactoryImpl factory = new TransformerFactoryImpl(config); Source style = new StreamSource(STYLE_JAVA); Transformer trans = factory.newTransformer(style); Result res = new StreamResult(OUT); trans.transform(style, res); OUT.flush(); } @Test( // error while compiling the stylesheet... expected=SaxonApiException.class ) public void queryProcessor_fail() throws TransformerException , SaxonApiException , IOException { System.err.println("queryProcessor_fail"); Processor proc = new Processor(false); XQueryCompiler compiler = proc.newXQueryCompiler(); XQueryExecutable exec = compiler.compile(new File(QUERY_STD)); XQueryEvaluator eval = exec.load(); Serializer serial = new Serializer(); serial.setOutputStream(OUT); eval.evaluate(); OUT.flush(); } @Test public void queryProcessor_successful() throws TransformerException , SaxonApiException , IOException , XPathException , PackageException { System.err.println("queryProcessor_successful"); Processor proc = new Processor(false); ConfigHelper helper = new ConfigHelper(REPO); helper.config(proc.getUnderlyingConfiguration()); XQueryCompiler compiler = proc.newXQueryCompiler(); XQueryExecutable exec = compiler.compile(new File(QUERY_STD)); XQueryEvaluator eval = exec.load(); Serializer serial = new Serializer(); serial.setOutputStream(OUT); eval.evaluate(); OUT.flush(); } @Test( // error while compiling the stylesheet... expected=XPathException.class ) public void queryConfiguration_fail() throws TransformerException , SaxonApiException , IOException { System.err.println("queryConfiguration_fail"); Configuration config = new Configuration(); //StaticQueryContext static_ctxt = config.newStaticQueryContext(); StaticQueryContext static_ctxt = new StaticQueryContext(config); Reader query = new FileReader(new File(QUERY_STD)); XQueryExpression expr = static_ctxt.compileQuery(query); DynamicQueryContext dyn_ctxt = new DynamicQueryContext(config); expr.run(dyn_ctxt, new StreamResult(OUT), null); OUT.flush(); } @Test public void queryConfiguration_successful() throws TransformerException , SaxonApiException , IOException , XPathException , PackageException { System.err.println("queryConfiguration_successful"); Configuration config = new Configuration(); ConfigHelper helper = new ConfigHelper(REPO); helper.config(config); //StaticQueryContext static_ctxt = config.newStaticQueryContext(); StaticQueryContext static_ctxt = new StaticQueryContext(config); Reader query = new FileReader(new File(QUERY_STD)); XQueryExpression expr = static_ctxt.compileQuery(query); DynamicQueryContext dyn_ctxt = new DynamicQueryContext(config); expr.run(dyn_ctxt, new StreamResult(OUT), null); OUT.flush(); } @Test( // error while compiling the stylesheet... expected=XPathException.class ) public void queryUsingJava_fail() throws TransformerException , SaxonApiException , IOException { System.err.println("queryUsingJava_fail"); Configuration config = new Configuration(); //StaticQueryContext static_ctxt = config.newStaticQueryContext(); StaticQueryContext static_ctxt = new StaticQueryContext(config); Reader query = new FileReader(new File(QUERY_JAVA)); XQueryExpression expr = static_ctxt.compileQuery(query); DynamicQueryContext dyn_ctxt = new DynamicQueryContext(config); expr.run(dyn_ctxt, new StreamResult(OUT), null); OUT.flush(); } @Test public void queryUsingJava_successful() throws TransformerException , SaxonApiException , IOException , XPathException , PackageException { System.err.println("queryUsingJava_successful"); Configuration config = new Configuration(); ConfigHelper helper = new ConfigHelper(REPO); helper.config(config); //StaticQueryContext static_ctxt = config.newStaticQueryContext(); StaticQueryContext static_ctxt = new StaticQueryContext(config); Reader query = new FileReader(new File(QUERY_JAVA)); XQueryExpression expr = static_ctxt.compileQuery(query); DynamicQueryContext dyn_ctxt = new DynamicQueryContext(config); expr.run(dyn_ctxt, new StreamResult(OUT), null); OUT.flush(); } // @Test( // // error while compiling the stylesheet... // expected=XQException.class // ) // public void queryXQJ_fail() // throws XQException // , FileNotFoundException // { // System.err.println("queryXQJ_fail"); // XQDataSource ds = new SaxonXQDataSource(); // XQConnection conn = ds.getConnection(); // Reader query = new FileReader(new File(QUERY_STD)); // XQPreparedExpression expr = conn.prepareExpression(query); // XQResultSequence result = expr.executeQuery(); // while ( result.next() ) { // // System.out.println(result.getItemAsString(null)); // } // System.out.flush(); // } // // @Test // public void queryXQJ_successful() // throws XQException // , FileNotFoundException // , XPathException // , PackageException // { // System.err.println("queryXQJ_successful"); // Configuration config = new Configuration(); // ConfigHelper helper = new ConfigHelper(REPO); // helper.config(config); // // XQDataSource ds = new SaxonXQDataSource(config); // XQConnection conn = ds.getConnection(); // Reader query = new FileReader(new File(QUERY_STD)); // XQPreparedExpression expr = conn.prepareExpression(query); // XQResultSequence result = expr.executeQuery(); // while ( result.next() ) { // // System.out.println(result.getItemAsString(null)); // } // System.out.flush(); // } private SaxonRepository REPO; private static final String STYLE_STD = "test/java/transform/style.xsl"; private static final String STYLE_JAVA = "test/java/transform/using-java.xsl"; private static final String QUERY_STD = "test/java/transform/query.xq"; private static final String QUERY_JAVA = "test/java/transform/using-java.xq"; // private static final OutputStream OUT = System.err; private static final OutputStream OUT = new DevNull(); private static class DevNull extends OutputStream { @Override public void close() throws IOException { // nothing } @Override public void flush() throws IOException { // nothing } @Override public void write(byte[] b) throws IOException { // nothing } @Override public void write(byte[] b, int off, int len) throws IOException { // nothing } @Override public void write(int b) throws IOException { // nothing } } } /* ------------------------------------------------------------------------ */ /* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS COMMENT. */ /* */ /* The contents of this file are subject to the Mozilla Public License */ /* Version 1.0 (the "License"); you may not use this file except in */ /* compliance with the License. You may obtain a copy of the License at */ /* http://www.mozilla.org/MPL/. */ /* */ /* Software distributed under the License is distributed on an "AS IS" */ /* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See */ /* the License for the specific language governing rights and limitations */ /* under the License. */ /* */ /* The Original Code is: all this file. */ /* */ /* The Initial Developer of the Original Code is Florent Georges. */ /* */ /* Contributor(s): none. */ /* ------------------------------------------------------------------------ */