diff --git a/.gitignore b/.gitignore
index 70dc9b9..4ddd189 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,5 @@
/noarch/
/*.src.rpm
/Xerces-J-src.2.12.0.tar.gz
+/Xerces-J-src.2.12.1.tar.gz
+/Xerces-J-src.2.12.1.tar.gz.asc
diff --git a/ExperimentalTaglet.java b/ExperimentalTaglet.java
deleted file mode 100644
index d3350fc..0000000
--- a/ExperimentalTaglet.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.xerces.util;
-
-import java.util.Map;
-
-import com.sun.javadoc.Tag;
-import com.sun.tools.doclets.Taglet;
-
-/**
- * This class provides support for a 'xerces.experimental' tag
- * in javadoc comments. The tag creates a warning in the generated
- * html for users.
- *
- * @author Ankit Pasricha, IBM
- */
-public class ExperimentalTaglet implements Taglet {
-
- private static final String NAME = "xerces.experimental";
- private static final String HEADER = "EXPERIMENTAL:";
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#inConstructor()
- */
- public boolean inConstructor() {
- return false;
- }
-
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#inField()
- */
- public boolean inField() {
- return false;
- }
-
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#inMethod()
- */
- public boolean inMethod() {
- return true;
- }
-
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#inOverview()
- */
- public boolean inOverview() {
- return true;
- }
-
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#inPackage()
- */
- public boolean inPackage() {
- return false;
- }
-
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#inType()
- */
- public boolean inType() {
- return true;
- }
-
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#isInlineTag()
- */
- public boolean isInlineTag() {
- return false;
- }
-
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#getName()
- */
- public String getName() {
- return NAME;
- }
-
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#toString(com.sun.javadoc.Tag)
- */
- public String toString(Tag arg0) {
- return "
" + HEADER + "
"
- + "This class should not be considered stable. It is likely to be altered or replaced in the future.
"
- + "" + arg0.text() + "\n";
- }
-
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#toString(com.sun.javadoc.Tag[])
- */
- public String toString(Tag[] tags) {
- if (tags.length == 0) {
- return null;
- }
- String result = "\n" + HEADER + "
";
- result += "This class should not be considered stable. It is likely to be altered or replaced in the future.";
- result += "";
- for (int i = 0; i < tags.length; i++) {
- result += "
";
- result += tags[i].text();
- }
- return result + "\n";
- }
-
- /**
- * Register this Taglet.
- * @param tagletMap the map to register this tag to.
- */
- public static void register(Map tagletMap) {
- ExperimentalTaglet tag = new ExperimentalTaglet();
- Taglet t = (Taglet) tagletMap.get(tag.getName());
- if (t != null) {
- tagletMap.remove(tag.getName());
- }
- tagletMap.put(tag.getName(), tag);
- }
-
-}
diff --git a/InternalTaglet.java b/InternalTaglet.java
deleted file mode 100644
index 54a5ca7..0000000
--- a/InternalTaglet.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.xerces.util;
-
-import java.util.Map;
-
-import com.sun.javadoc.Tag;
-import com.sun.tools.doclets.Taglet;
-
-/**
- * This class provides support for a 'xerces.internal' tag
- * in javadoc comments. The tag creates a warning in the generated
- * html for users.
- *
- * @author Ankit Pasricha, IBM
- */
-public class InternalTaglet implements Taglet {
-
- private static final String NAME = "xerces.internal";
- private static final String HEADER = "INTERNAL:";
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#inConstructor()
- */
- public boolean inConstructor() {
- return false;
- }
-
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#inField()
- */
- public boolean inField() {
- return false;
- }
-
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#inMethod()
- */
- public boolean inMethod() {
- return true;
- }
-
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#inOverview()
- */
- public boolean inOverview() {
- return true;
- }
-
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#inPackage()
- */
- public boolean inPackage() {
- return false;
- }
-
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#inType()
- */
- public boolean inType() {
- return true;
- }
-
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#isInlineTag()
- */
- public boolean isInlineTag() {
- return false;
- }
-
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#getName()
- */
- public String getName() {
- return NAME;
- }
-
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#toString(com.sun.javadoc.Tag)
- */
- public String toString(Tag arg0) {
- return "" + HEADER + "
"
- + "Usage of this class is not supported. It may be altered or removed at any time.
"
- + "" + arg0.text() + "\n";
- }
-
- /* (non-Javadoc)
- * @see com.sun.tools.doclets.Taglet#toString(com.sun.javadoc.Tag[])
- */
- public String toString(Tag[] tags) {
- if (tags.length == 0) {
- return null;
- }
- String result = "\n" + HEADER + "
";
- result += "Usage of this class is not supported. It may be altered or removed at any time.";
- result += "";
- for (int i = 0; i < tags.length; i++) {
- result += "
";
- result += tags[i].text();
- }
- return result + "\n";
- }
-
- /**
- * Register this Taglet.
- * @param tagletMap the map to register this tag to.
- */
- public static void register(Map tagletMap) {
- InternalTaglet tag = new InternalTaglet();
- Taglet t = (Taglet) tagletMap.get(tag.getName());
- if (t != null) {
- tagletMap.remove(tag.getName());
- }
- tagletMap.put(tag.getName(), tag);
- }
-
-}
diff --git a/KEYS b/KEYS
new file mode 100644
index 0000000..f4e90d8
--- /dev/null
+++ b/KEYS
@@ -0,0 +1,358 @@
+This file contains the PGP keys of various Xerces developers.
+Please don't use them for email unless you have to. Their main
+purpose is code signing.
+
+This file is a shameless rip-off of the Xalan-J2 KEYS file.
+
+Xerces users:
+ If you use PGP: pgp < KEYS
+ If you use gpg: gpg --import < KEYS
+Xerces developers:
+ If you use pgp: pgp -kxa and append it to this file.
+ If you use gpg: gpg --export -a >>KEYS should do the trick
+
+Name User ID
+Neil Graham neilg@ca.ibm.com
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.2.2 (Cygwin)
+
+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
+H39QDg==
+=cl3K
+-----END PGP PUBLIC KEY BLOCK-----
+
+Type Bits/KeyID User ID
+pub 1024/24E8BBEE Neeraj Bajaj
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.0.0 (SunOS)
+Comment: For info see http://www.gnupg.org
+
+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
+6RTxOw==
+=tp/p
+-----END PGP PUBLIC KEY BLOCK-----
+
+Name User ID
+Elena Litani elitani@ca.ibm.com
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: PGPfreeware 7.0.3 for non-commercial use
+
+mQGiBD6B6XERBADI6/tqCOVj8iEE/aUwJ7PJEYNfsnFpSixgSUX7/mRQfSwgwXN7
+PbDdnX8eEgMS4vaqQ1/ZaU4vrkNz3Hnxx5OwFY4yWExpgiLddNM9pfbmfVfY6Myc
+Q9bm+hY0m+QxaU4U0mWX+Oy/RmwjzRn0AxdStgk0p6yUq8UtGkODgPjFfwCg/1Qb
+arryQeoLuBrwwtID0jvky+UEALkVZfofk6obllSbhMYEqUaXhNxUBJItwxlq/WLc
+GozTKykIeJOJ6XIXrfRqHFDevzSMPKBXZ/cqddnjnfjN2Z+WQ6TUhEQ4NRqvLYKr
+KExvloiM1DzhA41lT1yP2/kJikMT0ADMn2/Tz7977tpqiuXCx+4ysRJbLPmooz3T
+QEwEA/9tRRb5HMQ2wxxuGvRH1cwl9iplSKlqUNvJHnSPIQEjdiSvDsDN96u7wIB7
+rMg5VjMIyutVk5PfE+HcbxUaTbwT/4bnxCJQKcE7kpt+9lEdJf0EZz3c/c9bJ07J
+U+sCw2UhDKKYW2j7HtYi/jCMkiOHhaXaciRGb9wGzW5ZEUoTxLQhRWxlbmEgTGl0
+YW5pIDxlbGl0YW5pQGNhLmlibS5jb20+iQBYBBARAgAYBQI+gelxCAsDCQgHAgEK
+AhkBBRsDAAAAAAoJEF5nmKh11QWsA7EAn2TK8gEg30EgMTUFxmcYELfSN/CUAJ9k
+UGoD5mnueyK92OELrJBzVRXdcbkCDQQ+gelyEAgA9kJXtwh/CBdyorrWqULzBej5
+UxE5T7bxbrlLOCDaAadWoxTpj0BV89AHxstDqZSt90xkhkn4DIO9ZekX1KHTUPj1
+WV/cdlJPPT2N286Z4VeSWc39uK50T8X8dryDxUcwYc58yWb/Ffm7/ZFexwGq01ue
+jaClcjrUGvC/RgBYK+X0iP1YTknbzSC0neSRBzZrM2w4DUUdD3yIsxx8Wy2O9vPJ
+I8BD8KVbGI2Ou1WMuF040zT9fBdXQ6MdGGzeMyEstSr/POGxKUAYEY18hKcKctaG
+xAMZyAcpesqVDNmWn6vQClCbAkbTCD1mpF1Bn5x8vYlLIhkmuquiXsNV6TILOwAC
+Agf+JRs4i2DeeMXxOOP+aDNRm32IFOXvtYqtQePfdb9sbjaDM4oOp50YBq3TePHy
+3Nzyfn3BN7FeaGaD6v1BYUcHGQpZG6rotY9qtkKaT3jTZxPaSK4lyHJqoMebezVY
+qn5iAjKTIqiGIqwwbGYtKI+GxdE/AcOx7jUIWisKtBW0TljhGXx4jf9Rz+bVCqpy
+YNXttjIMVFpCozJa+afZMUrzJRHNNcskogN3ap4IxJ/1dgdmhg3Tt5fepPCkhBfM
+kROj1dQ8hxsilWBWanaGSg1J5UKC4o//msX07/OeEe9iKauSvuvacmwYen3TJJ5w
+b6XqoLDw5jAPAq+DK5GHK/7MeokATAQYEQIADAUCPoHpcgUbDAAAAAAKCRBeZ5io
+ddUFrNX+AKCv46VtO/gE670uvU3riSGPuu3vhwCfaZqngs2FjDhIigdV7w812RfS
+ias=
+=2mxx
+-----END PGP PUBLIC KEY BLOCK-----
+
+Name User ID
+Michael Glavassevich mrglavas@ca.ibm.com
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: PGP 8.0.3 - not licensed for commercial use: www.pgp.com
+
+mQGiBEAX4Q4RBAD/gIkxuOTVes5ccPoI16wPPHwwlEtar0VprlAdwqW5n+FvIvVL
+cX+dkJGmWM6A2GcFLSjlV4vbvelabhasooCHzs/gMb138+xSYhBgipHgJAzo6Vw3
+iH2+ujZRwXhnt0st0ALQhNjIal8T9zB4QMXlLheYyHOTXKX26nbTIepSpwCg/w1x
+EPl2yfNpB59eA5VlOAz5768D/2HmYGsADKrOopA59DzMlLRDq6f7ehPuMmHFW6It
+ToY6uBzTHHdYPP+HJ1e8vBnmAfP1Tw1NIEXTa76TyLtIoYcqhajZzPNO7nIwqYrr
+UOc713TFXA6m8QvWjZYwGrchkLBXjKqTwtJSSzmH9MhwfHWt902ea1OusWtyoNZD
+QI7GBADNB9rWekuJ77Mds+xI12G+x0zeOshvIIL8pIerWlPdyhaVgs2GRt+/BVoD
+G/e+3gT5vFV+paTu7Rh1QphEWoQXwClLWNSkivky+G9o2xTCRlURZ7KylwYI9lKd
+JwEiQX7nhYyuSC8Y5FyD9S6BNohUhJTfBAAGEr1d4EHOKnZ+3rQqTWljaGFlbCBH
+bGF2YXNzZXZpY2ggPG1yZ2xhdmFzQGNhLmlibS5jb20+iQBXBBARAgAXBQJAF+EO
+BwsJCAcDAgoCGQEFGwMAAAAACgkQHcMB3HRezqq7jQCgm/LQ9LbfY5nag8ZWygkr
+KEHGjGgAn0zQgj51GqNGaJx7aA3HgC5Z1krzuQINBEAX4Q4QCAD2Qle3CH8IF3Ki
+utapQvMF6PlTETlPtvFuuUs4INoBp1ajFOmPQFXz0AfGy0OplK33TGSGSfgMg71l
+6RfUodNQ+PVZX9x2Uk89PY3bzpnhV5JZzf24rnRPxfx2vIPFRzBhznzJZv8V+bv9
+kV7HAarTW56NoKVyOtQa8L9GAFgr5fSI/VhOSdvNILSd5JEHNmszbDgNRR0PfIiz
+HHxbLY7288kjwEPwpVsYjY67VYy4XTjTNP18F1dDox0YbN4zISy1Kv884bEpQBgR
+jXyEpwpy1obEAxnIByl6ypUM2Zafq9AKUJsCRtMIPWakXUGfnHy9iUsiGSa6q6Je
+w1XpMgs7AAICB/9/JpIHcuOeMW+l1jZuUQCGIW+Aa5pB/s0x6eS1xoP24eEk9xgC
+NPVt3pfHRtBh9kQpcvTr5y+sU0G4o2+vrJreld1KKWMwz2NhnSmbBZ8EdQLniuKW
+mRXLWpMlxq6aP5hEzqu73NsayYNZB7aWY9y0Oz7RpDJ3ggcK38U6DN49drDnfoqO
+cUjMhpV3OaN/yP77dA99AgTMt4TzzCCqxH9DVmDzTsdh+GTNPC+Tv1Rm0kpgvHDf
+SF4+VKmcGh1iCk5AvLaQIO8FpcnPyS68BjVPGKTkKwcWsCDhJELmrAtOWwq5MwAH
++0F+3MOa7DeROltIcLO7M5Jw6qituFd6jS/2iQBMBBgRAgAMBQJAF+EOBRsMAAAA
+AAoJEB3DAdx0Xs6q9hQAoMrWVVJkcnuZ0RsbEEsaqt88V682AKChXsOpysIu7Wpw
+xbl01xpkXrsTpQ==
+=ONzc
+-----END PGP PUBLIC KEY BLOCK-----
+
+Name User ID
+Michael Glavassevich mrglavas@ca.ibm.com
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: PGP 8.1 - not licensed for commercial use: www.pgp.com
+
+mQGiBEK8beERBAD/AP2jAbggMPiFgeG26HijyIiDNfcWkmQomU4MyVUk3eILG3wp
+d/ebNvgkThirNTr8qddRWLmjMn3uEOEF471l+seh7gya9Xuu4V1Xbet8YIgGdwA6
+hmREwjK2OqeMgr8Cz/frkMarAwDNebT2qZ7WtnGQCAlROyFRGAwcU1JrmwCg/6I/
+uMgcALMsut7OUGpA39ack+sD/2/k712eGLzqy6WHqCx2+gTki2C2ADwdH3h6/IVj
+t9BH3AidO+gafz8Wv5Wu7Ok9NRXfvlpp03o+n0fCu3ZFDHrhxZpANLD7sW2nL4UH
+8AzBHsQU7NCiZ+WG5yE7lCYzQNQwo00kkFonkY+o512uSDoUmhQTSe1eiWISfNSW
+NKnRBAClys3dwWtfQ0MsX3OW4A7nZXq90Kxt1oMxpE48aG8MEL8oYqelsnRDYYN/
+JGSXi8JeKQyp/2rcocNJP+FaDe023rMzXRTyPOlY4GS5FVB433hU1/ZdG2Bis9f1
+szW+i3vbw22N2uHRsvmnf1dmaXBKRcxCxsO9qQRNzA4wg7Jq4rQqTWljaGFlbCBH
+bGF2YXNzZXZpY2ggPG1yZ2xhdmFzQGNhLmlibS5jb20+iQBdBBARAgAdBQJCvG3h
+BwsJCAcDAgoCGQEFGwMAAAAFHgEAAAAACgkQ/UnAesCSaxNzIgCcCV+HNMY5uvD8
+fgjKSzqDvpGQ3gMAoKjuemz8st3QH+6SVQ2AQP6IdtZRuQINBEK8beEQCAD2Qle3
+CH8IF3KiutapQvMF6PlTETlPtvFuuUs4INoBp1ajFOmPQFXz0AfGy0OplK33TGSG
+SfgMg71l6RfUodNQ+PVZX9x2Uk89PY3bzpnhV5JZzf24rnRPxfx2vIPFRzBhznzJ
+Zv8V+bv9kV7HAarTW56NoKVyOtQa8L9GAFgr5fSI/VhOSdvNILSd5JEHNmszbDgN
+RR0PfIizHHxbLY7288kjwEPwpVsYjY67VYy4XTjTNP18F1dDox0YbN4zISy1Kv88
+4bEpQBgRjXyEpwpy1obEAxnIByl6ypUM2Zafq9AKUJsCRtMIPWakXUGfnHy9iUsi
+GSa6q6Jew1XpMgs7AAICCADYC32Mp6Rza1Z4mTZK6Run1e+w23K8jNxSN3kRSbAd
+nKlonYpBQRw/5JwbYNFXriqDtsrJYhGBb1caaRyDlegAinXWnRq6o+kkLLemZQOo
+qOW1FIOjWLV6bKbQO+8/2zh8ukGm+uTiljMyOj5g5Y55h47u0hKObP9O/JX4ZTb+
+xCMNmlapOdGQqiHy0SwfYs0eB9roQeLpPF8cA6HX/CrmwjwZzmTNk5nXE63VH9fJ
+DVYKr3GDajD33VSV8BMlFscKpIJSsILvfCZJY/qmZcpgSZOBfqDTDB1xQBHsR/CT
+cRI6Ri6WFDmBPAavFhB/QLcwRcTfMRkIeaLc34E5tW7UiQBMBBgRAgAMBQJCvG3h
+BRsMAAAAAAoJEP1JwHrAkmsTJCsAn3AT5PPocZARQWNClJxnePPSAkbdAKCaWftI
+fy7m79rRrQiANKiR07P/lw==
+=LVTd
+-----END PGP PUBLIC KEY BLOCK-----
+
+Name User ID
+Michael Glavassevich mrglavas@ca.ibm.com
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.7 (MingW32)
+
+mQGiBEbWMhMRBAD5U3GTlWqDDcujai7oBKzOSa6AtBAuef6hCjMaMmwbrNbqUHap
+WfYizDACuCi5Rwu+yRENcEYAACnMvG6J5rR5Dxkx7Q5DxTPgiFzYhveIHkMV+CHh
+SvzaDzNad6e+jDNFPkJqPNCq2LCi5yk1EpxROsU2H2OIH9ciyF5lHUrAhwCgxhyR
+W2G2fsn0NKc4d4XWLal3bM0D/jCg0ZsBsHfz+V1d2ykkAafph6Tl2UisGWfOhyEf
+bSZg75SciOEgWpoM2417J85M2zNFIuTsyCeHaG1Pq4tZuRm8DSSK6cIFYxZUTLhJ
+udWARJoP+cxGf+a4c3meW3KoL8dCgJR8mwgDVSl/lVG31M12z0FEwAL4vrGErQiy
+HbgdA/9N/ecGHenlq1JnEh2OxBg2ABHMnTI3/+OFiWVEc6AaC/YoPaPe35/zmmQS
+917qv372x7I8OuG37uEKyBfVCJjUcYfrcI63rUCFke5hG8Pj2b+nWxsT5/xnLRB+
+7s4KMTatpbix9SqRuFwxj6JNAeF1CcKg0BXIMR9sbMd0JOda2rRHTWljaGFlbCBH
+bGF2YXNzZXZpY2ggKEFwYWNoZSBSZWxlYXNlIFNpZ25pbmcgS2V5KSA8bXJnbGF2
+YXNAY2EuaWJtLmNvbT6IYAQTEQIAIAUCRtYyEwIbAwYLCQgHAwIEFQIIAwQWAgMB
+Ah4BAheAAAoJELTgVQIKfLQtqKsAn3YKGksIZDvbodbaIaYSRNEGHEiuAJ4p4d8+
+1ju0nORgP+0PI/kS6Jz8kbkCDQRG1jITEAgAwlVpq8nJqsG9y/UYAFYBh75ez1/z
+BRz6PV/eJhlE4Kp464Wp4dvcwtM9HPhPU+95N8l96iZilPlcNFnCe8n3GuKVifw7
+t+4fIYGf3KnOdTmBZ0rq3sfAFNSJao5EM0tyPgBCkJR+0nC5spVMEbbwrcPRegNV
+aTZx4n2gkOl76c7GpIBtylem29Wqh5k8SLn3go0M+mnvQQVRL2khB8Qxy7hF1WQI
+z/UkFcHSm+vPhPpCcva/8lmUDXxuwS2pHvLmH0ACDuX9RBBjc3xGJDMg94IW6GwO
+4w92h5Bgs217+VM7lVc6T/sWLC323xo5ZjvMBE5oi1kCUhWRztWrmXCYlwADBQf+
+KuxrNev6sYDasv9NII98trfiBrGUDy4j8d/XC5ey0bNXtkzcACfcIi+tEFwmKirc
+n0BjoLOOmBMzSTOyVkynn6mNJyp+uUjU86J5WtdV4jX3msM1FG4dj//XhrvJRs89
+pNCGr4Tw29bMWVNT6Wta6WdUMmS3amhyJyh3ITCeHxskr0UQbBX65oTPQS8bkpOu
+0WhCt8epmndwZO9BCuk8xdz3mh8nHX2pr+74K0M5Sr/nFer9bpZQNUR0bxEBhFpL
+m5hkzGEakX6PyjNawLIvHc25AUt2wmC31L72tqVBpe6oxNk8U9RFKezcr/TbPMdY
+C9hoXLlS6jPNXQ1vPO1rF4hJBBgRAgAJBQJG1jITAhsMAAoJELTgVQIKfLQtDfkA
+oKUN6E+lbfqj5NIpuw4/oCnzeJ+1AKCh/HyMBMwXZwVulxPNNnV8uCqc6w==
+=A/7H
+-----END PGP PUBLIC KEY BLOCK-----
+
+Name User ID
+Michael Glavassevich mrglavas@ca.ibm.com
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.9 (Cygwin)
+
+mQINBEsh3ukBEADQTZRcZ+Fzyb4fWqhV5egIC8BTP54fjBcv9HKfC4IJxCaK5n/n
+GV9uuxv37LPNtZw9WxI8MLBJh0I3lu4PnrTvbcCVgP3NXlzFvdzY5n5FKQN62i+R
+6DbKehdd/QNlW0plxhVr3z6ZC2QH/EKRY0yJDcqT958Qz2BuPhXqYc+qlPtXAyPz
+2vE0aWsOZ6/7CJ7inLnh+0oVo1mJdtUYAVtoVwzQ6P7zcwvJDvwUaLUG9U0or46i
+46SNk2hTRK0q7KcFpEyv+6b1lbezZVWLN1tZjCITN8FHwf16cOMJF0XO/4fsCBQJ
+BCtZ9x5A6eCsDlWFCPd0BMDcPVDsB83AhujZo00g5H12oWVcxNUnlxSJ5ou7zRtq
+T4RJ7mpB7IM6g4zASJMgUkkuMnsQ9d+Bv8o9wC5lCDTEjN779ZxcctCmbBs6blgo
+4q9hYvAJYSkBOSfx+TRPuAYk9WK4elp8yq/XIrB1k7seKfTesROSf5Td5f988OpA
+jdyHhdp+HKstgktOkIvtDHQKgrsaKy5mHKqrWOA/mLL/Yw1p2IJkpBnGz8r/8mPD
+ecWrenRiT0E/us+D7tpHi84DrpfTS6niPaM4FgoigbCsdK/0T6IJ6uXVOPHdbpnL
+k5JDRYercy57tlaPwEHJITPe0FDP4zKJ+Jq28UYFRbPWDPcZJhPrUKA5IwARAQAB
+tD1NaWNoYWVsIEdsYXZhc3NldmljaCAoQ09ERSBTSUdOSU5HIEtFWSkgPG1yZ2xh
+dmFzQGFwYWNoZS5vcmc+iQI2BBMBAgAgBQJLId7pAhsDBgsJCAcDAgQVAggDBBYC
+AwECHgECF4AACgkQlEOAhCOKWlZifhAAhEkzKFOPkwJ58vy47jwMQa7/iAMs3gNN
+zNYcNcn6Vj3n/gTa5IlWrcjx2VnZviSW13lwry7DmudfO/qeU0JsJr4mk8Kwj5mh
+GFa5r/gt+dnOW/iFy8lEaJUI4vcXVZa4QK310d+Loat4ac0i0Nkioeiomix5RaQv
+A+I4m7qJpo6V112d/0/GCVJADwFm/5sbDhreUV4H8zIIkhH47YZKejEUArO3Teqn
+4Ym6ES/25qv/wiDSuuQOwIBymYIHCVam42VUHdbUHEjFZF7v5A1qjvdymZBtMGK2
+nfQCLUHpX6ACq+icwShLG4CDK4+zYdN0bTwI20VbLlFzFScjVga21Dqkdaw1bIvn
+cSmAXwrSKbFIdsdnsq9lnTqSszs5AyXQZ2Iq0iGk73L/CJemtgp9gwf3dp03WXQG
+5LCuTiRb/MWcgAPoG2KVEHRjE3KYGxEQ/OgIHxwDiDnvyvukjkpV/O/9A9LAga+5
+f7J22ih9g0ILbSbX0N9PWpvESD0fskAT6awlcvvyFacOm4tcYveMRESyT6/ZJWAm
+t/DlHcxLshX0RQZCETV/HO1C59twuds6MEbs3rTaFsKryz5Vo4/AQSsz46eDZze3
+XZ8y4FLHAkgrptHfoV39kyjJHmIMOAkx6S1YIvswTU0hF9SrxfrslyF9SwxYNuHt
+Q/M+Mf7tVQ4=
+=NDBw
+-----END PGP PUBLIC KEY BLOCK-----
+
+Name User ID
+Ankit Pasricha ankitp@ca.ibm.com
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.2.5 (MingW32)
+
+mQGiBEGP1U8RBACPJQLl8jBRDI4sVA2DHySLPIJNjdgACMLnXk3wh8o35kW0rG1g
+z0H+lIk8PwG1yjIUsd/V53zIR4+FwwaGGj9NloKWzRxTXmIPeUTKuIZUSUcrgEHI
+Yjn2geVK7757zyzcDccXDmKibe9c02YNxPQvLEw4fhmq8GuThmdp+p937wCgiQLl
+cokwmXs1m6hO8blCG/McHY8D/R8ObwatEBTmsyAHtufQTn1jPK6mB3fQqtb/54z9
+T6pX4Qy1+c9yBo4lb/FuC+IuV85VF6bwswPlgbrDELaQcz0/F8vJZMr05WNpBFav
+iU/OQzHAJjWgjW0oT307Zxo5G6RDlpaGmAx19gUVWj/m2CWlj/jVCwbTIzZ0JqKy
+d4nAA/44KvN0kwTjySX7EtvnCwsj0UHUordK7YohRS9BIdSij848a1i81mfdyZEf
+8D8PwpNTINCmIwllvGgTuwH46068OFKrnhLEnDv7Ij4ZwL/WB+wQQr+KgXVIXkE7
+6jrZs59lTwLjYDk9qqQIDko4o4FwYxMbV6JiyqvdfAsAJrZks7QiQW5raXQgUGFz
+cmljaGEgPGFua2l0cEBjYS5pYm0uY29tPoheBBMRAgAeBQJBj9VPAhsDBgsJCAcD
+AgMVAgMDFgIBAh4BAheAAAoJEI+v7Zyh+3vctP8An0cCChX7MR+LslpTe9MDa9Sg
+7D6RAJ92iCJMrqUTdnntZbCl4Tn9KDXrvbkBDQRBj9VTEAQAr4VUT8kmc/7/ygmA
+ajSV3QBtg6WedHfx2GwvLMmfAEZ2jiSZ0o4OUHPtRFZmcx0CwQElTeMnHbEhr82I
+4HQzwxcoKh7SpMNrMBzdmUbgYpBFOaiTpMe9JTSPw/bNRPAO84CCKKJZztI05bBY
+8LeF0lECV3MV7lgGeUs/2xEojEcAAwUEAJHNgiuuurfhxcegHkwSHPD+qTOT+/cW
+Gfhkg8MLxAoZtZnPWhfdnRadRxW5LfRGqn+yyI6HvW4LpXU+AGxKnimmovT6nEqJ
+up55DsMbuwxO+RPL09+lHgySf5h+EYiNBRogPzzPVIHDsVFsNzEBIWXY6vsfK8iC
+wQTy0MP7qPXUiEkEGBECAAkFAkGP1VMCGwwACgkQj6/tnKH7e9w1MACeKZme/d9N
+mXu+1q755Iu7+Ke+/LgAn2BLQWBFsDmmWyPMfJlwTPoHLC+F
+=2zre
+-----END PGP PUBLIC KEY BLOCK-----
+
+Name User ID
+Mukul Gandhi mukulg@apache.org
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v2.2.6 (Windows)
+
+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
+6CMlHiO/MH1/Ktz2a7NW
+=hMIE
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/sources b/sources
index e51e4e1..8ff6b2e 100644
--- a/sources
+++ b/sources
@@ -1 +1,2 @@
-SHA512 (Xerces-J-src.2.12.0.tar.gz) = b5c2925aa459a2beb5fe4ba90324038b258ff0c5bf40cd6562f1631a76881b12cc74203f0d9f9a60f5af2a61ea801f3f79d5e92f715424973d0e5ce7f80a44f4
+SHA512 (Xerces-J-src.2.12.1.tar.gz) = 66dc57d01adaa7668633bda4b96d8c43aebce4170d5e7d22ecd603d4fb74d38312cfa9fd0deb143282ec6f9c71b6f96ddf8efa367a757fc48a1b8d2709946531
+SHA512 (Xerces-J-src.2.12.1.tar.gz.asc) = cca61b4b5bcd2bb750fd879c18edc7bf90efc2b6bbfafb124e7fa31578bf21a4ddb14377616cc66a480b70498e3ebdd690f7cd3fe8a6f298834c0f3a34cfeab4
diff --git a/xerces-j2-constants.sh b/xerces-j2-constants.sh
deleted file mode 100644
index e722360..0000000
--- a/xerces-j2-constants.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-#
-# Xerces-J2 constants script
-# JPackage Project (http://www.jpackage.org/)
-# $Id: xerces-j2-constants.sh,v 1.3 2005/05/26 14:21:22 gbenson Exp $
-
-# Source functions library
-. /usr/share/java-utils/java-functions
-
-# Configuration
-MAIN_CLASS=org.apache.xerces.impl.Constants
-
-# Set parameters
-set_jvm
-export CLASSPATH=$(build-classpath xerces-j2)
-set_flags $BASE_FLAGS
-set_options $BASE_OPTIONS
-
-# Let's start
-run "$@"
diff --git a/xerces-j2-getcontentdocument.patch b/xerces-j2-getcontentdocument.patch
deleted file mode 100644
index 9c8e00f..0000000
--- a/xerces-j2-getcontentdocument.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-diff -up ./src/org/apache/html/dom/HTMLFrameElementImpl.java.fix ./src/org/apache/html/dom/HTMLFrameElementImpl.java
---- ./src/org/apache/html/dom/HTMLFrameElementImpl.java.fix 2018-04-21 00:02:12.000000000 -0400
-+++ ./src/org/apache/html/dom/HTMLFrameElementImpl.java 2020-06-24 13:22:17.584233178 -0400
-@@ -17,6 +17,7 @@
- package org.apache.html.dom;
-
- import org.w3c.dom.html.HTMLFrameElement;
-+import org.w3c.dom.Document;
-
- /**
- * @xerces.internal
-@@ -137,7 +138,10 @@ public class HTMLFrameElementImpl
- {
- super( owner, name );
- }
--
-+
-+ public Document getContentDocument() {
-+ return super.getOwnerDocument();
-+ }
-
- }
-
-diff -up ./src/org/apache/html/dom/HTMLIFrameElementImpl.java.fix ./src/org/apache/html/dom/HTMLIFrameElementImpl.java
---- ./src/org/apache/html/dom/HTMLIFrameElementImpl.java.fix 2018-04-21 00:02:12.000000000 -0400
-+++ ./src/org/apache/html/dom/HTMLIFrameElementImpl.java 2020-06-24 13:22:37.686198652 -0400
-@@ -17,6 +17,7 @@
- package org.apache.html.dom;
-
- import org.w3c.dom.html.HTMLIFrameElement;
-+import org.w3c.dom.Document;
-
- /**
- * @xerces.internal
-@@ -161,6 +162,9 @@ public class HTMLIFrameElementImpl
- super( owner, name );
- }
-
-+ public Document getContentDocument() {
-+ return super.getOwnerDocument();
-+ }
-
- }
-
-diff -up ./src/org/apache/html/dom/HTMLObjectElementImpl.java.fix ./src/org/apache/html/dom/HTMLObjectElementImpl.java
---- ./src/org/apache/html/dom/HTMLObjectElementImpl.java.fix 2018-04-21 00:02:09.000000000 -0400
-+++ ./src/org/apache/html/dom/HTMLObjectElementImpl.java 2020-06-24 13:23:01.294158104 -0400
-@@ -17,6 +17,7 @@
- package org.apache.html.dom;
-
- import org.w3c.dom.html.HTMLObjectElement;
-+import org.w3c.dom.Document;
-
- /**
- * @xerces.internal
-@@ -251,6 +252,9 @@ public class HTMLObjectElementImpl
- super( owner, name );
- }
-
-+ public Document getContentDocument() {
-+ return super.getOwnerDocument();
-+ }
-
- }
-
diff --git a/xerces-j2-version.sh b/xerces-j2-version.sh
deleted file mode 100644
index bd5e7c2..0000000
--- a/xerces-j2-version.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-#
-# Xerces-J2 version script
-# JPackage Project (http://www.jpackage.org/)
-# $Id: xerces-j2-version.sh,v 1.3 2005/05/26 14:21:22 gbenson Exp $
-
-# Source functions library
-. /usr/share/java-utils/java-functions
-
-# Configuration
-MAIN_CLASS=org.apache.xerces.impl.Version
-
-# Set parameters
-set_jvm
-export CLASSPATH=$(build-classpath xerces-j2)
-set_flags $BASE_FLAGS
-set_options $BASE_OPTIONS
-
-# Let's start
-run "$@"
diff --git a/xerces-j2.spec b/xerces-j2.spec
index 3fc9071..57aee2b 100644
--- a/xerces-j2.spec
+++ b/xerces-j2.spec
@@ -1,10 +1,8 @@
-%global cvs_version 2_12_0
-
%define __requires_exclude system.bundle
Name: xerces-j2
-Version: 2.12.0
-Release: 9%{?dist}
+Version: 2.12.1
+Release: 1%{?dist}
Summary: Java XML parser
# Most of the source is ASL 2.0
# W3C licensed files:
@@ -13,19 +11,17 @@ Summary: Java XML parser
License: ASL 2.0 and W3C
URL: http://xerces.apache.org/xerces2-j/
+%global cvs_version %(tr . _ <<< %{version})
+
Source0: http://mirror.ox.ac.uk/sites/rsync.apache.org/xerces/j/source/Xerces-J-src.%{version}.tar.gz
-Source1: %{name}-version.sh
-Source2: %{name}-constants.sh
+Source1: http://www.apache.org/dist/xerces/j/source/Xerces-J-src.%{version}.tar.gz.asc
+Source2: http://www.apache.org/dist/xerces/j/binaries/KEYS
Source11: %{name}-version.1
Source12: %{name}-constants.1
# Custom javac ant task used by the build
Source3: https://svn.apache.org/repos/asf/xerces/java/tags/Xerces-J_%{cvs_version}/tools/src/XJavac.java
-# Custom doclet tags used in javadocs
-Source5: https://svn.apache.org/repos/asf/xerces/java/tags/Xerces-J_%{cvs_version}/tools/src/ExperimentalTaglet.java
-Source6: https://svn.apache.org/repos/asf/xerces/java/tags/Xerces-J_%{cvs_version}/tools/src/InternalTaglet.java
-
Source7: %{name}-pom.xml
# Patch the build so that it doesn't try to use bundled xml-commons source
@@ -34,8 +30,8 @@ Patch0: %{name}-build.patch
# Patch the manifest so that it includes OSGi stuff
Patch1: %{name}-manifest.patch
-# Patch various classes that need to implement getContentDocument method
-Patch2: %{name}-getcontentdocument.patch
+# Patch build.xml to patch modules as needed during javadoc generation
+Patch2: %{name}-modulefix.patch
BuildArch: noarch
@@ -45,7 +41,8 @@ BuildRequires: apache-parent
BuildRequires: xalan-j2 >= 2.7.1
BuildRequires: xml-commons-apis >= 1.4.01
BuildRequires: xml-commons-resolver >= 1.2
-BuildRequires: java-1.8.0-openjdk-devel
+BuildRequires: java-devel
+BuildRequires: gnupg2
Requires: xalan-j2 >= 2.7.1
Requires: xml-commons-apis >= 1.4.01
@@ -112,19 +109,18 @@ Requires: %{name} = %{version}-%{release}
%{summary}.
%prep
-%setup -q -n xerces-%{cvs_version}
-%patch0 -p0 -b .orig
-%patch1 -p0 -b .orig
-%patch2 -p0 -b .orig
+# Verify the source file
+%{gpgverify} --data=%{SOURCE0} --signature=%{SOURCE1} --keyring=%{SOURCE2}
-# Copy the custom ant tasks into place
+%autosetup -p0 -n xerces-%{cvs_version}
+
+# Copy the custom ant task into place
mkdir -p tools/org/apache/xerces/util
mkdir -p tools/bin
-cp -a %{SOURCE3} %{SOURCE5} %{SOURCE6} tools/org/apache/xerces/util
+cp -a %{SOURCE3} tools/org/apache/xerces/util
# Make sure upstream hasn't sneaked in any jars we don't know about
-find -name '*.class' -exec rm -f '{}' \;
-find -name '*.jar' -exec rm -f '{}' \;
+find . \( -name '*.class' -o -name '*.jar' \) -delete
sed -i 's/\r//' LICENSE README NOTICE
@@ -136,16 +132,11 @@ sed -i -e "s|additionalparam='|additionalparam='-Xdoclint:none |" build.xml
%mvn_file : %{name} jaxp_parser_impl
%build
-export JAVA_HOME=%{_jvmdir}/java-1.8.0
pushd tools
# Build custom ant tasks
-$JAVA_HOME/bin/javac -classpath $(build-classpath ant) org/apache/xerces/util/XJavac.java
-$JAVA_HOME/bin/jar cf bin/xjavac.jar org/apache/xerces/util/XJavac.class
-
-# Build custom doc taglets
-$JAVA_HOME/bin/javac -classpath $JAVA_HOME/lib/tools.jar org/apache/xerces/util/*Taglet.java
-$JAVA_HOME/bin/jar cf bin/xerces2taglets.jar org/apache/xerces/util/*Taglet.class
+javac -classpath $(build-classpath ant) org/apache/xerces/util/XJavac.java
+jar cf bin/xjavac.jar org/apache/xerces/util/XJavac.class
ln -sf $(build-classpath xalan-j2-serializer) serializer.jar
ln -sf $(build-classpath xml-commons-apis) xml-apis.jar
@@ -155,7 +146,7 @@ popd
# Build everything
export ANT_OPTS="-Xmx512m -Djava.awt.headless=true -Dbuild.sysclasspath=first -Ddisconnected=true"
-ant -Djavac.source=1.6 -Djavac.target=1.6 \
+ant -Djavac.source=1.8 -Djavac.target=1.8 \
-Dbuild.compiler=modern \
clean jars javadocs
@@ -177,8 +168,8 @@ cp -pr build/docs/javadocs/xni/* %{buildroot}%{_javadocdir}/%{name}/xni
cp -pr build/docs/javadocs/other/* %{buildroot}%{_javadocdir}/%{name}/other
# scripts
-install -pD -m755 -T %{SOURCE1} %{buildroot}%{_bindir}/%{name}-version
-install -pD -m755 -T %{SOURCE2} %{buildroot}%{_bindir}/%{name}-constants
+%jpackage_script org.apache.xerces.impl.Version "" "" %{name} %{name}-version 1
+%jpackage_script org.apache.xerces.impl.Constants "" "" %{name} %{name}-constants 1
# manual pages
install -d -m 755 %{buildroot}%{_mandir}/man1
@@ -190,7 +181,7 @@ install -pD -T build/xercesSamples.jar %{buildroot}%{_datadir}/%{name}/%{name}-s
cp -pr data %{buildroot}%{_datadir}/%{name}
%post
-# alternatives suppoort removed in f26
+# alternatives support removed in f26
update-alternatives --remove jaxp_parser_impl %{_javadir}/%{name}.jar >/dev/null 2>&1 || :
# it deletes the link, set it up again
ln -sf %{name}.jar %{_javadir}/jaxp_parser_impl.jar
@@ -207,6 +198,15 @@ ln -sf %{name}.jar %{_javadir}/jaxp_parser_impl.jar
%{_datadir}/%{name}
%changelog
+* Mon Sep 14 2020 Jerry James - 2.12.1-1
+- Version 2.12.1
+- Drop upstreamed getcontentdocument patch
+- Drop no longer used taglet sources
+- Verify the source tarball
+- Compute cvs_version so it doesn't have to be updated in sync with Version
+- Build with JDK 11
+- Generate the scripts with jpackage_script
+
* Wed Jul 29 2020 Fedora Release Engineering - 2.12.0-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild