From 9aeb4e17e58164e1ff76cad654cbcb63efca23b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=CC=88rg=20Prante?= Date: Wed, 7 Feb 2018 11:12:36 +0100 Subject: [PATCH] prepare for Java 9, bump dependency versions --- gradle.properties | 16 ++++----- gradle/publish.gradle | 8 ++++- gradle/sonarqube.gradle | 4 +-- gradle/wrapper/gradle-wrapper.jar | Bin 54731 -> 54333 bytes gradle/wrapper/gradle-wrapper.properties | 4 +-- .../xbib/oai/client/BundeskunsthalleTest.java | 2 ++ .../org/xbib/oai/client/DOAJClientTest.java | 1 + .../oai/xml/XmlSimpleMetadataHandler.java | 31 ++++++++++-------- oai-server/build.gradle | 2 +- .../xbib/oai/server/verb/AbstractVerb.java | 3 +- .../oai/server/verb/ListMetadataFormats.java | 2 +- 11 files changed, 43 insertions(+), 30 deletions(-) diff --git a/gradle.properties b/gradle.properties index c5ac801..c6863a3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,14 +1,14 @@ group = org.xbib name = oai -version = 1.1.0 +version = 1.2.0 -xbib-content.version = 1.1.0 +xbib-content.version = 1.3.0 +xbib-marc.version = 1.1.0 xbib-bibliographic-character-sets.version = 1.0.0 -xbib-marc.version = 1.0.17 -helianthus.version = 1.0.10 -tcnative.version = 2.0.1.Final -alpnagent.version = 2.0.6 +helianthus.version = 1.0.13 +tcnative.version = 2.0.7.Final +alpnagent.version = 2.0.7 junit.version 4.12 -log4j.version = 2.8.2 -wagon.version = 2.12 +log4j.version = 2.10.0 +wagon.version = 3.0.0 asciidoclet.version = 1.5.4 \ No newline at end of file diff --git a/gradle/publish.gradle b/gradle/publish.gradle index caf0531..7bf8ad6 100644 --- a/gradle/publish.gradle +++ b/gradle/publish.gradle @@ -1,12 +1,13 @@ task xbibUpload(type: Upload, dependsOn: build) { + group = 'publish' configuration = configurations.archives uploadDescriptor = true repositories { if (project.hasProperty('xbibUsername')) { mavenDeployer { configuration = configurations.wagon - repository(url: uri('scpexe://xbib.org/repository')) { + repository(url: uri(project.property('xbibUrl'))) { authentication(userName: xbibUsername, privateKey: xbibPrivateKey) } } @@ -15,6 +16,7 @@ task xbibUpload(type: Upload, dependsOn: build) { } task sonatypeUpload(type: Upload, dependsOn: build) { + group = 'publish' configuration = configurations.archives uploadDescriptor = true repositories { @@ -64,3 +66,7 @@ task sonatypeUpload(type: Upload, dependsOn: build) { } } } + +nexusStaging { + packageGroup = "org.xbib" +} diff --git a/gradle/sonarqube.gradle b/gradle/sonarqube.gradle index 0a37566..3985a4f 100644 --- a/gradle/sonarqube.gradle +++ b/gradle/sonarqube.gradle @@ -1,8 +1,8 @@ tasks.withType(FindBugs) { ignoreFailures = true reports { - xml.enabled = true - html.enabled = false + xml.enabled = false + html.enabled = true } } tasks.withType(Pmd) { diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 6b6ea3ab4ff4f69d55c5fd9c0a6ac70f47d41008..c44b679acd3f794ddbb3aa5e919244914911014a 100644 GIT binary patch delta 15797 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 delta 16241 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 z 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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index bd637f3..cad203e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Dec 06 21:25:32 CET 2017 +#Wed Feb 07 09:29:06 CET 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.3.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.5.1-all.zip diff --git a/oai-client/src/test/java/org/xbib/oai/client/BundeskunsthalleTest.java b/oai-client/src/test/java/org/xbib/oai/client/BundeskunsthalleTest.java index f127cc9..88f97b4 100644 --- a/oai-client/src/test/java/org/xbib/oai/client/BundeskunsthalleTest.java +++ b/oai-client/src/test/java/org/xbib/oai/client/BundeskunsthalleTest.java @@ -2,6 +2,7 @@ package org.xbib.oai.client; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.junit.Ignore; import org.junit.Test; import org.xbib.helianthus.client.Clients; import org.xbib.helianthus.client.http.HttpClient; @@ -37,6 +38,7 @@ public class BundeskunsthalleTest { private static final Logger logger = LogManager.getLogger(BundeskunsthalleTest.class.getName()); @Test + @Ignore // takes too long time and creates files public void testListRecords() throws Exception { String spec = "http://www.bundeskunsthalle.de/cgi-bin/bib/oai-pmh"; try (OAIClient oaiClient = new OAIClient().setURL(new URL(spec), true)) { diff --git a/oai-client/src/test/java/org/xbib/oai/client/DOAJClientTest.java b/oai-client/src/test/java/org/xbib/oai/client/DOAJClientTest.java index 311b376..4d14a79 100644 --- a/oai-client/src/test/java/org/xbib/oai/client/DOAJClientTest.java +++ b/oai-client/src/test/java/org/xbib/oai/client/DOAJClientTest.java @@ -38,6 +38,7 @@ public class DOAJClientTest { private static final Logger logger = LogManager.getLogger(DOAJClientTest.class.getName()); @Test + @Ignore // takes too long time public void testListRecordsDOAJ() throws Exception { // will redirect to https://doaj.org/oai try (OAIClient oaiClient = new OAIClient().setURL(new URL("http://doaj.org/oai"), true)) { diff --git a/oai-common/src/main/java/org/xbib/oai/xml/XmlSimpleMetadataHandler.java b/oai-common/src/main/java/org/xbib/oai/xml/XmlSimpleMetadataHandler.java index dd21c58..9471135 100644 --- a/oai-common/src/main/java/org/xbib/oai/xml/XmlSimpleMetadataHandler.java +++ b/oai-common/src/main/java/org/xbib/oai/xml/XmlSimpleMetadataHandler.java @@ -9,7 +9,6 @@ import java.io.Writer; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.Deque; import java.util.HashMap; import java.util.Iterator; @@ -38,7 +37,7 @@ public class XmlSimpleMetadataHandler extends SimpleMetadataHandler implements O private List namespaces = new ArrayList<>(); - private Deque> nsStack = new ArrayDeque<>(); + private Deque> nsStack = new ArrayDeque<>(); private Locator locator; @@ -92,7 +91,7 @@ public class XmlSimpleMetadataHandler extends SimpleMetadataHandler implements O } @Override - public void startDocument() throws SAXException { + public void startDocument() { if (eventWriter == null) { return; } @@ -119,7 +118,7 @@ public class XmlSimpleMetadataHandler extends SimpleMetadataHandler implements O } @Override - public void startPrefixMapping(String prefix, String namespaceURI) throws SAXException { + public void startPrefixMapping(String prefix, String namespaceURI) { if (eventWriter == null) { return; } @@ -138,7 +137,7 @@ public class XmlSimpleMetadataHandler extends SimpleMetadataHandler implements O } @Override - public void endPrefixMapping(String string) throws SAXException { + public void endPrefixMapping(String string) { // not used } @@ -155,15 +154,16 @@ public class XmlSimpleMetadataHandler extends SimpleMetadataHandler implements O } needToCallStartDocument = false; } - Collection[] events = {null, null}; - createStartEvents(attributes, events); - nsStack.add(events[0]); + Collection attr = new ArrayList<>(); + Collection ns = new ArrayList<>(); + createStartEvents(attributes, attr, ns); + nsStack.add(ns); try { String[] q = {null, null}; parseQName(qname, q); eventFactory.setLocation(getCurrentLocation()); eventWriter.add(eventFactory.createStartElement(q[0], uri, - q[1], events[1].iterator(), events[0].iterator())); + q[1], attr.iterator(), ns.iterator())); } catch (XMLStreamException e) { throw new SAXException(e); } @@ -176,8 +176,7 @@ public class XmlSimpleMetadataHandler extends SimpleMetadataHandler implements O } String[] q = {null, null}; parseQName(qname, q); - Collection nsList = nsStack.getLast(); - Iterator nsIter = nsList.iterator(); + Iterator nsIter = nsStack.getLast().iterator(); try { eventFactory.setLocation(getCurrentLocation()); eventWriter.add(eventFactory.createEndElement(q[0], uri, q[1], nsIter)); @@ -199,7 +198,7 @@ public class XmlSimpleMetadataHandler extends SimpleMetadataHandler implements O } } - private void createStartEvents(Attributes attributes, Collection[] events) { + private void createStartEvents(Attributes attributes, Collection attrList, Collection nsList) { Map nsMap = null; List attrs = null; if (namespaces != null) { @@ -241,8 +240,12 @@ public class XmlSimpleMetadataHandler extends SimpleMetadataHandler implements O attrs.add(attribute); } } - events[0] = nsMap == null ? Collections.emptyList() : nsMap.values(); - events[1] = attrs == null ? Collections.emptyList() : attrs; + if (nsMap != null) { + nsList.addAll(nsMap.values()); + } + if (attrs != null) { + attrList.addAll(attrs); + } } private void parseQName(String qName, String[] results) { diff --git a/oai-server/build.gradle b/oai-server/build.gradle index 867ba01..48725cc 100644 --- a/oai-server/build.gradle +++ b/oai-server/build.gradle @@ -1,4 +1,4 @@ dependencies { compile project(':oai-common') - compile "org.xbib.helianthus:helianthus-server:1.0.3" + compile "org.xbib.helianthus:helianthus-server:${project.property('helianthus.version')}" } \ No newline at end of file diff --git a/oai-server/src/main/java/org/xbib/oai/server/verb/AbstractVerb.java b/oai-server/src/main/java/org/xbib/oai/server/verb/AbstractVerb.java index bb27c90..320e743 100644 --- a/oai-server/src/main/java/org/xbib/oai/server/verb/AbstractVerb.java +++ b/oai-server/src/main/java/org/xbib/oai/server/verb/AbstractVerb.java @@ -2,15 +2,16 @@ package org.xbib.oai.server.verb; import org.xbib.oai.OAIConstants; import org.xbib.oai.exceptions.OAIException; -import org.xbib.oai.server.OAIServer; import org.xbib.oai.server.AbstractOAIRequest; import org.xbib.oai.server.AbstractOAIResponse; +import org.xbib.oai.server.OAIServer; import java.net.URL; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; import java.util.TimeZone; + import javax.xml.namespace.QName; import javax.xml.stream.XMLEventFactory; import javax.xml.stream.XMLStreamException; diff --git a/oai-server/src/main/java/org/xbib/oai/server/verb/ListMetadataFormats.java b/oai-server/src/main/java/org/xbib/oai/server/verb/ListMetadataFormats.java index 72d3cad..20e03d7 100644 --- a/oai-server/src/main/java/org/xbib/oai/server/verb/ListMetadataFormats.java +++ b/oai-server/src/main/java/org/xbib/oai/server/verb/ListMetadataFormats.java @@ -1,9 +1,9 @@ package org.xbib.oai.server.verb; import org.xbib.oai.exceptions.OAIException; -import org.xbib.oai.server.OAIServer; import org.xbib.oai.server.AbstractOAIRequest; import org.xbib.oai.server.AbstractOAIResponse; +import org.xbib.oai.server.OAIServer; /** *