diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..be28d45
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+SOURCES/Xerces-J-src.2.12.0.tar.gz
diff --git a/.rh-maven36-xerces-j2.metadata b/.rh-maven36-xerces-j2.metadata
new file mode 100644
index 0000000..34e6bb9
--- /dev/null
+++ b/.rh-maven36-xerces-j2.metadata
@@ -0,0 +1 @@
+474275833fe481c1da2461d6b2bb6bd3304dee7e SOURCES/Xerces-J-src.2.12.0.tar.gz
diff --git a/SOURCES/ExperimentalTaglet.java b/SOURCES/ExperimentalTaglet.java
new file mode 100644
index 0000000..d3350fc
--- /dev/null
+++ b/SOURCES/ExperimentalTaglet.java
@@ -0,0 +1,131 @@
+/*
+ * 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/SOURCES/InternalTaglet.java b/SOURCES/InternalTaglet.java
new file mode 100644
index 0000000..54a5ca7
--- /dev/null
+++ b/SOURCES/InternalTaglet.java
@@ -0,0 +1,131 @@
+/*
+ * 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/SOURCES/XJavac.java b/SOURCES/XJavac.java
new file mode 100644
index 0000000..72d10d7
--- /dev/null
+++ b/SOURCES/XJavac.java
@@ -0,0 +1,151 @@
+/*
+ * 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 org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.types.Path;
+import org.apache.tools.ant.util.JavaEnvUtils;
+import org.apache.tools.ant.taskdefs.Javac;
+
+import java.lang.StringBuffer;
+import java.util.Properties;
+import java.util.Locale;
+
+/**
+ * The implementation of the javac compiler for JDK 1.4 and above
+ *
+ * The purpose of this task is to diagnose whether we're
+ * running on a 1.4 or above JVM; if we are, to
+ * set up the bootclasspath such that the build will
+ * succeed; if we aren't, then invoke the Javac12
+ * task.
+ *
+ * @author Neil Graham, IBM
+ */
+public class XJavac extends Javac {
+
+ /**
+ * Run the compilation.
+ *
+ * @exception BuildException if the compilation has problems.
+ */
+ public void execute() throws BuildException {
+ if(isJDK14OrHigher()) {
+ // maybe the right one; check vendor:
+ // by checking system properties:
+ Properties props = null;
+ try {
+ props = System.getProperties();
+ } catch (Exception e) {
+ throw new BuildException("unable to determine java vendor because could not access system properties!");
+ }
+ // this is supposed to be provided by all JVM's from time immemorial
+ String vendor = ((String)props.get("java.vendor")).toUpperCase(Locale.ENGLISH);
+ if (vendor.indexOf("IBM") >= 0) {
+ // we're on an IBM 1.4 or higher; fiddle with the bootclasspath.
+ setBootclasspath(createIBMJDKBootclasspath());
+ }
+ // need to do special things for Sun too and also
+ // for Apple, HP, FreeBSD, SableVM, Kaffe and Blackdown: a Linux port of Sun Java
+ else if( (vendor.indexOf("SUN") >= 0) ||
+ (vendor.indexOf("BLACKDOWN") >= 0) ||
+ (vendor.indexOf("APPLE") >= 0) ||
+ (vendor.indexOf("HEWLETT-PACKARD") >= 0) ||
+ (vendor.indexOf("KAFFE") >= 0) ||
+ (vendor.indexOf("SABLE") >= 0) ||
+ (vendor.indexOf("FREEBSD") >= 0)) {
+ // we're on an SUN 1.4 or higher; fiddle with the bootclasspath.
+ // since we can't eviscerate XML-related info here,
+ // we must use the classpath
+ Path bcp = createBootclasspath();
+ Path clPath = getClasspath();
+ bcp.append(clPath);
+ String currBCP = (String)props.get("sun.boot.class.path");
+ Path currBCPath = new Path(null);
+ currBCPath.createPathElement().setPath(currBCP);
+ bcp.append(currBCPath);
+ setBootclasspath(bcp);
+ }
+ }
+ // now just do the normal thing:
+ super.execute();
+ }
+
+ /**
+ * Creates bootclasspath for IBM JDK 1.4 and above.
+ */
+ private Path createIBMJDKBootclasspath() {
+ Path bcp = createBootclasspath();
+ String javaHome = System.getProperty("java.home");
+ StringBuffer bcpMember = new StringBuffer();
+ bcpMember.append(javaHome).append("/lib/charsets.jar:");
+ bcp.createPathElement().setPath(bcpMember.toString());
+ bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/core.jar:");
+ bcp.createPathElement().setPath(bcpMember.toString());
+ bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/vm.jar:");
+ bcp.createPathElement().setPath(bcpMember.toString());
+ bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/java.util.jar:");
+ bcp.createPathElement().setPath(bcpMember.toString());
+ bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/rt.jar:");
+ bcp.createPathElement().setPath(bcpMember.toString());
+ bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/graphics.jar:");
+ bcp.createPathElement().setPath(bcpMember.toString());
+ bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/javaws.jar:");
+ bcp.createPathElement().setPath(bcpMember.toString());
+ bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/jaws.jar:");
+ bcp.createPathElement().setPath(bcpMember.toString());
+ bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/security.jar:");
+ bcp.createPathElement().setPath(bcpMember.toString());
+ bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/server.jar:");
+ bcp.createPathElement().setPath(bcpMember.toString());
+ bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/JawBridge.jar:");
+ bcp.createPathElement().setPath(bcpMember.toString());
+ bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/gskikm.jar:");
+ bcp.createPathElement().setPath(bcpMember.toString());
+ bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/ibmjceprovider.jar:");
+ bcp.createPathElement().setPath(bcpMember.toString());
+ bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/indicim.jar:");
+ bcp.createPathElement().setPath(bcpMember.toString());
+ bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/jaccess.jar:");
+ bcp.createPathElement().setPath(bcpMember.toString());
+ bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/ldapsec.jar:");
+ bcp.createPathElement().setPath(bcpMember.toString());
+ bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/oldcertpath.jar");
+ bcp.createPathElement().setPath(bcpMember.toString());
+ return bcp;
+ }
+
+ /**
+ * Checks whether the JDK version is 1.4 or higher. If it's not
+ * JDK 1.4 we check whether we're on a future JDK by checking
+ * that we're not on JDKs 1.0, 1.1, 1.2 or 1.3. This check by
+ * exclusion should future proof this task from new versions of
+ * Ant which are aware of higher JDK versions.
+ *
+ * @return true if the JDK version is 1.4 or higher.
+ */
+ private boolean isJDK14OrHigher() {
+ final String version = JavaEnvUtils.getJavaVersion();
+ return version.equals(JavaEnvUtils.JAVA_1_4) ||
+ (!version.equals(JavaEnvUtils.JAVA_1_3) &&
+ !version.equals(JavaEnvUtils.JAVA_1_2) &&
+ !version.equals(JavaEnvUtils.JAVA_1_1) &&
+ !version.equals(JavaEnvUtils.JAVA_1_0));
+ }
+}
diff --git a/SOURCES/xerces-j2-build.patch b/SOURCES/xerces-j2-build.patch
new file mode 100644
index 0000000..7e7caaf
--- /dev/null
+++ b/SOURCES/xerces-j2-build.patch
@@ -0,0 +1,72 @@
+--- build.xml.orig 2010-11-26 20:42:11.000000000 +0000
++++ build.xml 2010-12-11 19:20:35.913500731 +0000
+@@ -108,7 +108,6 @@
+
+
+
+-
+
+
+
+@@ -247,30 +246,6 @@
+
+
+-
+-
+-
+-
+-
+
+
+@@ -1232,30 +1207,6 @@
+
+
+-
+-
+-
+-
+-
+
+
+
diff --git a/SOURCES/xerces-j2-constants.1 b/SOURCES/xerces-j2-constants.1
new file mode 100644
index 0000000..86c7e54
--- /dev/null
+++ b/SOURCES/xerces-j2-constants.1
@@ -0,0 +1,12 @@
+.TH XERCES-J2-CONSTANTS 1 "08 April 2013" "xerces-2.11.0" "User commands"
+
+.SH NAME
+xerces-j2-constants \- display constants used by Xerces2 Java Parser
+
+.SH SYNOPSIS
+.BR xerces-j2-constants
+
+.SH DESCRIPTION
+
+Xerces-J2-Constants dumps common constants used by Xerces2 Java Parser
+to standard output.
diff --git a/SOURCES/xerces-j2-constants.sh b/SOURCES/xerces-j2-constants.sh
new file mode 100644
index 0000000..e722360
--- /dev/null
+++ b/SOURCES/xerces-j2-constants.sh
@@ -0,0 +1,20 @@
+#!/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/SOURCES/xerces-j2-manifest.patch b/SOURCES/xerces-j2-manifest.patch
new file mode 100644
index 0000000..413fa8b
--- /dev/null
+++ b/SOURCES/xerces-j2-manifest.patch
@@ -0,0 +1,17 @@
+--- src/manifest.xerces.orig 2010-11-26 22:42:07.000000000 +0200
++++ src/manifest.xerces 2012-12-17 11:11:52.200392844 +0200
+@@ -1,5 +1,14 @@
+ Manifest-Version: 1.0
+ Created-By: @java.version@ (@java.vendor@)
++Bundle-RequiredExecutionEnvironment: J2SE-1.5
++Bundle-SymbolicName: org.apache.xerces
++Bundle-ManifestVersion: 2
++Bundle-Name: @impl.name@
++Bundle-Localization: plugin
++Bundle-Version: @impl.version@
++Bundle-Vendor: Apache Software Foundation
++Require-Bundle: system.bundle,javax.xml;visibility:=reexport, org.apache.xml.resolver;bundle-version="[1.2.0,2.0.0)";visibility:=reexport,org.apache.xml.serializer;bundle-version="[2.7.1,3.0.0)"
++Export-Package: META-INF.services;version="@impl.version@",org.apache.html.dom;version="@impl.version@",org.apache.wml;version="@impl.version@",org.apache.wml.dom;version="@impl.version@",org.apache.xerces.dom;version="@impl.version@",org.apache.xerces.dom.events;version="@impl.version@",org.apache.xerces.dom3.as;version="@impl.version@",org.apache.xerces.impl;version="@impl.version@",org.apache.xerces.impl.dtd;version="@impl.version@",org.apache.xerces.impl.dtd.models;version="@impl.version@",org.apache.xerces.impl.dv;version="@impl.version@",org.apache.xerces.impl.dv.dtd;version="@impl.version@",org.apache.xerces.impl.dv.util;version="@impl.version@",org.apache.xerces.impl.dv.xs;version="@impl.version@",org.apache.xerces.impl.io;version="@impl.version@",org.apache.xerces.impl.msg;version="@impl.version@",org.apache.xerces.impl.validation;version="@impl.version@",org.apache.xerces.impl.xpath;version="@impl.version@",org.apache.xerces.impl.xpath.regex;version="@impl.version@",org.apache.xerces.impl.xs;version="@impl.version@",org.apache.xerces.impl.xs.identity;version="@impl.version@",org.apache.xerces.impl.xs.models;version="@impl.version@",org.apache.xerces.impl.xs.opti;version="@impl.version@",org.apache.xerces.impl.xs.traversers;version="@impl.version@",org.apache.xerces.impl.xs.util;version="@impl.version@",org.apache.xerces.jaxp;version="@impl.version@",org.apache.xerces.jaxp.datatype;version="@impl.version@",org.apache.xerces.jaxp.validation;version="@impl.version@",org.apache.xerces.parsers;version="@impl.version@",org.apache.xerces.stax;version="@impl.version@",org.apache.xerces.stax.events;version="@impl.version@",org.apache.xerces.util;version="@impl.version@",org.apache.xerces.xinclude;version="@impl.version@",org.apache.xerces.xni;version="@impl.version@",org.apache.xerces.xni.grammars;version="@impl.version@",org.apache.xerces.xni.parser;version="@impl.version@",org.apache.xerces.xpointer;version="@impl.version@",org.apache.xerces.xs;version="@impl.version@",org.apache.xerces.xs.datatypes;version="@impl.version@",org.apache.xml.serialize;version="@impl.version@",org.w3c.dom.html;version="@impl.version@"
+
+ Name: org/apache/xerces/impl/
+ Comment: @impl.name@
diff --git a/SOURCES/xerces-j2-pom.xml b/SOURCES/xerces-j2-pom.xml
new file mode 100644
index 0000000..e4a3c72
--- /dev/null
+++ b/SOURCES/xerces-j2-pom.xml
@@ -0,0 +1,48 @@
+
+
+
+ 4.0.0
+
+ org.apache
+ apache
+ 4
+
+
+ xerces
+ xercesImpl
+ 2.11.0
+ Xerces2 Java Parser
+
+ Xerces2 is the next generation of high performance, fully compliant XML parsers in the
+ Apache Xerces family. This new version of Xerces introduces the Xerces Native Interface (XNI),
+ a complete framework for building parser components and configurations that is extremely
+ modular and easy to program.
+
+
+ http://xerces.apache.org/xerces2-j
+
+
+
+ xml-apis
+ xml-apis
+ 1.4.01
+
+
+
+ xml-resolver
+ xml-resolver
+ 1.2
+ true
+
+
+
+
+
+
+ src
+
+
+
\ No newline at end of file
diff --git a/SOURCES/xerces-j2-version.1 b/SOURCES/xerces-j2-version.1
new file mode 100644
index 0000000..bccee19
--- /dev/null
+++ b/SOURCES/xerces-j2-version.1
@@ -0,0 +1,12 @@
+.TH XERCES-J2-VERSION 1 "08 April 2013" "xerces-2.11.0" "User commands"
+
+.SH NAME
+xerces-j2-version \- display version of Xerces2 Java Parser
+
+.SH SYNOPSIS
+.BR xerces-j2-version
+
+.SH DESCRIPTION
+
+Xerces-J2-Version prints version of Xerces2 Java Parser to standard
+output.
diff --git a/SOURCES/xerces-j2-version.sh b/SOURCES/xerces-j2-version.sh
new file mode 100644
index 0000000..bd5e7c2
--- /dev/null
+++ b/SOURCES/xerces-j2-version.sh
@@ -0,0 +1,20 @@
+#!/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/SPECS/xerces-j2.spec b/SPECS/xerces-j2.spec
new file mode 100644
index 0000000..5c4d9e1
--- /dev/null
+++ b/SPECS/xerces-j2.spec
@@ -0,0 +1,511 @@
+%{?scl:%scl_package xerces-j2}
+%{!?scl:%global pkg_name %{name}}
+
+%global cvs_version 2_12_0
+
+%define __requires_exclude system.bundle
+
+Name: %{?scl_prefix}xerces-j2
+Version: 2.12.0
+Release: 3.2%{?dist}
+Summary: Java XML parser
+# Most of the source is ASL 2.0
+# W3C licensed files:
+# src/org/apache/xerces/dom3/as
+# src/org/w3c/dom/html/HTMLDOMImplementation.java
+License: ASL 2.0 and W3C
+URL: http://xerces.apache.org/xerces2-j/
+
+Source0: http://mirror.ox.ac.uk/sites/rsync.apache.org/xerces/j/source/Xerces-J-src.%{version}.tar.gz
+Source1: %{pkg_name}-version.sh
+Source2: %{pkg_name}-constants.sh
+Source11: %{pkg_name}-version.1
+Source12: %{pkg_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: %{pkg_name}-pom.xml
+
+# Patch the build so that it doesn't try to use bundled xml-commons source
+Patch0: %{pkg_name}-build.patch
+
+# Patch the manifest so that it includes OSGi stuff
+Patch1: %{pkg_name}-manifest.patch
+
+BuildArch: noarch
+
+BuildRequires: %{?scl_prefix}javapackages-local
+BuildRequires: %{?scl_prefix}ant
+BuildRequires: %{?scl_prefix}apache-parent
+BuildRequires: %{?scl_prefix}xalan-j2 >= 2.7.1
+BuildRequires: %{?scl_prefix}xml-commons-apis >= 1.4.01
+BuildRequires: %{?scl_prefix}xml-commons-resolver >= 1.2
+
+Requires: %{?scl_prefix}xalan-j2 >= 2.7.1
+Requires: %{?scl_prefix}xml-commons-apis >= 1.4.01
+Requires: %{?scl_prefix}xml-commons-resolver >= 1.2
+# Explicit javapackages-tools requires since scripts use
+# /usr/share/java-utils/java-functions
+Requires: %{?scl_prefix}javapackages-tools
+
+Provides: %{?scl_prefix}jaxp_parser_impl = 1.4
+Provides: %{name}-scripts = %{version}-%{release}
+
+
+# This documentation is provided by xml-commons-apis
+
+# http://mail-archives.apache.org/mod_mbox/xerces-j-dev/201008.mbox/%3COF8D7E2F83.0271A181-ON8525777F.00528302-8525777F.0054BBE0@ca.ibm.com%3E
+
+%description
+Welcome to the future! Xerces2 is the next generation of high performance,
+fully compliant XML parsers in the Apache Xerces family. This new version of
+Xerces introduces the Xerces Native Interface (XNI), a complete framework for
+building parser components and configurations that is extremely modular and
+easy to program.
+
+The Apache Xerces2 parser is the reference implementation of XNI but other
+parser components, configurations, and parsers can be written using the Xerces
+Native Interface. For complete design and implementation documents, refer to
+the XNI Manual.
+
+Xerces2 is a fully conforming XML Schema processor. For more information,
+refer to the XML Schema page.
+
+Xerces2 also provides a complete implementation of the Document Object Model
+Level 3 Core and Load/Save W3C Recommendations and provides a complete
+implementation of the XML Inclusions (XInclude) W3C Recommendation. It also
+provides support for OASIS XML Catalogs v1.1.
+
+Xerces2 is able to parse documents written according to the XML 1.1
+Recommendation, except that it does not yet provide an option to enable
+normalization checking as described in section 2.13 of this specification. It
+also handles name spaces according to the XML Namespaces 1.1 Recommendation,
+and will correctly serialize XML 1.1 documents if the DOM level 3 load/save
+APIs are in use.
+
+%package javadoc
+Summary: Javadocs for %{pkg_name}
+
+# Consolidating all javadocs into one package
+
+%description javadoc
+This package contains the API documentation for %{pkg_name}.
+
+%package demo
+Summary: Demonstrations and samples for %{pkg_name}
+Requires: %{name} = %{version}-%{release}
+
+%description demo
+%{summary}.
+
+%prep
+%setup -q -n xerces-%{cvs_version}
+%patch0 -p0 -b .orig
+%patch1 -p0 -b .orig
+
+# Copy the custom ant tasks into place
+mkdir -p tools/org/apache/xerces/util
+mkdir -p tools/bin
+cp -a %{SOURCE3} %{SOURCE5} %{SOURCE6} 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 '{}' \;
+
+sed -i 's/\r//' LICENSE README NOTICE
+
+# legacy aliases for compatability
+%mvn_alias : xerces:xerces xerces:xmlParserAPIs apache:xerces-j2
+%mvn_file : %{pkg_name} jaxp_parser_impl
+
+%build
+pushd tools
+
+# Build custom ant tasks
+javac -classpath $(build-classpath ant) org/apache/xerces/util/XJavac.java
+jar cf bin/xjavac.jar org/apache/xerces/util/XJavac.class
+
+# Build custom doc taglets
+javac -classpath /usr/lib/jvm/java/lib/tools.jar org/apache/xerces/util/*Taglet.java
+jar cf bin/xerces2taglets.jar org/apache/xerces/util/*Taglet.class
+
+ln -sf $(build-classpath xalan-j2-serializer) serializer.jar
+ln -sf $(build-classpath xml-commons-apis) xml-apis.jar
+ln -sf $(build-classpath xml-commons-resolver) resolver.jar
+ln -sf $(build-classpath xerces-j2) x.jar
+popd
+
+# Build everything
+export ANT_OPTS="-Xmx256m -Djava.endorsed.dirs=$(pwd)/tools -Djava.awt.headless=true -Dbuild.sysclasspath=first -Ddisconnected=true"
+ant -Djavac.source=1.5 -Djavac.target=1.5 \
+ -Dbuild.compiler=modern \
+ clean jars javadocs
+
+%mvn_artifact %{SOURCE7} build/xercesImpl.jar
+
+%install
+%mvn_install
+
+# javadoc
+mkdir -p %{buildroot}%{_javadocdir}/%{pkg_name}
+mkdir -p %{buildroot}%{_javadocdir}/%{pkg_name}/impl
+mkdir -p %{buildroot}%{_javadocdir}/%{pkg_name}/xs
+mkdir -p %{buildroot}%{_javadocdir}/%{pkg_name}/xni
+mkdir -p %{buildroot}%{_javadocdir}/%{pkg_name}/other
+
+cp -pr build/docs/javadocs/xerces2/* %{buildroot}%{_javadocdir}/%{pkg_name}/impl
+cp -pr build/docs/javadocs/api/* %{buildroot}%{_javadocdir}/%{pkg_name}/xs
+cp -pr build/docs/javadocs/xni/* %{buildroot}%{_javadocdir}/%{pkg_name}/xni
+cp -pr build/docs/javadocs/other/* %{buildroot}%{_javadocdir}/%{pkg_name}/other
+
+# scripts
+install -pD -m755 -T %{SOURCE1} %{buildroot}%{_bindir}/%{pkg_name}-version
+install -pD -m755 -T %{SOURCE2} %{buildroot}%{_bindir}/%{pkg_name}-constants
+
+# manual pages
+install -d -m 755 %{buildroot}%{_mandir}/man1
+install -p -m 644 %{SOURCE11} %{buildroot}%{_mandir}/man1
+install -p -m 644 %{SOURCE12} %{buildroot}%{_mandir}/man1
+
+# demo
+install -pD -T build/xercesSamples.jar %{buildroot}%{_datadir}/%{pkg_name}/%{pkg_name}-samples.jar
+cp -pr data %{buildroot}%{_datadir}/%{pkg_name}
+
+%post
+# alternatives suppoort removed in f26
+update-alternatives --remove jaxp_parser_impl %{_javadir}/%{pkg_name}.jar >/dev/null 2>&1 || :
+# it deletes the link, set it up again
+ln -sf %{pkg_name}.jar %{_javadir}/jaxp_parser_impl.jar
+
+%files -f .mfiles
+%doc LICENSE NOTICE README
+%{_bindir}/*
+%{_mandir}/*/*
+
+%files javadoc
+%{_javadocdir}/%{pkg_name}
+
+%files demo
+%{_datadir}/%{pkg_name}
+
+%changelog
+* Wed Sep 4 2019 Mikolaj Izdebski - 2.12.0-3.2
+- Mass rebuild 2019-09-04
+
+* Tue Sep 3 2019 Java Maintainers - 2.12.0-3.1
+- Automated package import and SCL-ization
+
+* Fri May 24 2019 Mikolaj Izdebski - 2.12.0-3
+- Mass rebuild for javapackages-tools 201901
+
+* Sun Feb 03 2019 Fedora Release Engineering - 2.12.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Mon Nov 19 2018 Marian Koncek - 2.12.0-1
+- Update to upstream version 2.12.0
+
+* Fri Aug 03 2018 Michael Simacek - 2.11.0-34
+- Fix license tag to include W3C
+
+* Wed Aug 01 2018 Severin Gehwolf - 2.11.0-33
+- Add requirement on javapackages-tools since scripts use
+ java-functions.
+
+* Sat Jul 14 2018 Fedora Release Engineering - 2.11.0-32
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Fri Feb 09 2018 Fedora Release Engineering - 2.11.0-31
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Sat Sep 23 2017 Mikolaj Izdebski - 2.11.0-30
+- Remove unneeded dependency on dejavu-sans-fonts
+
+* Thu Jul 27 2017 Fedora Release Engineering - 2.11.0-29
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Wed Mar 08 2017 Michael Simacek - 2.11.0-28
+- Fix missing jaxp_parser_impl symlink after upgrade
+
+* Thu Feb 23 2017 Michael Simacek - 2.11.0-27
+- Remove alternatives, there is no other provider
+- Specfile cleanup
+
+* Thu Feb 23 2017 Michael Simacek - 2.11.0-26
+- Install with XMvn
+
+* Sat Feb 11 2017 Fedora Release Engineering - 2.11.0-25
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Fri Feb 05 2016 Fedora Release Engineering - 2.11.0-24
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Fri Jun 19 2015 Fedora Release Engineering - 2.11.0-23
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Wed Sep 10 2014 Mat Booth - 2.11.0-22
+- Add patch for CVE-2013-4002, rhbz #1140031
+- Fix ownership of javadoc directory
+
+* Mon Aug 11 2014 Mikolaj Izdebski - 2.11.0-21
+- Workaround regression in %%add_maven_depmap -a parameter handling
+
+* Mon Aug 11 2014 Mikolaj Izdebski - 2.11.0-20
+- Add alias for apache:xerces-j2
+
+* Sun Jun 08 2014 Fedora Release Engineering - 2.11.0-19
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Thu May 29 2014 Mikolaj Izdebski - 2.11.0-18
+- Use .mfiles generated during build
+
+* Tue Mar 04 2014 Stanislav Ochotnicky - 2.11.0-17
+- Use Requires: java-headless rebuild (#1067528)
+
+* Tue Aug 6 2013 Krzysztof Daniel 2.11.0-16
+- Fix FTBFS.
+
+* Sun Aug 04 2013 Fedora Release Engineering - 2.11.0-15
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Mon May 20 2013 Krzysztof Daniel 2.11.0-13
+- Add reexoport to javax.xml.
+
+* Mon Apr 8 2013 Mikolaj Izdebski - 2.11.0-13
+- Add manual pages
+
+* Fri Feb 15 2013 Fedora Release Engineering - 2.11.0-12
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Mon Dec 17 2012 Alexander Kurtakov 2.11.0-11
+- Really restore dependencies.
+
+* Tue Dec 11 2012 Krzysztof Daniel 2.11.0-10
+- Restored dependencies to system.bundle and javax.xml.
+
+* Tue Sep 25 2012 Krzysztof Daniel 2.11.0-9
+- Remove javax.xml from required bundles. They are provided by JVM.
+
+* Sun Jul 22 2012 Fedora Release Engineering - 2.11.0-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Wed Apr 18 2012 Krzysztof Daniel 2.11.0-7
+- Updated OSGi MANIFEST.MF to import javax.xml
+
+* Thu Mar 08 2012 Andrew Overholt - 2.11.0-6
+- Remove system.bundle OSGi requirement from MANIFEST.MF
+- Fold -scripts sub-package into main
+
+* Tue Mar 06 2012 Marek Goldmann - 2.11.0-5
+- Use non-versioned jar name, RHBZ#800463
+- Cleanup in spec file to follow new guidelines
+- Consolidated javadocs packages
+- Removed manual subpackage because of stylebook issues, see comment on obsolete
+
+* Sat Jan 14 2012 Fedora Release Engineering - 2.11.0-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Mon Feb 07 2011 Fedora Release Engineering - 2.11.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Mon Dec 13 2010 Mat Booth 2.11.0-2
+- Install maven pom and depmap.
+
+* Sat Dec 11 2010 Mat Booth - 2.11.0-1
+- Update to latest upstream version.
+- Provide JAXP 1.4.
+- Fix some minor rpmlint warnings.
+- Add dep on xalan-j2.
+- Fix javadoc taglets.
+
+* Sat Jun 12 2010 Mat Booth - 2.9.0-4
+- Fix broken links in manual and fix javadoc requires.
+- Build 1.5 bytecode instead of 1.6, for compatibility.
+
+* Fri Jan 22 2010 Andrew Overholt - 2.9.0-3
+- Fix unversioned Provides for jaxp_parser_impl (make it 1.3).
+
+* Thu Jan 14 2010 Mat Booth - 2.9.0-2
+- Add a build dep on a font package because the JDK is missing a dependency
+ to function correctly in headless mode. See RHBZ #478480 and #521523.
+- Fix groups.
+
+* Tue Jan 5 2010 Mat Booth - 2.9.0-1
+- Update to 2.9.0: This is the version Eclipse expects, previously the OSGi
+ manifest was lying about its version :-o
+- Enable manual sub-package now xml-stylebook is in Fedora.
+- Drop GCJ support.
+- Minor changes to spec to make it more conforming to the guidelines.
+- Drop the libgcj patch, we don't seem to need it anymore.
+- Add the OSGi manifest as part of the build instead of the install.
+- Fix packaging bug RHBZ #472646.
+
+* Mon Jul 27 2009 Fedora Release Engineering - 0:2.7.1-12.3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Thu Feb 26 2009 Fedora Release Engineering - 0:2.7.1-11.3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Fri Jan 30 2009 Alexander Kurtakov 0:2.7.1-10.3
+- Add osgi manifest.
+
+* Thu Jul 10 2008 Tom "spot" Callaway - 0:2.7.1-10.2
+- drop repotag
+- fix license tag
+
+* Tue Feb 19 2008 Fedora Release Engineering - 0:2.7.1-10jpp.1
+- Autorebuild for GCC 4.3
+
+* Wed Mar 28 2007 Matt Wringe 0:2.7.1-9jpp.1
+- Update with newest jpp version
+- Clean up spec file for Fedora Review
+
+* Sun Aug 13 2006 Warren Togami 0:2.7.1-7jpp.2
+- fix typo in preun req
+
+* Sat Aug 12 2006 Matt Wringe 0:2.7.1-7jpp.1
+- Merge with upstream version
+
+* Sat Aug 12 2006 Matt Wringe 0:2.7.1-7jpp
+- Add conditional native compiling
+- Add missing requires for javadocs
+- Add missing requires for post and preun
+- Update version to 7jpp at Fedora's request
+
+* Sat Jul 22 2006 Jakub Jelinek - 0:2.7.1-6jpp_9fc
+- Rebuilt
+
+* Wed Jul 12 2006 Jesse Keating - 0:2.7.1-6jpp_8fc
+- rebuild
+
+* Thu Mar 30 2006 Fernando Nasser 0:2.7.1-3jpp
+- Add missing BR for xml-stylebook
+
+* Wed Mar 22 2006 Ralph Apel 0:2.7.1-2jpp
+- First JPP-1.7 release
+- use tools subdir and give it as java.endorsed.dirs (for java-1.4.2-bea e.g.)
+
+* Mon Mar 6 2006 Jeremy Katz - 0:2.7.1-6jpp_7fc
+- stop scriptlet spew
+
+* Wed Feb 22 2006 Rafael Schloming - 0:2.7.1-6jpp_6fc
+- Updated to 2.7.1
+
+* Fri Feb 10 2006 Jesse Keating - 0:2.6.2-6jpp_5fc
+- bump again for double-long bug on ppc(64)
+
+* Tue Feb 07 2006 Jesse Keating - 0:2.6.2-6jpp_4fc
+- rebuilt for new gcc4.1 snapshot and glibc changes
+
+* Thu Feb 2 2006 Archit Shah 0:2.6.2-6jpp_3fc
+- build xerces without using native code
+
+* Mon Jan 9 2006 Archit Shah 0:2.6.2-6jpp_2fc
+- rebuilt for new gcj
+
+* Wed Dec 21 2005 Jesse Keating 0:2.6.2-6jpp_1fc
+- rebuilt for new gcj
+
+* Tue Dec 13 2005 Jesse Keating
+- rebuilt for new gcj
+
+* Fri Oct 07 2005 Ralph Apel 0:2.7.1-1jpp
+- Upgrade to 2.7.1
+
+* Thu Jul 21 2005 Ralph Apel 0:2.6.2-7jpp
+- Include target jars-dom3
+- Create new subpackage dom3
+
+* Mon Jul 18 2005 Gary Benson 0:2.6.2-5jpp_2fc
+- Build on ia64, ppc64, s390 and s390x.
+- Switch to aot-compile-rpm (also BC-compiles samples).
+
+* Wed Jul 13 2005 Gary Benson 0:2.6.2-6jpp
+- Build with Sun JDK (from ).
+
+* Wed Jun 15 2005 Gary Benson 0:2.6.2-5jpp_1fc
+- Upgrade to 2.6.2-5jpp.
+
+* Tue Jun 14 2005 Gary Benson 0:2.6.2-5jpp
+- Remove the tools tarball, and build xjavac from source.
+- Patch xjavac to fix the classpath under libgcj too.
+
+* Fri Jun 10 2005 Gary Benson 0:2.6.2-4jpp_8fc
+- Remove the tools tarball, and build xjavac from source.
+- Replace classpath workaround to xjavac task and use
+ xml-commons classes again (#152255).
+
+* Thu May 26 2005 Gary Benson 0:2.6.2-4jpp_7fc
+- Rearrange how BC-compiled stuff is built and installed.
+
+* Mon May 23 2005 Gary Benson 0:2.6.2-4jpp_6fc
+- Add alpha to the list of build architectures (#157522).
+- Use absolute paths for rebuild-gcj-db.
+
+* Thu May 5 2005 Gary Benson 0:2.6.2-4jpp_5fc
+- Add dependencies for %%post and %%postun scriptlets (#156901).
+
+* Fri Apr 29 2005 Gary Benson 0:2.6.2-4jpp_4fc
+- BC-compile.
+
+* Thu Apr 28 2005 Gary Benson 0:2.6.2-4jpp_3fc
+- Revert xjavac classpath workaround, and patch to use libgcj's
+ classes instead of those in xml-commons (#152255).
+
+* Thu Apr 21 2005 Gary Benson 0:2.6.2-4jpp_2fc
+- Add classpath workaround to xjavac task (#152255).
+
+* Wed Jan 12 2005 Gary Benson 0:2.6.2-4jpp_1fc
+- Reenable building of classes that require javax.swing (#130006).
+- Sync with RHAPS.
+
+* Mon Nov 15 2004 Fernando Nasser 0:2.6.2-4jpp_1rh
+- Merge with upstream for 2.6.2 upgrade
+
+* Thu Nov 4 2004 Gary Benson 0:2.6.2-2jpp_5fc
+- Build into Fedora.
+
+* Thu Oct 28 2004 Gary Benson 0:2.6.2-2jpp_4fc
+- Bootstrap into Fedora.
+
+* Fri Oct 1 2004 Andrew Overholt 0:2.6.2-2jpp_4rh
+- add coreutils BuildRequires
+
+* Thu Sep 30 2004 Andrew Overholt 0:2.6.2-2jpp_3rh
+- Remove xml-commons-resolver as a Requires
+
+* Thu Aug 26 2004 Ralph Apel 0:2.6.2-4jpp
+- Build with ant-1.6.2
+- Dropped jikes requirement, built for 1.4.2
+
+* Wed Jun 23 2004 Kaj J. Niemi 0:2.6.2-3jpp
+- Updated Patch #0 to fix breakage using BEA 1.4.2 SDK, new patch
+ from and .
+
+* Mon Jun 21 2004 Vivek Lakshmanan 0:2.6.2-2jpp_2rh
+- Added new Source1 URL and added new %%setup to expand it under the
+ expanded result of Source0.
+- Updated Patch0 to fix version discrepancies.
+- Added build requirement for xml-commons-apis
+
+* Mon Jun 14 2004 Matt Wringe 0:2.6.2-2jpp_1rh
+- Update to 2.6.2
+- made patch names comformant
+
+* Mon Mar 29 2004 Kaj J. Niemi 0:2.6.2-2jpp
+- Rebuilt with jikes 1.18 for java 1.3.1_11
+
+* Fri Mar 26 2004 Frank Ch. Eigler 0:2.6.1-1jpp_2rh
+- add RHUG upgrade cleanup
+
+* Tue Mar 23 2004 Kaj J. Niemi 0:2.6.2-1jpp
+- 2.6.2
+
+* Thu Mar 11 2004 Frank Ch. Eigler 0:2.6.1-1jpp_1rh
+- RH vacuuming
+- remove jikes dependency
+- add nonjikes-cast.patch