Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/test/javax/xml/jaxp/parsers/8022548/XOMParserTest.java
38860 views
1
/*
2
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
/**
25
* @test
26
* @bug 8022548
27
* @summary test that a parser can use DTDConfiguration
28
* @run main XOMParserTest
29
*/
30
import com.sun.org.apache.xerces.internal.impl.Constants;
31
import com.sun.org.apache.xerces.internal.parsers.*;
32
import java.io.*;
33
import javax.xml.transform.*;
34
import javax.xml.transform.stream.StreamResult;
35
import javax.xml.transform.stream.StreamSource;
36
import org.xml.sax.InputSource;
37
38
/**
39
* <p>Test {@link javax.xml.transform.Transformer} for JDK-8022548: SPECJVM2008
40
* has errors introduced in 7u40-b34
41
*
42
* Test XOM is supported after jaxp 1.5 </p>
43
*
44
* @author Joe Wang <[email protected]>
45
*
46
*/
47
public class XOMParserTest extends TestBase {
48
49
public XOMParserTest(String name) {
50
super(name);
51
}
52
53
/**
54
* @param args the command line arguments
55
*/
56
public static void main(String[] args) {
57
XOMParserTest test = new XOMParserTest("XOM parser test");
58
test.setUp();
59
test.testTransform();
60
test.tearDown();
61
}
62
63
public final void testTransform() {
64
String inFilename = filePath + "/JDK8022548.xml";
65
String xslFilename = filePath + "/JDK8022548.xsl";
66
String outFilename = "JDK8022548.out";
67
68
try (InputStream xslInput = new FileInputStream(xslFilename);
69
InputStream xmlInput = new FileInputStream(inFilename);
70
OutputStream out = new FileOutputStream(outFilename);
71
) {
72
73
74
StringWriter sw = new StringWriter();
75
// Create transformer factory
76
TransformerFactory factory = TransformerFactory.newInstance();
77
78
// Use the factory to create a template containing the xsl file
79
Templates template = factory.newTemplates(new StreamSource(xslInput));
80
// Use the template to create a transformer
81
Transformer xformer = template.newTransformer();
82
// Prepare the input and output files
83
Source source = new StreamSource(xmlInput);
84
Result result = new StreamResult(outFilename);
85
//Result result = new StreamResult(sw);
86
// Apply the xsl file to the source file and write the result to the output file
87
xformer.transform(source, result);
88
89
/**
90
* String out = sw.toString(); if (out.indexOf("<p>") < 0 ) {
91
* fail(out); }
92
*/
93
String canonicalizedFileName = outFilename + ".canonicalized";
94
canonicalize(outFilename, canonicalizedFileName);
95
} catch (Exception e) {
96
// unexpected failure
97
fail(e.getMessage());
98
}
99
}
100
101
public void canonicalize(String inName, String outName) {
102
try (//FileOutputStream outStream = new FileOutputStream(outName);
103
FileInputStream inputStream = new FileInputStream(inName);) {
104
JDK15XML1_0Parser parser = new JDK15XML1_0Parser();
105
parser.parse(new InputSource(inputStream));
106
success("test passed");
107
} catch (Exception e) {
108
fail(e.getMessage());
109
}
110
111
}
112
113
class JDK15XML1_0Parser extends SAXParser {
114
115
JDK15XML1_0Parser() throws org.xml.sax.SAXException {
116
117
super(new DTDConfiguration());
118
// workaround for Java 1.5 beta 2 bugs
119
com.sun.org.apache.xerces.internal.util.SecurityManager manager =
120
new com.sun.org.apache.xerces.internal.util.SecurityManager();
121
setProperty(Constants.XERCES_PROPERTY_PREFIX + Constants.SECURITY_MANAGER_PROPERTY, manager);
122
123
}
124
}
125
}
126
127