You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2017/06/04 13:41:14 UTC
svn commit: r1797579 - in /webservices/axiom/trunk:
components/core-streams/src/main/java/org/apache/axiom/core/stream/sax/
testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/
testing/jaxp-testsuite/src/main/java/org/apache/axiom/ts/jaxp/
Author: veithen
Date: Sun Jun 4 13:41:14 2017
New Revision: 1797579
URL: http://svn.apache.org/viewvc?rev=1797579&view=rev
Log:
Include the JRE's XSLT implementation in tests.
Modified:
webservices/axiom/trunk/components/core-streams/src/main/java/org/apache/axiom/core/stream/sax/XmlHandlerContentHandler.java
webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java
webservices/axiom/trunk/testing/jaxp-testsuite/src/main/java/org/apache/axiom/ts/jaxp/XSLTImplementation.java
Modified: webservices/axiom/trunk/components/core-streams/src/main/java/org/apache/axiom/core/stream/sax/XmlHandlerContentHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/components/core-streams/src/main/java/org/apache/axiom/core/stream/sax/XmlHandlerContentHandler.java?rev=1797579&r1=1797578&r2=1797579&view=diff
==============================================================================
--- webservices/axiom/trunk/components/core-streams/src/main/java/org/apache/axiom/core/stream/sax/XmlHandlerContentHandler.java (original)
+++ webservices/axiom/trunk/components/core-streams/src/main/java/org/apache/axiom/core/stream/sax/XmlHandlerContentHandler.java Sun Jun 4 13:41:14 2017
@@ -193,6 +193,9 @@ public final class XmlHandlerContentHand
}
public void endDTD() throws SAXException {
+ if (internalSubset == null) {
+ throw new IllegalStateException("endDTD without startDTD");
+ }
try {
String internalSubset = this.internalSubset.toString();
handler.processDocumentTypeDeclaration(dtdName, dtdPublicId, dtdSystemId,
Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java?rev=1797579&r1=1797578&r2=1797579&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java Sun Jun 4 13:41:14 2017
@@ -196,7 +196,8 @@ public class OMTestSuiteBuilder extends
addTest(new org.apache.axiom.ts.om.document.TestGetOMDocumentElementAfterDetach(metaFactory));
addTest(new org.apache.axiom.ts.om.document.TestGetOMDocumentElementWithParser(metaFactory));
for (XSLTImplementation xsltImplementation : getInstances(XSLTImplementation.class)) {
- if (xsltImplementation.supportsLexicalHandlerWithStreamSource()) {
+ // TODO: the XSLT implementation in the JRE is badly broken when it comes to serializing DTDs; refine this
+ if (!xsltImplementation.getName().equals("jre") && xsltImplementation.supportsLexicalHandlerWithStreamSource()) {
for (XMLSample file : getInstances(XMLSample.class)) {
addTest(new org.apache.axiom.ts.om.document.TestGetSAXResult(metaFactory, xsltImplementation, file));
}
Modified: webservices/axiom/trunk/testing/jaxp-testsuite/src/main/java/org/apache/axiom/ts/jaxp/XSLTImplementation.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/jaxp-testsuite/src/main/java/org/apache/axiom/ts/jaxp/XSLTImplementation.java?rev=1797579&r1=1797578&r2=1797579&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/jaxp-testsuite/src/main/java/org/apache/axiom/ts/jaxp/XSLTImplementation.java (original)
+++ webservices/axiom/trunk/testing/jaxp-testsuite/src/main/java/org/apache/axiom/ts/jaxp/XSLTImplementation.java Sun Jun 4 13:41:14 2017
@@ -24,6 +24,7 @@ import javax.xml.transform.stream.Stream
import net.sf.saxon.FeatureKeys;
+import org.apache.axiom.testing.multiton.Instances;
import org.apache.axiom.testing.multiton.Multiton;
import org.xml.sax.ext.LexicalHandler;
@@ -31,6 +32,10 @@ import org.xml.sax.ext.LexicalHandler;
* Specifies an XSLT implementation for use in a {@link MatrixTestCase}.
*/
public abstract class XSLTImplementation extends Multiton {
+ private static final String[] jreTransformerFactoryClassNames = {
+ "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl",
+ };
+
public static final XSLTImplementation XALAN = new XSLTImplementation("xalan", true) {
@Override
public TransformerFactory newTransformerFactory() {
@@ -57,6 +62,29 @@ public abstract class XSLTImplementation
this.supportsLexicalHandlerWithStreamSource = supportsLexicalHandlerWithStreamSource;
}
+ @Instances
+ private static XSLTImplementation[] instances() {
+ for (String className : jreTransformerFactoryClassNames) {
+ try {
+ final Class<? extends TransformerFactory> clazz = Class.forName(className).asSubclass(TransformerFactory.class);
+ XSLTImplementation implementation = new XSLTImplementation("jre", true) {
+ @Override
+ public TransformerFactory newTransformerFactory() {
+ try {
+ return clazz.newInstance();
+ } catch (InstantiationException | IllegalAccessException ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+ };
+ return new XSLTImplementation[] { implementation };
+ } catch (ClassNotFoundException ex) {
+ // Just continue
+ }
+ }
+ return new XSLTImplementation[0];
+ }
+
public final String getName() {
return name;
}