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/getContentDocument.patch b/getContentDocument.patch
new file mode 100644
index 0000000..06f443c
--- /dev/null
+++ b/getContentDocument.patch
@@ -0,0 +1,84 @@
+From: Markus Koschany
+Date: Sat, 12 May 2018 22:12:44 +0200
+Subject: getContentDocument
+
+Fix FTBFS with Java10 due to missing method getContentDocument.
+
+Forwarded: no
+---
+ src/org/apache/html/dom/HTMLFrameElementImpl.java | 7 +++++++
+ src/org/apache/html/dom/HTMLIFrameElementImpl.java | 5 +++++
+ src/org/apache/html/dom/HTMLObjectElementImpl.java | 5 +++++
+ 3 files changed, 17 insertions(+)
+
+diff --git a/src/org/apache/html/dom/HTMLFrameElementImpl.java b/src/org/apache/html/dom/HTMLFrameElementImpl.java
+index 18ab953..e90a592 100644
+--- a/src/org/apache/html/dom/HTMLFrameElementImpl.java
++++ b/src/org/apache/html/dom/HTMLFrameElementImpl.java
+@@ -17,6 +17,8 @@
+ package org.apache.html.dom;
+
+ import org.w3c.dom.html.HTMLFrameElement;
++import org.w3c.dom.Document;
++
+
+ /**
+ * @xerces.internal
+@@ -127,6 +129,11 @@ public class HTMLFrameElementImpl
+ setAttribute( "src", src );
+ }
+
++ public Document getContentDocument()
++ {
++ return null;
++ }
++
+
+ /**
+ * Constructor requires owner document.
+diff --git a/src/org/apache/html/dom/HTMLIFrameElementImpl.java b/src/org/apache/html/dom/HTMLIFrameElementImpl.java
+index c326557..287ba9e 100644
+--- a/src/org/apache/html/dom/HTMLIFrameElementImpl.java
++++ b/src/org/apache/html/dom/HTMLIFrameElementImpl.java
+@@ -17,6 +17,7 @@
+ package org.apache.html.dom;
+
+ import org.w3c.dom.html.HTMLIFrameElement;
++import org.w3c.dom.Document;
+
+ /**
+ * @xerces.internal
+@@ -150,6 +151,10 @@ public class HTMLIFrameElementImpl
+ setAttribute( "width", width );
+ }
+
++ public Document getContentDocument()
++ {
++ return null;
++ }
+
+ /**
+ * Constructor requires owner document.
+diff --git a/src/org/apache/html/dom/HTMLObjectElementImpl.java b/src/org/apache/html/dom/HTMLObjectElementImpl.java
+index b065e69..cd27fc8 100644
+--- a/src/org/apache/html/dom/HTMLObjectElementImpl.java
++++ b/src/org/apache/html/dom/HTMLObjectElementImpl.java
+@@ -17,6 +17,7 @@
+ package org.apache.html.dom;
+
+ import org.w3c.dom.html.HTMLObjectElement;
++import org.w3c.dom.Document;
+
+ /**
+ * @xerces.internal
+@@ -239,6 +240,10 @@ public class HTMLObjectElementImpl
+ setAttribute( "width", width );
+ }
+
++ public Document getContentDocument()
++ {
++ return null;
++ }
+
+
+ /**
diff --git a/xerces-j2.spec b/xerces-j2.spec
index 1f212fe..6e842df 100644
--- a/xerces-j2.spec
+++ b/xerces-j2.spec
@@ -22,10 +22,6 @@ 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,6 +30,9 @@ Patch0: %{name}-build.patch
# Patch the manifest so that it includes OSGi stuff
Patch1: %{name}-manifest.patch
+# Fix FTBFS with Java10 due to missing method getContentDocument
+Patch2: https://sources.debian.org/data/main/libx/libxerces2-java/2.12.0-1/debian/patches/getContentDocument.patch
+
BuildArch: noarch
BuildRequires: javapackages-local
@@ -85,14 +84,6 @@ 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 %{name}
-
-# Consolidating all javadocs into one package
-
-%description javadoc
-This package contains the API documentation for %{name}.
-
%package demo
Summary: Demonstrations and samples for %{name}
Requires: %{name} = %{version}-%{release}
@@ -104,11 +95,12 @@ Requires: %{name} = %{version}-%{release}
%setup -q -n xerces-%{cvs_version}
%patch0 -p0 -b .orig
%patch1 -p0 -b .orig
+%patch2 -p1
# 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
+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 '{}' \;
@@ -127,10 +119,6 @@ pushd tools
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
@@ -138,28 +126,16 @@ 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 \
+export ANT_OPTS="-Xmx256m -Djava.awt.headless=true -Dbuild.sysclasspath=first -Ddisconnected=true"
+ant -Djavac.source=1.6 -Djavac.target=1.6 \
-Dbuild.compiler=modern \
- clean jars javadocs
+ clean jars
%mvn_artifact %{SOURCE7} build/xercesImpl.jar
%install
%mvn_install
-# javadoc
-mkdir -p %{buildroot}%{_javadocdir}/%{name}
-mkdir -p %{buildroot}%{_javadocdir}/%{name}/impl
-mkdir -p %{buildroot}%{_javadocdir}/%{name}/xs
-mkdir -p %{buildroot}%{_javadocdir}/%{name}/xni
-mkdir -p %{buildroot}%{_javadocdir}/%{name}/other
-
-cp -pr build/docs/javadocs/xerces2/* %{buildroot}%{_javadocdir}/%{name}/impl
-cp -pr build/docs/javadocs/api/* %{buildroot}%{_javadocdir}/%{name}/xs
-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
@@ -184,9 +160,6 @@ ln -sf %{name}.jar %{_javadir}/jaxp_parser_impl.jar
%{_bindir}/*
%{_mandir}/*/*
-%files javadoc
-%{_javadocdir}/%{name}
-
%files demo
%{_datadir}/%{name}