git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1186858 13f79535-47bb-0310-9956-ffa450edef68pull/24/head
<target name="junit-area-tree-xml-format" depends="junit-compile" description="Runs FOP's area tree XML format JUnit tests" if="xmlunit.present"> | <target name="junit-area-tree-xml-format" depends="junit-compile" description="Runs FOP's area tree XML format JUnit tests" if="xmlunit.present"> | ||||
<junit-run title="area tree XML format" testsuite="org.apache.fop.intermediate.AreaTreeXMLFormatTestSuite" outfile="TEST-area-tree-xml-format"/> | <junit-run title="area tree XML format" testsuite="org.apache.fop.intermediate.AreaTreeXMLFormatTestSuite" outfile="TEST-area-tree-xml-format"/> | ||||
</target> | </target> | ||||
<target name="junit-intermediate-layout" depends="junit-compile" if="xmlunit.present"> | |||||
<junit-run title="intermediate format from layout tests" testsuite="org.apache.fop.intermediate.LayoutIFTestSuite" outfile="TEST-intermediate-format-from-layout"/> | |||||
<target name="junit-intermediate-layout" depends="junit-compile,setup-xml-schema" | |||||
if="xmlunit.present"> | |||||
<junit-run title="intermediate format from layout tests" | |||||
testsuite="org.apache.fop.intermediate.LayoutIFTestSuite" | |||||
outfile="TEST-intermediate-format-from-layout"/> | |||||
</target> | |||||
<target name="setup-xml-schema"> | |||||
<local name="cache-dir"/> | |||||
<property name="cache-dir" value="${basedir}/.cache/junit/intermediate"/> | |||||
<mkdir dir="${cache-dir}"/> | |||||
<get src="http://www.w3.org/2001/xml.xsd" | |||||
dest="${cache-dir}/xml.xsd" | |||||
usetimestamp="true"/> | |||||
<copy file="${cache-dir}/xml.xsd" | |||||
todir="${build.dir}/test-classes/org/apache/fop/intermediate"/> | |||||
</target> | </target> | ||||
<target name="junit-intermediate-format" depends="junit-compile,junit-intermediate-layout" description="Runs FOP's intermediate format JUnit tests" if="xmlunit.present"> | |||||
<junit-run title="intermediate format" testsuite="org.apache.fop.intermediate.IntermediateFormatTestSuite" outfile="TEST-intermediate-format"/> | |||||
<target name="junit-intermediate-format" | |||||
depends="junit-compile,setup-xml-schema,junit-intermediate-layout" | |||||
description="Runs FOP's intermediate format JUnit tests" if="xmlunit.present"> | |||||
<junit-run title="intermediate format" | |||||
testsuite="org.apache.fop.intermediate.IntermediateFormatTestSuite" | |||||
outfile="TEST-intermediate-format"/> | |||||
</target> | </target> | ||||
<target name="junit-events" depends="junit-compile" description="Runs FOP's event JUnit tests" if="junit.present"> | <target name="junit-events" depends="junit-compile" description="Runs FOP's event JUnit tests" if="junit.present"> | ||||
<junit-run title="event" basedir="test/events" testsuite="org.apache.fop.events.EventProcessingTestCase" outfile="TEST-events"/> | <junit-run title="event" basedir="test/events" testsuite="org.apache.fop.events.EventProcessingTestCase" outfile="TEST-events"/> |
} | } | ||||
}); | }); | ||||
sFactory.setResourceResolver(XMLSchemaResolver.getInstance()); | |||||
File ifSchemaFile = new File( | File ifSchemaFile = new File( | ||||
"src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd"); | "src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd"); | ||||
ifSchema = sFactory.newSchema(ifSchemaFile); | ifSchema = sFactory.newSchema(ifSchemaFile); |
/* | |||||
* Licensed to the Apache Software Foundation (ASF) under one or more | |||||
* contributor license agreements. See the NOTICE file distributed with | |||||
* this work for additional information regarding copyright ownership. | |||||
* The ASF licenses this file to You under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0 | |||||
* | |||||
* Unless required by applicable law or agreed to in writing, software | |||||
* distributed under the License is distributed on an "AS IS" BASIS, | |||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
* See the License for the specific language governing permissions and | |||||
* limitations under the License. | |||||
*/ | |||||
/* $Id$ */ | |||||
package org.apache.fop.intermediate; | |||||
import java.io.InputStream; | |||||
import java.util.MissingResourceException; | |||||
import javax.xml.XMLConstants; | |||||
import org.w3c.dom.bootstrap.DOMImplementationRegistry; | |||||
import org.w3c.dom.ls.DOMImplementationLS; | |||||
import org.w3c.dom.ls.LSInput; | |||||
import org.w3c.dom.ls.LSResourceResolver; | |||||
/** | |||||
* A resource resolver that returns a cached instance of the XML Schema, that can normally | |||||
* be found at {@linkplain http://www.w3.org/2001/xml.xsd}. This can be used to avoid | |||||
* unnecessary connection to the W3C website. | |||||
*/ | |||||
final class XMLSchemaResolver implements LSResourceResolver { | |||||
private static final String XML_SCHEMA_SYSTEM_ID = "http://www.w3.org/2001/xml.xsd"; | |||||
private static final LSInput XML_SCHEMA_INPUT; | |||||
private static final XMLSchemaResolver INSTANCE = new XMLSchemaResolver(); | |||||
private XMLSchemaResolver() { } | |||||
static { | |||||
DOMImplementationRegistry registry = getDOMImplementationRegistry(); | |||||
DOMImplementationLS impl | |||||
= (DOMImplementationLS) registry.getDOMImplementation("LS 3.0"); | |||||
XML_SCHEMA_INPUT = impl.createLSInput(); | |||||
InputStream xmlSchema = loadXMLSchema(); | |||||
XML_SCHEMA_INPUT.setByteStream(xmlSchema); | |||||
} | |||||
private static DOMImplementationRegistry getDOMImplementationRegistry() { | |||||
try { | |||||
return DOMImplementationRegistry.newInstance(); | |||||
} catch (ClassCastException e) { | |||||
throw new ExceptionInInitializerError(e); | |||||
} catch (ClassNotFoundException e) { | |||||
throw new ExceptionInInitializerError(e); | |||||
} catch (InstantiationException e) { | |||||
throw new ExceptionInInitializerError(e); | |||||
} catch (IllegalAccessException e) { | |||||
throw new ExceptionInInitializerError(e); | |||||
} | |||||
} | |||||
private static InputStream loadXMLSchema() { | |||||
String xmlSchemaResource = "xml.xsd"; | |||||
InputStream xmlSchema = XMLSchemaResolver.class.getResourceAsStream(xmlSchemaResource); | |||||
if (xmlSchema == null) { | |||||
throw new MissingResourceException("Schema for XML namespace not found." | |||||
+ " Did you run ant junit-intermediate-format?", | |||||
XMLSchemaResolver.class.getName(), xmlSchemaResource); | |||||
} | |||||
return xmlSchema; | |||||
} | |||||
public static XMLSchemaResolver getInstance() { | |||||
return INSTANCE; | |||||
} | |||||
public LSInput resolveResource(String type, String namespaceURI, String publicId, | |||||
String systemId, String baseURI) { | |||||
if (XMLConstants.XML_NS_URI.equals(namespaceURI) && XML_SCHEMA_SYSTEM_ID.equals(systemId)) { | |||||
return XML_SCHEMA_INPUT; | |||||
} else { | |||||
return null; | |||||
} | |||||
} | |||||
} |