From 28b2a017686f36aef7946b287fcf6cbdcc8a9b56 Mon Sep 17 00:00:00 2001 From: Alan Kyffin Date: Mon, 5 Sep 2022 15:44:33 +0100 Subject: [PATCH 01/12] Use python3 --- src/main/scripts/setup | 2 +- src/test/scripts/prepare_test.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/scripts/setup b/src/main/scripts/setup index 1e6e5277..0b1e6703 100755 --- a/src/main/scripts/setup +++ b/src/main/scripts/setup @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 from setup_utils import * import os diff --git a/src/test/scripts/prepare_test.py b/src/test/scripts/prepare_test.py index 8488160a..c6964719 100755 --- a/src/test/scripts/prepare_test.py +++ b/src/test/scripts/prepare_test.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 from __future__ import print_function import sys import os From e6cc4a4382517751fa473d9d3e5a00da2dd4878a Mon Sep 17 00:00:00 2001 From: Alan Kyffin Date: Mon, 5 Sep 2022 16:08:40 +0100 Subject: [PATCH 02/12] Upgrade to Java 11 --- pom.xml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 003c0cd4..78d3fdac 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.icatproject ids.server war - 1.12.1-SNAPSHOT + 2.0.0-SNAPSHOT IDS Server @@ -119,6 +119,13 @@ 1.3.3 + + com.sun.xml.ws + jaxws-rt + 2.3.0 + test + + org.glassfish javax.json @@ -157,7 +164,7 @@ com.qmino miredot-plugin - 1.6.2 + 2.4.1-Java11 miredot @@ -253,10 +260,9 @@ org.apache.maven.plugins maven-compiler-plugin - 3.3 + 3.10.1 - 1.8 - 1.8 + 11 From 34d3727b853f4180c2219dd618b25ed2b5fc5ecf Mon Sep 17 00:00:00 2001 From: Alan Kyffin Date: Mon, 5 Sep 2022 16:57:56 +0100 Subject: [PATCH 03/12] Upgrade to jakartaee-api 9.1.0 --- pom.xml | 21 ++---- .../icatproject/ids/CORSResponseFilter.java | 10 +-- .../org/icatproject/ids/DataSelection.java | 6 +- .../java/org/icatproject/ids/FileChecker.java | 10 +-- .../icatproject/ids/FiniteStateMachine.java | 14 ++-- .../java/org/icatproject/ids/ICATGetter.java | 2 +- .../java/org/icatproject/ids/IcatReader.java | 4 +- .../java/org/icatproject/ids/IdsBean.java | 22 +++--- .../java/org/icatproject/ids/IdsService.java | 74 +++++++++---------- .../java/org/icatproject/ids/LockManager.java | 4 +- .../org/icatproject/ids/PropertyHandler.java | 4 +- src/main/java/org/icatproject/ids/Tidier.java | 10 +-- .../java/org/icatproject/ids/Transmitter.java | 20 ++--- .../ids/exceptions/IdsExceptionMapper.java | 10 +-- .../exceptions/NotFoundExceptionMapper.java | 12 +-- .../exceptions/RuntimeExceptionMapper.java | 10 +-- src/main/scripts/setup | 2 +- src/main/webapp/WEB-INF/web.xml | 4 +- .../icatproject/ids/DataSelectionDevTest.java | 4 +- .../icatproject/ids/integration/BaseTest.java | 4 +- .../util/client/TestingClient.java | 12 +-- 21 files changed, 125 insertions(+), 134 deletions(-) diff --git a/pom.xml b/pom.xml index 78d3fdac..9ec9fb96 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ org.icatproject icat.client - 4.10.0 + 6.0.0-SNAPSHOT @@ -102,9 +102,10 @@ - javax - javaee-api - 7.0 + jakarta.platform + jakarta.jakartaee-api + 9.1.0 + provided @@ -113,23 +114,17 @@ 1.2.0 - - commons-fileupload - commons-fileupload - 1.3.3 - - com.sun.xml.ws jaxws-rt - 2.3.0 + 3.0.2 test org.glassfish - javax.json - 1.0.4 + jakarta.json + 2.0.1 test diff --git a/src/main/java/org/icatproject/ids/CORSResponseFilter.java b/src/main/java/org/icatproject/ids/CORSResponseFilter.java index 6c8be18c..356fc034 100644 --- a/src/main/java/org/icatproject/ids/CORSResponseFilter.java +++ b/src/main/java/org/icatproject/ids/CORSResponseFilter.java @@ -2,11 +2,11 @@ import java.io.IOException; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerResponseContext; -import javax.ws.rs.container.ContainerResponseFilter; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.ext.Provider; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerResponseContext; +import jakarta.ws.rs.container.ContainerResponseFilter; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.ext.Provider; @Provider public class CORSResponseFilter implements ContainerResponseFilter { diff --git a/src/main/java/org/icatproject/ids/DataSelection.java b/src/main/java/org/icatproject/ids/DataSelection.java index 23ecd862..79351b70 100644 --- a/src/main/java/org/icatproject/ids/DataSelection.java +++ b/src/main/java/org/icatproject/ids/DataSelection.java @@ -9,9 +9,9 @@ import java.util.Map; import java.util.Set; -import javax.json.Json; -import javax.json.JsonArray; -import javax.json.JsonValue; +import jakarta.json.Json; +import jakarta.json.JsonArray; +import jakarta.json.JsonValue; import org.icatproject.Datafile; import org.icatproject.Dataset; diff --git a/src/main/java/org/icatproject/ids/FileChecker.java b/src/main/java/org/icatproject/ids/FileChecker.java index 825ec6be..50540072 100644 --- a/src/main/java/org/icatproject/ids/FileChecker.java +++ b/src/main/java/org/icatproject/ids/FileChecker.java @@ -18,11 +18,11 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; -import javax.annotation.PostConstruct; -import javax.annotation.PreDestroy; -import javax.ejb.EJB; -import javax.ejb.Singleton; -import javax.ejb.Startup; +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; +import jakarta.ejb.EJB; +import jakarta.ejb.Singleton; +import jakarta.ejb.Startup; import org.icatproject.Datafile; import org.icatproject.Dataset; diff --git a/src/main/java/org/icatproject/ids/FiniteStateMachine.java b/src/main/java/org/icatproject/ids/FiniteStateMachine.java index 344e5a1f..6fa452de 100644 --- a/src/main/java/org/icatproject/ids/FiniteStateMachine.java +++ b/src/main/java/org/icatproject/ids/FiniteStateMachine.java @@ -20,13 +20,13 @@ import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; -import javax.annotation.PostConstruct; -import javax.annotation.PreDestroy; -import javax.ejb.DependsOn; -import javax.ejb.EJB; -import javax.ejb.Singleton; -import javax.json.Json; -import javax.json.stream.JsonGenerator; +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; +import jakarta.ejb.DependsOn; +import jakarta.ejb.EJB; +import jakarta.ejb.Singleton; +import jakarta.json.Json; +import jakarta.json.stream.JsonGenerator; import org.icatproject.Dataset; import org.icatproject.ids.LockManager.Lock; diff --git a/src/main/java/org/icatproject/ids/ICATGetter.java b/src/main/java/org/icatproject/ids/ICATGetter.java index 0cdc1100..00e93815 100644 --- a/src/main/java/org/icatproject/ids/ICATGetter.java +++ b/src/main/java/org/icatproject/ids/ICATGetter.java @@ -3,7 +3,7 @@ import java.net.MalformedURLException; import java.net.URL; -import javax.xml.ws.WebServiceException; +import jakarta.xml.ws.WebServiceException; import org.icatproject.ICAT; import org.icatproject.ICATService; diff --git a/src/main/java/org/icatproject/ids/IcatReader.java b/src/main/java/org/icatproject/ids/IcatReader.java index cb1e36df..870decdf 100644 --- a/src/main/java/org/icatproject/ids/IcatReader.java +++ b/src/main/java/org/icatproject/ids/IcatReader.java @@ -2,8 +2,8 @@ import java.util.List; -import javax.annotation.PostConstruct; -import javax.ejb.Singleton; +import jakarta.annotation.PostConstruct; +import jakarta.ejb.Singleton; import org.icatproject.EntityBaseBean; import org.icatproject.ICAT; diff --git a/src/main/java/org/icatproject/ids/IdsBean.java b/src/main/java/org/icatproject/ids/IdsBean.java index 3dd5a06e..5e2161ad 100644 --- a/src/main/java/org/icatproject/ids/IdsBean.java +++ b/src/main/java/org/icatproject/ids/IdsBean.java @@ -40,17 +40,17 @@ import java.util.zip.ZipException; import java.util.zip.ZipOutputStream; -import javax.annotation.PostConstruct; -import javax.ejb.EJB; -import javax.ejb.Stateless; -import javax.json.Json; -import javax.json.JsonNumber; -import javax.json.JsonObject; -import javax.json.JsonReader; -import javax.json.JsonValue; -import javax.json.stream.JsonGenerator; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.StreamingOutput; +import jakarta.annotation.PostConstruct; +import jakarta.ejb.EJB; +import jakarta.ejb.Stateless; +import jakarta.json.Json; +import jakarta.json.JsonNumber; +import jakarta.json.JsonObject; +import jakarta.json.JsonReader; +import jakarta.json.JsonValue; +import jakarta.json.stream.JsonGenerator; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.StreamingOutput; import javax.xml.datatype.DatatypeFactory; import org.icatproject.Datafile; diff --git a/src/main/java/org/icatproject/ids/IdsService.java b/src/main/java/org/icatproject/ids/IdsService.java index 1db8137a..a7791a02 100644 --- a/src/main/java/org/icatproject/ids/IdsService.java +++ b/src/main/java/org/icatproject/ids/IdsService.java @@ -3,35 +3,33 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; +import java.nio.charset.StandardCharsets; import java.util.regex.Matcher; import java.util.regex.Pattern; -import javax.annotation.PostConstruct; -import javax.annotation.PreDestroy; -import javax.ejb.EJB; -import javax.ejb.Stateless; -import javax.json.Json; -import javax.json.stream.JsonGenerator; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.FormParam; -import javax.ws.rs.GET; -import javax.ws.rs.HeaderParam; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -import org.apache.commons.fileupload.FileItemIterator; -import org.apache.commons.fileupload.FileItemStream; -import org.apache.commons.fileupload.FileUploadException; -import org.apache.commons.fileupload.servlet.ServletFileUpload; -import org.apache.commons.fileupload.util.Streams; +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; +import jakarta.ejb.EJB; +import jakarta.ejb.Stateless; +import jakarta.json.Json; +import jakarta.json.stream.JsonGenerator; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.Part; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.DELETE; +import jakarta.ws.rs.FormParam; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.HeaderParam; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.PUT; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.QueryParam; +import jakarta.ws.rs.core.Context; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; + import org.icatproject.ids.exceptions.BadRequestException; import org.icatproject.ids.exceptions.DataNotOnlineException; import org.icatproject.ids.exceptions.InsufficientPrivilegesException; @@ -668,11 +666,7 @@ public Response put(@Context HttpServletRequest request, InputStream body, @Produces(MediaType.APPLICATION_JSON) public Response putAsPost(@Context HttpServletRequest request) throws BadRequestException, NotFoundException, InternalException, InsufficientPrivilegesException, NotImplementedException, DataNotOnlineException { - if (!ServletFileUpload.isMultipartContent(request)) { - throw new BadRequestException("Multipart content expected"); - } try { - ServletFileUpload upload = new ServletFileUpload(); String sessionId = null; String name = null; String datafileFormatId = null; @@ -686,13 +680,11 @@ public Response putAsPost(@Context HttpServletRequest request) throws BadRequest boolean padding = false; // Parse the request - FileItemIterator iter = upload.getItemIterator(request); - while (iter.hasNext()) { - FileItemStream item = iter.next(); - String fieldName = item.getFieldName(); - InputStream stream = item.openStream(); - if (item.isFormField()) { - String value = Streams.asString(stream); + for (Part part : request.getParts()) { + String fieldName = part.getName(); + InputStream stream = part.getInputStream(); + if (part.getSubmittedFileName() == null) { + String value = new String(stream.readAllBytes(), StandardCharsets.UTF_8); if (fieldName.equals("sessionId")) { sessionId = value; } else if (fieldName.equals("name")) { @@ -718,15 +710,17 @@ public Response putAsPost(@Context HttpServletRequest request) throws BadRequest } } else { if (name == null) { - name = item.getName(); + name = part.getSubmittedFileName(); } result = idsBean.put(stream, sessionId, name, datafileFormatId, datasetId, description, doi, datafileCreateTime, datafileModTime, wrap, padding, request.getRemoteAddr()); } } return result; - } catch (IOException | FileUploadException e) { + } catch (IOException e) { throw new InternalException(e.getClass() + " " + e.getMessage()); + } catch (ServletException e) { + throw new BadRequestException("Multipart content expected"); } } @@ -849,4 +843,4 @@ public void write(@Context HttpServletRequest request, @FormParam("sessionId") S NotFoundException, DataNotOnlineException { idsBean.write(sessionId, investigationIds, datasetIds, datafileIds, request.getRemoteAddr()); } -} \ No newline at end of file +} diff --git a/src/main/java/org/icatproject/ids/LockManager.java b/src/main/java/org/icatproject/ids/LockManager.java index 4f1a675c..f492d1ce 100644 --- a/src/main/java/org/icatproject/ids/LockManager.java +++ b/src/main/java/org/icatproject/ids/LockManager.java @@ -5,8 +5,8 @@ import java.util.Collection; import java.util.HashMap; import java.util.Map; -import javax.annotation.PostConstruct; -import javax.ejb.Singleton; +import jakarta.annotation.PostConstruct; +import jakarta.ejb.Singleton; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/org/icatproject/ids/PropertyHandler.java b/src/main/java/org/icatproject/ids/PropertyHandler.java index 13bf2fed..ac97798e 100644 --- a/src/main/java/org/icatproject/ids/PropertyHandler.java +++ b/src/main/java/org/icatproject/ids/PropertyHandler.java @@ -14,8 +14,8 @@ import java.util.Properties; import java.util.Set; -import javax.json.Json; -import javax.json.JsonReader; +import jakarta.json.Json; +import jakarta.json.JsonReader; import org.icatproject.ICAT; import org.icatproject.IcatException_Exception; diff --git a/src/main/java/org/icatproject/ids/Tidier.java b/src/main/java/org/icatproject/ids/Tidier.java index 12170ddf..8d0a8f82 100644 --- a/src/main/java/org/icatproject/ids/Tidier.java +++ b/src/main/java/org/icatproject/ids/Tidier.java @@ -12,11 +12,11 @@ import java.util.Timer; import java.util.TimerTask; -import javax.annotation.PostConstruct; -import javax.annotation.PreDestroy; -import javax.ejb.EJB; -import javax.ejb.Singleton; -import javax.ejb.Startup; +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; +import jakarta.ejb.EJB; +import jakarta.ejb.Singleton; +import jakarta.ejb.Startup; import org.icatproject.Datafile; import org.icatproject.Dataset; diff --git a/src/main/java/org/icatproject/ids/Transmitter.java b/src/main/java/org/icatproject/ids/Transmitter.java index 8668600a..54e843e6 100644 --- a/src/main/java/org/icatproject/ids/Transmitter.java +++ b/src/main/java/org/icatproject/ids/Transmitter.java @@ -1,15 +1,15 @@ package org.icatproject.ids; -import javax.annotation.PostConstruct; -import javax.annotation.PreDestroy; -import javax.ejb.Singleton; -import javax.jms.JMSException; -import javax.jms.MessageProducer; -import javax.jms.Session; -import javax.jms.TextMessage; -import javax.jms.Topic; -import javax.jms.TopicConnection; -import javax.jms.TopicConnectionFactory; +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; +import jakarta.ejb.Singleton; +import jakarta.jms.JMSException; +import jakarta.jms.MessageProducer; +import jakarta.jms.Session; +import jakarta.jms.TextMessage; +import jakarta.jms.Topic; +import jakarta.jms.TopicConnection; +import jakarta.jms.TopicConnectionFactory; import javax.naming.InitialContext; import javax.naming.NamingException; diff --git a/src/main/java/org/icatproject/ids/exceptions/IdsExceptionMapper.java b/src/main/java/org/icatproject/ids/exceptions/IdsExceptionMapper.java index b1bd9ac9..feb3ebc7 100644 --- a/src/main/java/org/icatproject/ids/exceptions/IdsExceptionMapper.java +++ b/src/main/java/org/icatproject/ids/exceptions/IdsExceptionMapper.java @@ -2,11 +2,11 @@ import java.io.ByteArrayOutputStream; -import javax.json.Json; -import javax.json.stream.JsonGenerator; -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; +import jakarta.json.Json; +import jakarta.json.stream.JsonGenerator; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.ext.ExceptionMapper; +import jakarta.ws.rs.ext.Provider; /** * Capture any {@link org.icatproject.ids.exceptions.IdsException WebServiceException} thrown from diff --git a/src/main/java/org/icatproject/ids/exceptions/NotFoundExceptionMapper.java b/src/main/java/org/icatproject/ids/exceptions/NotFoundExceptionMapper.java index ca2457a7..f841e628 100644 --- a/src/main/java/org/icatproject/ids/exceptions/NotFoundExceptionMapper.java +++ b/src/main/java/org/icatproject/ids/exceptions/NotFoundExceptionMapper.java @@ -2,12 +2,12 @@ import java.io.ByteArrayOutputStream; -import javax.json.Json; -import javax.json.stream.JsonGenerator; -import javax.ws.rs.NotFoundException; -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; +import jakarta.json.Json; +import jakarta.json.stream.JsonGenerator; +import jakarta.ws.rs.NotFoundException; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.ext.ExceptionMapper; +import jakarta.ws.rs.ext.Provider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/org/icatproject/ids/exceptions/RuntimeExceptionMapper.java b/src/main/java/org/icatproject/ids/exceptions/RuntimeExceptionMapper.java index fd806e4a..3d769c54 100644 --- a/src/main/java/org/icatproject/ids/exceptions/RuntimeExceptionMapper.java +++ b/src/main/java/org/icatproject/ids/exceptions/RuntimeExceptionMapper.java @@ -4,11 +4,11 @@ import java.io.PrintStream; import java.net.HttpURLConnection; -import javax.json.Json; -import javax.json.stream.JsonGenerator; -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; +import jakarta.json.Json; +import jakarta.json.stream.JsonGenerator; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.ext.ExceptionMapper; +import jakarta.ws.rs.ext.Provider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/scripts/setup b/src/main/scripts/setup index 0b1e6703..fe0e5928 100755 --- a/src/main/scripts/setup +++ b/src/main/scripts/setup @@ -55,7 +55,7 @@ if arg == "INSTALL": try: uninstall() - actions.createJMSResource("javax.jms.Topic", "jms/IDS/log") + actions.createJMSResource("jakarta.jms.Topic", "jms/IDS/log") ovfiles = [[prop_name, "WEB-INF/classes"]] if os.path.exists("logback.xml"): ovfiles.append(["logback.xml", "WEB-INF/classes"]) diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index 7956ebd8..0a5ef4cb 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -10,7 +10,9 @@ org.icatproject.ids - 1 + 1 + + diff --git a/src/test/java/org/icatproject/ids/DataSelectionDevTest.java b/src/test/java/org/icatproject/ids/DataSelectionDevTest.java index 53112515..33fb9698 100644 --- a/src/test/java/org/icatproject/ids/DataSelectionDevTest.java +++ b/src/test/java/org/icatproject/ids/DataSelectionDevTest.java @@ -10,8 +10,8 @@ import java.util.List; import java.util.Properties; -import javax.json.Json; -import javax.json.JsonReader; +import jakarta.json.Json; +import jakarta.json.JsonReader; import org.icatproject.ICAT; import org.icatproject.IcatException_Exception; diff --git a/src/test/java/org/icatproject/ids/integration/BaseTest.java b/src/test/java/org/icatproject/ids/integration/BaseTest.java index 4c098235..b63b7a50 100644 --- a/src/test/java/org/icatproject/ids/integration/BaseTest.java +++ b/src/test/java/org/icatproject/ids/integration/BaseTest.java @@ -32,8 +32,8 @@ import java.util.zip.ZipInputStream; import java.util.zip.ZipOutputStream; -import javax.json.Json; -import javax.json.JsonReader; +import jakarta.json.Json; +import jakarta.json.JsonReader; import org.icatproject.Datafile; import org.icatproject.DatafileFormat; diff --git a/src/test/java/org/icatproject/ids/integration/util/client/TestingClient.java b/src/test/java/org/icatproject/ids/integration/util/client/TestingClient.java index 73881a8d..1791b9a9 100644 --- a/src/test/java/org/icatproject/ids/integration/util/client/TestingClient.java +++ b/src/test/java/org/icatproject/ids/integration/util/client/TestingClient.java @@ -22,12 +22,12 @@ import java.util.zip.CRC32; import java.util.zip.CheckedInputStream; -import javax.json.Json; -import javax.json.JsonException; -import javax.json.JsonNumber; -import javax.json.JsonObject; -import javax.json.JsonReader; -import javax.json.JsonValue; +import jakarta.json.Json; +import jakarta.json.JsonException; +import jakarta.json.JsonNumber; +import jakarta.json.JsonObject; +import jakarta.json.JsonReader; +import jakarta.json.JsonValue; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; From 39bfbd5fff8525c14fc3ab11e966e9f1fd47e415 Mon Sep 17 00:00:00 2001 From: Alan Kyffin Date: Thu, 10 Nov 2022 15:13:01 +0000 Subject: [PATCH 04/12] Upgrade to jakartaee-api 10.0.0 --- pom.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 9ec9fb96..2008cc5d 100644 --- a/pom.xml +++ b/pom.xml @@ -104,7 +104,7 @@ jakarta.platform jakarta.jakartaee-api - 9.1.0 + 10.0.0 provided @@ -117,14 +117,14 @@ com.sun.xml.ws jaxws-rt - 3.0.2 + 4.0.0 test - org.glassfish - jakarta.json - 2.0.1 + org.eclipse.parsson + parsson + 1.1.0 test From 5f40f66f47e75be55152d5194f7933df938ea4fe Mon Sep 17 00:00:00 2001 From: Alan Kyffin Date: Thu, 3 Aug 2023 17:46:48 +0100 Subject: [PATCH 05/12] Update schema in web.xml --- src/main/webapp/WEB-INF/web.xml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index 0a5ef4cb..47412fc9 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -1,6 +1,9 @@ - + ServletAdaptor From 50ab0ee01a4ce86b7e5480292246bbbe2a1764bc Mon Sep 17 00:00:00 2001 From: Alan Kyffin Date: Fri, 4 Aug 2023 13:29:40 +0100 Subject: [PATCH 06/12] Update icat.client dependency to release version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 15ddac48..5f3b3827 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ org.icatproject icat.client - 6.0.0-SNAPSHOT + 6.0.0 From 1f5bd4cbe5fd34d80338c651935347fca49c986b Mon Sep 17 00:00:00 2001 From: Alan Kyffin Date: Mon, 7 Aug 2023 10:32:37 +0100 Subject: [PATCH 07/12] Fix indentation error --- src/main/webapp/WEB-INF/web.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index 47412fc9..37abe517 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -13,7 +13,7 @@ org.icatproject.ids - 1 + 1 From 5445d9320f245ccc237b3996d02a6c271062abe9 Mon Sep 17 00:00:00 2001 From: Alan Kyffin Date: Mon, 7 Aug 2023 13:32:53 +0100 Subject: [PATCH 08/12] Use payara6 branch of icat-ansible in CI --- .github/workflows/ci-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index 81c6e341..01cd2d51 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -42,7 +42,7 @@ jobs: with: repository: icatproject-contrib/icat-ansible path: icat-ansible - ref: master + ref: payara6 - name: Install Ansible run: pip install -r icat-ansible/requirements.txt From ab9fdbb8d089a50478d1675cded60cb708d525a8 Mon Sep 17 00:00:00 2001 From: Alan Kyffin Date: Mon, 7 Aug 2023 13:46:44 +0100 Subject: [PATCH 09/12] Install lxml via apt on GitHub Actions --- .github/workflows/ci-build.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index 01cd2d51..7c8b66af 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -72,6 +72,10 @@ jobs: sudo apt-get remove --purge "mysql*" sudo rm -rf /var/lib/mysql* /etc/mysql + # Needed for `maven_artifact` module on Ansible - lxml is in requirements.txt but doesn't seem to work on GitHub Actions + - name: Install lxml + run: sudo apt-get install python3-lxml + # Create local instance of ICAT - name: Run ICAT Ansible Playbook run: | From ddb620f589baee0da66e86d7a4c477ecdc9d73fa Mon Sep 17 00:00:00 2001 From: Alan Kyffin Date: Tue, 8 Aug 2023 17:18:39 +0100 Subject: [PATCH 10/12] Update maven-war-plugin for compatibility with Java 17 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5f3b3827..a342f305 100644 --- a/pom.xml +++ b/pom.xml @@ -309,7 +309,7 @@ org.apache.maven.plugins maven-war-plugin - 3.0.0 + 3.4.0 From 5430c3a8471e9022681fa84400270664f76fd21e Mon Sep 17 00:00:00 2001 From: Alan Kyffin Date: Tue, 8 Aug 2023 17:22:42 +0100 Subject: [PATCH 11/12] Changes to GitHub Actions - update OS to Ubuntu 22.04 - use OS python version - add Java 17 to version matrix - run apt-get update - remove installation of python3-lxml which is now done by icat-ansible --- .github/workflows/ci-build.yml | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index 7c8b66af..e7dcb271 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -8,12 +8,10 @@ on: jobs: build_and_tests: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 strategy: - fail-fast: false matrix: - include: - - version: 11 + java_version: [11, 17] steps: # Setup Java & Python @@ -21,12 +19,7 @@ jobs: uses: actions/setup-java@3f07048e3d294f56e9b90ac5ea2c6f74e9ad0f98 # v3.10.0 with: distribution: 'temurin' - java-version: ${{ matrix.version }} - - name: Setup Python - uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 # v4.5.0 - with: - python-version: "3.9.7" - architecture: x64 + java-version: ${{ matrix.java_version }} - name: Cache local Maven repository uses: actions/cache@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0 # v3.2.6 @@ -36,6 +29,9 @@ jobs: restore-keys: | ${{ runner.os }}-maven- + - name: Run apt-get update + run: sudo apt-get update + # ICAT Ansible clone and install dependencies - name: Checkout icat-ansible uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 @@ -72,10 +68,6 @@ jobs: sudo apt-get remove --purge "mysql*" sudo rm -rf /var/lib/mysql* /etc/mysql - # Needed for `maven_artifact` module on Ansible - lxml is in requirements.txt but doesn't seem to work on GitHub Actions - - name: Install lxml - run: sudo apt-get install python3-lxml - # Create local instance of ICAT - name: Run ICAT Ansible Playbook run: | From 9d192f646ec1797d43afd1818718c50ae0f4a242 Mon Sep 17 00:00:00 2001 From: Rolf Krahl Date: Fri, 11 Aug 2023 12:34:39 +0200 Subject: [PATCH 12/12] Update release notes --- src/site/xhtml/release-notes.xhtml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/site/xhtml/release-notes.xhtml b/src/site/xhtml/release-notes.xhtml index 6a0f0a3a..a61bc54d 100644 --- a/src/site/xhtml/release-notes.xhtml +++ b/src/site/xhtml/release-notes.xhtml @@ -6,6 +6,12 @@

IDS Server Release Notes

+

2.0.0

+

Make the transition to Payara 6

+
    +
  • #138: Upgrade to Java 11 and JakartaEE 10 API for compatibility with Payara 6
  • +
+

1.12.1

  • #122: Bump dependency on logback-classic to version 1.2.0.