# HG changeset patch # User weijun # Date 1571268695 -28800 # Node ID 7322c48a84cf5b0bd6cb78a7d3a4c98a9968087f # Parent 21a92562f0c24b62ae2a5569256840b68a151db1 8232357: Compare version info of Santuario to legal notice Reviewed-by: mullan diff -r 21a92562f0c2 -r 7322c48a84cf src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/XMLDSigRI.java --- a/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/XMLDSigRI.java Thu Oct 17 00:19:02 2019 +0200 +++ b/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/XMLDSigRI.java Thu Oct 17 07:31:35 2019 +0800 @@ -134,7 +134,8 @@ } public XMLDSigRI() { - /* We are the XMLDSig provider */ + // This is the JDK XMLDSig provider, synced from + // Apache Santuario XML Security for Java, version 2.1.3 super("XMLDSig", VER, INFO); final Provider p = this; diff -r 21a92562f0c2 -r 7322c48a84cf test/jdk/javax/xml/crypto/dsig/Versions.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/jdk/javax/xml/crypto/dsig/Versions.java Thu Oct 17 07:31:35 2019 +0800 @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8232357 + * @library /test/lib + * @summary Compare version info of Santuario to legal notice + */ + +import jdk.test.lib.Asserts; + +import java.nio.file.Files; +import java.nio.file.Path; + +public class Versions { + + public static void main(String[] args) throws Exception { + + Path src = Path.of(System.getProperty("test.root"), + "../../src/java.xml.crypto"); + Path legal = Path.of(System.getProperty("test.jdk"), "legal"); + + Path provider = src.resolve( + "share/classes/org/jcp/xml/dsig/internal/dom/XMLDSigRI.java"); + + Path mdInSrc = src.resolve( + "share/legal/santuario.md"); + Path mdInImage = legal.resolve( + "java.xml.crypto/santuario.md"); + + // Files in src should either both exist or not + if (!Files.exists(provider) && !Files.exists(mdInSrc)) { + System.out.println("Source not available. Cannot proceed."); + return; + } + + // The line containing the version number looks like + // // Apache Santuario XML Security for Java, version n.n.n + String s1 = Files.lines(provider) + .filter(s -> s.contains( + "// Apache Santuario XML Security for Java, version ")) + .findFirst() + .get() + .replaceFirst(".* ", ""); // keep chars after the last space + + // The first line of this file should look like + // ## Apache Santuario v2.1.3 + String s2 = Files.lines(mdInSrc) + .findFirst() + .get() + .replace("## Apache Santuario v", ""); + + Asserts.assertEQ(s1, s2); + + if (Files.exists(legal)) { + Asserts.assertTrue(Files.mismatch(mdInSrc, mdInImage) == -1); + } else { + System.out.println("Warning: skip image compare. Exploded build?"); + } + } +}