prepare for build under Java 9

This commit is contained in:
Jörg Prante 2018-02-06 23:31:56 +01:00
parent 5289b080a1
commit 1037f9308a
14 changed files with 70 additions and 39 deletions

View file

@ -2,7 +2,7 @@
plugins { plugins {
id "org.sonarqube" version "2.6.1" id "org.sonarqube" version "2.6.1"
id "io.codearte.nexus-staging" version "0.11.0" id "io.codearte.nexus-staging" version "0.11.0"
id "org.xbib.gradle.plugin.asciidoctor" version "1.5.4.1.0" id "org.xbib.gradle.plugin.asciidoctor" version "1.5.6.0.1"
} }
printf "Host: %s\nOS: %s %s %s\nJVM: %s %s %s %s\nGroovy: %s\nGradle: %s\n" + printf "Host: %s\nOS: %s %s %s\nJVM: %s %s %s %s\nGroovy: %s\nGradle: %s\n" +
@ -42,8 +42,8 @@ allprojects {
} }
dependencies { dependencies {
testCompile 'junit:junit:4.12' testCompile "junit:junit:${project.property('junit.version')}"
wagon 'org.apache.maven.wagon:wagon-ssh:3.0.0' wagon "org.apache.maven.wagon:wagon-ssh:${project.property('wagon.version')}"
} }
sourceCompatibility = JavaVersion.VERSION_1_8 sourceCompatibility = JavaVersion.VERSION_1_8
@ -75,12 +75,15 @@ allprojects {
classifier 'sources' classifier 'sources'
from sourceSets.main.allSource from sourceSets.main.allSource
} }
task javadocJar(type: Jar, dependsOn: javadoc) { task javadocJar(type: Jar, dependsOn: javadoc) {
classifier 'javadoc' classifier 'javadoc'
} }
artifacts { artifacts {
archives sourcesJar, javadocJar archives sourcesJar, javadocJar
} }
if (project.hasProperty('signing.keyId')) { if (project.hasProperty('signing.keyId')) {
signing { signing {
sign configurations.archives sign configurations.archives

View file

@ -1,10 +1,10 @@
dependencies { dependencies {
compile "com.fasterxml.jackson.core:jackson-databind:${project.property('jackson.version')}" compile "com.fasterxml.jackson.core:jackson-databind:${project.property('jackson.version')}"
testCompile('junit:junit:4.12') { testCompile("junit:junit:${project.property('junit.version')}") {
exclude group: 'org.hamcrest' exclude group: 'org.hamcrest'
} }
testCompile('org.mockito:mockito-core:1.9.5') { testCompile("org.mockito:mockito-core:${project.property('mockito.version')}") {
exclude group: 'org.hamcrest' exclude group: 'org.hamcrest'
} }
testCompile 'org.hamcrest:hamcrest-all:1.3' testCompile "org.hamcrest:hamcrest-all:${project.property('hamcrest.version')}"
} }

View file

@ -1,6 +1,6 @@
package org.xbib.content.json.pointer; package org.xbib.content.json.pointer;
import static org.mockito.Matchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never; import static org.mockito.Mockito.never;
import static org.mockito.Mockito.only; import static org.mockito.Mockito.only;

View file

@ -25,7 +25,6 @@ import org.xml.sax.InputSource;
import org.xml.sax.SAXException; import org.xml.sax.SAXException;
import org.xml.sax.XMLReader; import org.xml.sax.XMLReader;
import org.xml.sax.helpers.DefaultHandler; import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.helpers.XMLReaderFactory;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
@ -41,6 +40,9 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
/** /**
* RdfXmlParser is an admittedly convoluted hand-coded SAX parser for RDF/XML. * RdfXmlParser is an admittedly convoluted hand-coded SAX parser for RDF/XML.
@ -71,7 +73,7 @@ public class RdfXmlContentParser<R extends RdfContentParams> implements RdfConst
// counter for blank node generation // counter for blank node generation
private int bn = 0; private int bn = 0;
public RdfXmlContentParser(InputStream in) throws IOException { public RdfXmlContentParser(InputStream in) {
this(new InputStreamReader(in, StandardCharsets.UTF_8)); this(new InputStreamReader(in, StandardCharsets.UTF_8));
} }
@ -98,14 +100,19 @@ public class RdfXmlContentParser<R extends RdfContentParams> implements RdfConst
public RdfXmlContentParser<R> parse() throws IOException { public RdfXmlContentParser<R> parse() throws IOException {
try { try {
parse(new InputSource(reader)); parse(new InputSource(reader));
} catch (SAXException ex) { } catch (SAXException | ParserConfigurationException ex) {
throw new IOException(ex); throw new IOException(ex);
} }
return this; return this;
} }
public RdfXmlContentParser<R> parse(InputSource source) throws IOException, SAXException { public RdfXmlContentParser<R> parse(InputSource source) throws IOException, SAXException, ParserConfigurationException {
parse(XMLReaderFactory.createXMLReader(), source); SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(false);
SAXParser parser = factory.newSAXParser();
XMLReader xmlReader = parser.getXMLReader();
parse(xmlReader, source);
return this; return this;
} }

View file

@ -6,6 +6,7 @@ import org.xbib.content.rdf.io.sink.XmlSink;
import org.xml.sax.SAXException; import org.xml.sax.SAXException;
import org.xml.sax.XMLReader; import org.xml.sax.XMLReader;
import javax.xml.parsers.ParserConfigurationException;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.Reader; import java.io.Reader;
@ -58,8 +59,7 @@ public final class StreamProcessor<S extends Sink> extends BaseStreamProcessor {
source.process(reader, mimeType, baseUri); source.process(reader, mimeType, baseUri);
} }
public void setReader(XMLReader xmlReader) throws SAXException { public void setReader(XMLReader xmlReader) throws SAXException, ParserConfigurationException {
((XmlSource) source).setXmlReader(xmlReader); ((XmlSource) source).setXmlReader(xmlReader);
} }
} }

View file

@ -4,13 +4,15 @@ import org.xbib.content.rdf.io.sink.XmlSink;
import org.xml.sax.InputSource; import org.xml.sax.InputSource;
import org.xml.sax.SAXException; import org.xml.sax.SAXException;
import org.xml.sax.XMLReader; import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.Reader; import java.io.Reader;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
final class XmlSource extends AbstractSource<XmlSink> { final class XmlSource extends AbstractSource<XmlSink> {
@ -20,17 +22,19 @@ final class XmlSource extends AbstractSource<XmlSink> {
super(sink); super(sink);
} }
public static XMLReader getDefaultXmlReader() throws SAXException { public static XMLReader getDefaultXmlReader() throws SAXException, ParserConfigurationException {
XMLReader result = XMLReaderFactory.createXMLReader(); SAXParserFactory factory = SAXParserFactory.newInstance();
result.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); factory.setNamespaceAware(true);
return result; factory.setValidating(false);
SAXParser parser = factory.newSAXParser();
return parser.getXMLReader();
} }
@Override @Override
public void process(Reader reader, String mimeType, String baseUri) throws IOException { public void process(Reader reader, String mimeType, String baseUri) throws IOException {
try { try {
initXmlReader(); initXmlReader();
} catch (SAXException e) { } catch (SAXException | ParserConfigurationException e) {
throw new IOException("can not instantinate XMLReader", e); throw new IOException("can not instantinate XMLReader", e);
} }
try { try {
@ -53,7 +57,7 @@ final class XmlSource extends AbstractSource<XmlSink> {
} }
} }
private void initXmlReader() throws SAXException { private void initXmlReader() throws SAXException, ParserConfigurationException {
if (xmlReader == null) { if (xmlReader == null) {
xmlReader = getDefaultXmlReader(); xmlReader = getDefaultXmlReader();
} }
@ -61,7 +65,7 @@ final class XmlSource extends AbstractSource<XmlSink> {
xmlReader.setProperty("http://xml.org/sax/properties/lexical-handler", sink); xmlReader.setProperty("http://xml.org/sax/properties/lexical-handler", sink);
} }
public void setXmlReader(XMLReader xmlReader) throws SAXException { public void setXmlReader(XMLReader xmlReader) throws SAXException, ParserConfigurationException {
if (xmlReader == null) { if (xmlReader == null) {
this.xmlReader = getDefaultXmlReader(); this.xmlReader = getDefaultXmlReader();
} else { } else {

View file

@ -9,13 +9,15 @@ import org.xbib.content.rdf.util.NormalizeEolFilter;
import org.xml.sax.InputSource; import org.xml.sax.InputSource;
import org.xml.sax.SAXException; import org.xml.sax.SAXException;
import org.xml.sax.XMLReader; import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.Reader; import java.io.Reader;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
/** /**
* An XML reader for parsing XML into triples. * An XML reader for parsing XML into triples.
@ -33,7 +35,7 @@ public class XmlContentParser<P extends RdfContentParams> implements RdfContentP
private boolean validate = false; private boolean validate = false;
public XmlContentParser(InputStream in) throws IOException { public XmlContentParser(InputStream in) {
this(new InputStreamReader(in, StandardCharsets.UTF_8)); this(new InputStreamReader(in, StandardCharsets.UTF_8));
} }
@ -73,9 +75,13 @@ public class XmlContentParser<P extends RdfContentParams> implements RdfContentP
@Override @Override
public XmlContentParser<P> parse() throws IOException { public XmlContentParser<P> parse() throws IOException {
try { try {
XMLReader xmlReader = XMLReaderFactory.createXMLReader(); SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(false);
SAXParser parser = factory.newSAXParser();
XMLReader xmlReader = parser.getXMLReader();
parse(xmlReader, new InputSource(reader)); parse(xmlReader, new InputSource(reader));
} catch (SAXException ex) { } catch (SAXException | ParserConfigurationException ex) {
throw new IOException(ex); throw new IOException(ex);
} }
return this; return this;
@ -88,8 +94,6 @@ public class XmlContentParser<P extends RdfContentParams> implements RdfContentP
} }
reader.setContentHandler(handler); reader.setContentHandler(handler);
} }
reader.setFeature("http://xml.org/sax/features/namespaces", namespaces);
reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", validate);
reader.parse(source); reader.parse(source);
return this; return this;
} }

View file

@ -51,6 +51,7 @@ public class EuropeanaEDMReaderTest extends StreamTester {
Resource resource = resourceIterator.next(); Resource resource = resourceIterator.next();
builder.receive(resource); builder.receive(resource);
} }
//System.err.println(builder.string());
assertStream(getClass().getResource("edm.nt").openStream(), assertStream(getClass().getResource("edm.nt").openStream(),
builder.streamInput()); builder.streamInput());
} }

View file

@ -70,14 +70,14 @@ public class StaxEventContentHandler extends AbstractStaxContentHandler {
@Override @Override
protected void startElementInternal(QName name, Attributes atts, SimpleNamespaceContext namespaceContext) protected void startElementInternal(QName name, Attributes atts, SimpleNamespaceContext namespaceContext)
throws XMLStreamException { throws XMLStreamException {
List<?> attributes = getAttributes(atts); List<Attribute> attributes = getAttributes(atts);
List<?> namespaces = createNamespaces(namespaceContext); List<Namespace> namespaces = createNamespaces(namespaceContext);
consumeEvent(eventFactory.createStartElement(name, attributes.iterator(), namespaces.iterator())); consumeEvent(eventFactory.createStartElement(name, attributes.iterator(), namespaces.iterator()));
} }
@Override @Override
protected void endElementInternal(QName name, SimpleNamespaceContext namespaceContext) throws XMLStreamException { protected void endElementInternal(QName name, SimpleNamespaceContext namespaceContext) throws XMLStreamException {
List<?> namespaces = createNamespaces(namespaceContext); List<Namespace> namespaces = createNamespaces(namespaceContext);
consumeEvent(eventFactory.createEndElement(name, namespaces.iterator())); consumeEvent(eventFactory.createEndElement(name, namespaces.iterator()));
} }

View file

@ -3,7 +3,6 @@ package org.xbib.content.xml.transform;
import org.xml.sax.InputSource; import org.xml.sax.InputSource;
import org.xml.sax.SAXException; import org.xml.sax.SAXException;
import org.xml.sax.XMLReader; import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
import java.io.Closeable; import java.io.Closeable;
import java.io.IOException; import java.io.IOException;
@ -18,6 +17,9 @@ import java.util.List;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.transform.Source; import javax.xml.transform.Source;
import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerException;
import javax.xml.transform.URIResolver; import javax.xml.transform.URIResolver;
@ -107,12 +109,16 @@ public class TransformerURIResolver implements URIResolver, Closeable {
throw new TransformerException("href could not be resolved: " + href); throw new TransformerException("href could not be resolved: " + href);
} }
try { try {
XMLReader reader = XMLReaderFactory.createXMLReader(); SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(false);
SAXParser parser = factory.newSAXParser();
XMLReader reader = parser.getXMLReader();
inputStreams.add(in); inputStreams.add(in);
SAXSource source = new SAXSource(reader, new InputSource(in)); SAXSource source = new SAXSource(reader, new InputSource(in));
source.setSystemId(systemId); source.setSystemId(systemId);
return source; return source;
} catch (SAXException e) { } catch (SAXException | ParserConfigurationException e) {
throw new TransformerException("no XML reader for SAX source in URI resolving for:" + href, e); throw new TransformerException("no XML reader for SAX source in URI resolving for:" + href, e);
} }
} }

View file

@ -1,6 +1,10 @@
group = org.xbib group = org.xbib
name = content name = content
version = 1.2.4 version = 1.3.0
jackson.version = 2.8.11
xbib-net.version = 1.0.0 xbib-net.version = 1.0.0
jackson.version = 2.8.11
junit.version = 4.12
hamcrest.version = 1.3
mockito.version = 2.13.0
wagon.version = 3.0.0

View file

@ -1,12 +1,13 @@
task xbibUpload(type: Upload, dependsOn: build) { task xbibUpload(type: Upload, dependsOn: build) {
group = 'publish'
configuration = configurations.archives configuration = configurations.archives
uploadDescriptor = true uploadDescriptor = true
repositories { repositories {
if (project.hasProperty('xbibUsername')) { if (project.hasProperty('xbibUsername')) {
mavenDeployer { mavenDeployer {
configuration = configurations.wagon configuration = configurations.wagon
repository(url: uri('sftp://xbib.org/repository')) { repository(url: uri(project.property('xbibUrl'))) {
authentication(userName: xbibUsername, privateKey: xbibPrivateKey) authentication(userName: xbibUsername, privateKey: xbibPrivateKey)
} }
} }
@ -15,6 +16,7 @@ task xbibUpload(type: Upload, dependsOn: build) {
} }
task sonatypeUpload(type: Upload, dependsOn: build) { task sonatypeUpload(type: Upload, dependsOn: build) {
group = 'publish'
configuration = configurations.archives configuration = configurations.archives
uploadDescriptor = true uploadDescriptor = true
repositories { repositories {

Binary file not shown.

View file

@ -1,6 +1,6 @@
#Sat Jan 27 20:21:20 CET 2018 #Tue Feb 06 23:13:29 CET 2018
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4.1-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-4.5.1-all.zip