This is an automated email from the ASF dual-hosted git repository.
enorman pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-jackrabbit-accessmanager.git
The following commit(s) were added to refs/heads/master by this push:
new fa105ed SLING-12081 Migrate to jakarta.json (#22)
fa105ed is described below
commit fa105ed11388e7efbdcd7f69a868ba53f0a62dbd
Author: Eric Norman <[email protected]>
AuthorDate: Sat Oct 14 15:59:46 2023 -0700
SLING-12081 Migrate to jakarta.json (#22)
---
pom.xml | 14 ++-
.../sling/jcr/jackrabbit/accessmanager/GetAce.java | 2 +-
.../sling/jcr/jackrabbit/accessmanager/GetAcl.java | 2 +-
.../jackrabbit/accessmanager/GetEffectiveAce.java | 2 +-
.../jackrabbit/accessmanager/GetEffectiveAcl.java | 2 +-
.../jackrabbit/accessmanager/GetPrincipalAce.java | 2 +-
.../jackrabbit/accessmanager/PrivilegesInfo.java | 10 +-
.../jackrabbit/accessmanager/impl/JsonConvert.java | 6 +-
.../jcr/jackrabbit/accessmanager/package-info.java | 2 +-
.../post/AbstractAccessGetServlet.java | 6 +-
.../accessmanager/post/AbstractGetAceServlet.java | 4 +-
.../accessmanager/post/AbstractGetAclServlet.java | 8 +-
.../accessmanager/post/GetAceServlet.java | 2 +-
.../accessmanager/post/GetAclServlet.java | 2 +-
.../accessmanager/post/GetEffectiveAceServlet.java | 4 +-
.../accessmanager/post/GetEffectiveAclServlet.java | 4 +-
.../accessmanager/post/GetPrincipalAceServlet.java | 2 +-
.../accessmanager/post/package-info.java | 2 +-
.../accessmanager/impl/JsonConvertTest.java | 20 ++--
.../it/AccessManagerClientTestSupport.java | 122 +++++++++++++++++++--
.../accessmanager/it/AccessManagerTestSupport.java | 31 ++++++
.../accessmanager/it/AccessPrivilegesInfoIT.java | 6 +-
.../jcr/jackrabbit/accessmanager/it/GetAceIT.java | 8 +-
.../accessmanager/it/GetAceServiceIT.java | 2 +-
.../jcr/jackrabbit/accessmanager/it/GetAclIT.java | 4 +-
.../jcr/jackrabbit/accessmanager/it/GetEaceIT.java | 10 +-
.../accessmanager/it/GetEaceServiceIT.java | 2 +-
.../jcr/jackrabbit/accessmanager/it/GetPaceIT.java | 10 +-
.../jackrabbit/accessmanager/it/ModifyAceIT.java | 12 +-
.../accessmanager/it/ModifyAceServiceIT.java | 6 +-
.../accessmanager/it/ModifyPrincipalAceIT.java | 4 +-
.../it/PrincipalAceServiceTestSupport.java | 2 +-
.../accessmanager/it/PrincipalAceTestSupport.java | 4 +-
.../jackrabbit/accessmanager/it/RemoveAcesIT.java | 6 +-
.../accessmanager/it/RemovePrincipalAcesIT.java | 6 +-
35 files changed, 235 insertions(+), 96 deletions(-)
diff --git a/pom.xml b/pom.xml
index 1dbaeec..2f367e9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@
</parent>
<artifactId>org.apache.sling.jcr.jackrabbit.accessmanager</artifactId>
- <version>3.1.1-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
<name>Apache Sling JCR Jackrabbit Access Manager</name>
<description>
Provides POST operations for JCR Jackrabbit Access Management
@@ -152,11 +152,17 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-json_1.0_spec</artifactId>
- <version>1.0-alpha-1</version>
+ <groupId>jakarta.json</groupId>
+ <artifactId>jakarta.json-api</artifactId>
+ <version>2.1.1</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.eclipse.parsson</groupId>
+ <artifactId>parsson</artifactId>
+ <version>1.1.1</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.osgi</groupId>
diff --git
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetAce.java
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetAce.java
index cef013b..bde194f 100644
--- a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetAce.java
+++ b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetAce.java
@@ -20,7 +20,7 @@ package org.apache.sling.jcr.jackrabbit.accessmanager;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
/**
* The <code>GetAce</code> service api.
diff --git
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetAcl.java
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetAcl.java
index 145b238..d59cc49 100644
--- a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetAcl.java
+++ b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetAcl.java
@@ -20,7 +20,7 @@ package org.apache.sling.jcr.jackrabbit.accessmanager;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
/**
* The <code>GetAcl</code> service api.
diff --git
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetEffectiveAce.java
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetEffectiveAce.java
index 8cf0103..a559430 100644
---
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetEffectiveAce.java
+++
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetEffectiveAce.java
@@ -20,7 +20,7 @@ package org.apache.sling.jcr.jackrabbit.accessmanager;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
/**
* The <code>GetEffectiveAce</code> service api.
diff --git
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetEffectiveAcl.java
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetEffectiveAcl.java
index e118c8a..61ac882 100644
---
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetEffectiveAcl.java
+++
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetEffectiveAcl.java
@@ -20,7 +20,7 @@ package org.apache.sling.jcr.jackrabbit.accessmanager;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
/**
* The <code>GetAcl</code> service api.
diff --git
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetPrincipalAce.java
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetPrincipalAce.java
index c386cde..173806e 100644
---
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetPrincipalAce.java
+++
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetPrincipalAce.java
@@ -20,7 +20,7 @@ package org.apache.sling.jcr.jackrabbit.accessmanager;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
/**
* The <code>GetPrincipalAce</code> service api.
diff --git
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/PrivilegesInfo.java
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/PrivilegesInfo.java
index ddd2638..daf5131 100644
---
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/PrivilegesInfo.java
+++
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/PrivilegesInfo.java
@@ -36,11 +36,11 @@ import javax.jcr.ValueFactory;
import javax.jcr.ValueFormatException;
import javax.jcr.security.AccessControlManager;
import javax.jcr.security.Privilege;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonString;
-import javax.json.JsonValue;
-import javax.json.JsonValue.ValueType;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonString;
+import jakarta.json.JsonValue;
+import jakarta.json.JsonValue.ValueType;
import org.apache.jackrabbit.api.security.principal.PrincipalManager;
import
org.apache.jackrabbit.oak.spi.security.authorization.restriction.RestrictionDefinition;
diff --git
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/impl/JsonConvert.java
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/impl/JsonConvert.java
index cc4e029..4f82011 100644
---
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/impl/JsonConvert.java
+++
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/impl/JsonConvert.java
@@ -28,9 +28,9 @@ import javax.jcr.PropertyType;
import javax.jcr.RepositoryException;
import javax.jcr.Value;
import javax.jcr.security.Privilege;
-import javax.json.Json;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.Json;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObjectBuilder;
import org.apache.sling.jcr.jackrabbit.accessmanager.LocalPrivilege;
import org.apache.sling.jcr.jackrabbit.accessmanager.LocalRestriction;
diff --git
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/package-info.java
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/package-info.java
index 51fa249..eec419c 100644
---
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/package-info.java
+++
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/package-info.java
@@ -17,7 +17,7 @@
* under the License.
*/
[email protected]("3.3.0")
[email protected]("4.0.0")
package org.apache.sling.jcr.jackrabbit.accessmanager;
diff --git
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessGetServlet.java
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessGetServlet.java
index e7aee4e..5f1ad19 100644
---
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessGetServlet.java
+++
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessGetServlet.java
@@ -39,9 +39,9 @@ import javax.jcr.security.AccessControlEntry;
import javax.jcr.security.AccessControlList;
import javax.jcr.security.AccessControlPolicy;
import javax.jcr.security.Privilege;
-import javax.json.Json;
-import javax.json.JsonObject;
-import javax.json.stream.JsonGenerator;
+import jakarta.json.Json;
+import jakarta.json.JsonObject;
+import jakarta.json.stream.JsonGenerator;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletResponse;
diff --git
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAceServlet.java
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAceServlet.java
index 0816cd8..e327d5e 100644
---
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAceServlet.java
+++
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAceServlet.java
@@ -27,8 +27,8 @@ import javax.jcr.Session;
import javax.jcr.security.AccessControlEntry;
import javax.jcr.security.AccessControlManager;
import javax.jcr.security.Privilege;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import org.apache.jackrabbit.api.security.JackrabbitAccessControlEntry;
import
org.apache.jackrabbit.oak.spi.security.authorization.restriction.RestrictionDefinition;
diff --git
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java
index be4902e..d547e7b 100644
---
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java
+++
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java
@@ -30,10 +30,10 @@ import javax.jcr.Session;
import javax.jcr.security.AccessControlEntry;
import javax.jcr.security.AccessControlManager;
import javax.jcr.security.Privilege;
-import javax.json.Json;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.Json;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import org.apache.jackrabbit.api.security.JackrabbitAccessControlEntry;
import
org.apache.jackrabbit.oak.spi.security.authorization.restriction.RestrictionDefinition;
diff --git
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAceServlet.java
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAceServlet.java
index af8ba7a..f729561 100644
---
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAceServlet.java
+++
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAceServlet.java
@@ -28,7 +28,7 @@ import javax.jcr.Session;
import javax.jcr.security.AccessControlEntry;
import javax.jcr.security.AccessControlManager;
import javax.jcr.security.AccessControlPolicy;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import javax.servlet.Servlet;
import
org.apache.jackrabbit.oak.spi.security.authorization.restriction.RestrictionProvider;
diff --git
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
index 8a84876..abea572 100644
---
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
+++
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
@@ -26,7 +26,7 @@ import javax.jcr.Session;
import javax.jcr.security.AccessControlEntry;
import javax.jcr.security.AccessControlManager;
import javax.jcr.security.AccessControlPolicy;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import javax.servlet.Servlet;
import
org.apache.jackrabbit.oak.spi.security.authorization.restriction.RestrictionProvider;
diff --git
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAceServlet.java
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAceServlet.java
index de04f85..de46755 100644
---
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAceServlet.java
+++
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAceServlet.java
@@ -28,8 +28,8 @@ import javax.jcr.Session;
import javax.jcr.security.AccessControlEntry;
import javax.jcr.security.AccessControlManager;
import javax.jcr.security.AccessControlPolicy;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import javax.servlet.Servlet;
import
org.apache.jackrabbit.oak.spi.security.authorization.restriction.RestrictionProvider;
diff --git
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java
index ed7677f..f218ac6 100644
---
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java
+++
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java
@@ -26,8 +26,8 @@ import javax.jcr.Session;
import javax.jcr.security.AccessControlEntry;
import javax.jcr.security.AccessControlManager;
import javax.jcr.security.AccessControlPolicy;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import javax.servlet.Servlet;
import
org.apache.jackrabbit.oak.spi.security.authorization.restriction.RestrictionProvider;
diff --git
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetPrincipalAceServlet.java
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetPrincipalAceServlet.java
index 44610c4..35ea1d9 100644
---
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetPrincipalAceServlet.java
+++
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetPrincipalAceServlet.java
@@ -28,7 +28,7 @@ import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.security.AccessControlEntry;
import javax.jcr.security.AccessControlManager;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import javax.servlet.Servlet;
import org.apache.jackrabbit.api.security.JackrabbitAccessControlEntry;
diff --git
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/package-info.java
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/package-info.java
index 99e3c5d..53e5ed7 100644
---
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/package-info.java
+++
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/package-info.java
@@ -17,7 +17,7 @@
* under the License.
*/
[email protected]("3.5.0")
[email protected]("4.0.0")
package org.apache.sling.jcr.jackrabbit.accessmanager.post;
diff --git
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/impl/JsonConvertTest.java
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/impl/JsonConvertTest.java
index 126b796..9afab17 100644
---
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/impl/JsonConvertTest.java
+++
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/impl/JsonConvertTest.java
@@ -36,13 +36,13 @@ import javax.jcr.Value;
import javax.jcr.ValueFactory;
import javax.jcr.security.AccessControlManager;
import javax.jcr.security.Privilege;
-import javax.json.Json;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonString;
-import javax.json.JsonValue;
+import jakarta.json.Json;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonString;
+import jakarta.json.JsonValue;
import
org.apache.jackrabbit.oak.security.authorization.restriction.RestrictionProviderImpl;
import
org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AccessControlConstants;
@@ -172,7 +172,7 @@ public class JsonConvertTest {
}
/**
- * Test method for {@link
org.apache.sling.jcr.jackrabbit.accessmanager.impl.JsonConvert#addRestrictions(javax.json.JsonObjectBuilder,
java.lang.String, java.util.Set)}.
+ * Test method for {@link
org.apache.sling.jcr.jackrabbit.accessmanager.impl.JsonConvert#addRestrictions(jakarta.json.JsonObjectBuilder,
java.lang.String, java.util.Set)}.
*/
@Test
public void testAddRestrictions() {
@@ -196,7 +196,7 @@ public class JsonConvertTest {
}
/**
- * Test method for {@link
org.apache.sling.jcr.jackrabbit.accessmanager.impl.JsonConvert#addTo(javax.json.JsonObjectBuilder,
java.lang.String, java.lang.Object)}.
+ * Test method for {@link
org.apache.sling.jcr.jackrabbit.accessmanager.impl.JsonConvert#addTo(jakarta.json.JsonObjectBuilder,
java.lang.String, java.lang.Object)}.
*/
@Test
public void testAddToJsonObjectBuilderStringObject() throws
RepositoryException {
@@ -254,7 +254,7 @@ public class JsonConvertTest {
}
/**
- * Test method for {@link
org.apache.sling.jcr.jackrabbit.accessmanager.impl.JsonConvert#addTo(javax.json.JsonArrayBuilder,
java.lang.Object)}.
+ * Test method for {@link
org.apache.sling.jcr.jackrabbit.accessmanager.impl.JsonConvert#addTo(jakarta.json.JsonArrayBuilder,
java.lang.Object)}.
*/
@Test
public void testAddToJsonArrayBuilderObject() {
diff --git
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/AccessManagerClientTestSupport.java
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/AccessManagerClientTestSupport.java
index bae171d..2aab271 100644
---
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/AccessManagerClientTestSupport.java
+++
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/AccessManagerClientTestSupport.java
@@ -41,18 +41,17 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Dictionary;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
-import javax.json.Json;
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
-import javax.json.JsonValue;
import javax.servlet.http.HttpServletResponse;
import org.apache.http.Header;
import org.apache.http.HttpHost;
+import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.Credentials;
@@ -75,12 +74,22 @@ import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicHeader;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
+import org.apache.sling.api.resource.LoginException;
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.api.resource.ResourceResolverFactory;
+import org.awaitility.Awaitility;
import org.junit.After;
import org.junit.Before;
import org.ops4j.pax.exam.Option;
import org.osgi.service.cm.Configuration;
import org.osgi.service.cm.ConfigurationAdmin;
+import jakarta.json.Json;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
+import jakarta.json.JsonValue;
+
/**
* base class for tests doing http requests to verify calls to the
accessmanager
* servlets
@@ -104,6 +113,9 @@ public abstract class AccessManagerClientTestSupport
extends AccessManagerTestSu
@Inject
protected ConfigurationAdmin cm;
+ @Inject
+ protected ResourceResolverFactory resourceResolverFactory;
+
protected static final String COOKIE_SLING_FORMAUTH = "sling.formauth";
protected static final String COOKIE_SLING_FORMAUTH_DOMAIN =
"sling.formauth.cookie.domain";
protected static final String HEADER_SET_COOKIE = "Set-Cookie";
@@ -182,6 +194,21 @@ public abstract class AccessManagerClientTestSupport
extends AccessManagerTestSu
httpClient = HttpClients.custom()
.disableRedirectHandling()
.build();
+
+ // SLING-12081 - wait for the "users" resource to be available to try
to avoid flaky
+ // failures while creating test users
+ Awaitility.await("users resource available")
+ .atMost(10000, TimeUnit.MILLISECONDS)
+ .pollInterval(1000, TimeUnit.MILLISECONDS)
+ .ignoreException(LoginException.class)
+ .until(() -> {
+ Map<String, Object> authInfo = new HashMap<>();
+ authInfo.put(ResourceResolverFactory.USER, "admin");
+ authInfo.put(ResourceResolverFactory.PASSWORD,
"admin".toCharArray());
+ try (ResourceResolver resourceResolver =
resourceResolverFactory.getResourceResolver(authInfo)) {
+ return
resourceResolver.getResource("/system/userManager/user") != null;
+ }
+ });
}
@After
@@ -329,7 +356,7 @@ public abstract class AccessManagerClientTestSupport
extends AccessManagerTestSu
HttpPost postRequest = new HttpPost(url);
postRequest.setEntity(new UrlEncodedFormEntity(postParams));
try (CloseableHttpResponse response =
httpClient.execute(postRequest, httpContext)) {
- assertEquals(assertMessage, expectedStatusCode,
response.getStatusLine().getStatusCode());
+ verifyHttpStatus(response, assertMessage, expectedStatusCode);
}
return null;
});
@@ -339,7 +366,7 @@ public abstract class AccessManagerClientTestSupport
extends AccessManagerTestSu
doAuthenticatedWork(creds, () -> {
HttpGet getRequest = new HttpGet(urlString);
try (CloseableHttpResponse response =
httpClient.execute(getRequest, httpContext)) {
- assertEquals(assertMessage, expectedStatusCode,
response.getStatusLine().getStatusCode());
+ verifyHttpStatus(response, assertMessage, expectedStatusCode);
return null;
}
});
@@ -349,7 +376,7 @@ public abstract class AccessManagerClientTestSupport
extends AccessManagerTestSu
return (String)doAuthenticatedWork(creds, () -> {
HttpGet getRequest = new HttpGet(url);
try (CloseableHttpResponse response =
httpClient.execute(getRequest, httpContext)) {
- assertEquals(expectedStatusCode,
response.getStatusLine().getStatusCode());
+ verifyHttpStatus(response, null, expectedStatusCode);
final Header h = response.getFirstHeader("Content-Type");
if (expectedContentType == null) {
if (h != null) {
@@ -377,7 +404,7 @@ public abstract class AccessManagerClientTestSupport
extends AccessManagerTestSu
HttpPost postRequest = new HttpPost(url);
postRequest.setEntity(new UrlEncodedFormEntity(postParams));
try (CloseableHttpResponse response =
httpClient.execute(postRequest, httpContext)) {
- assertEquals(expectedStatusCode,
response.getStatusLine().getStatusCode());
+ verifyHttpStatus(response, null, expectedStatusCode);
final Header h = response.getFirstHeader("Content-Type");
if (expectedContentType == null) {
if (h != null) {
@@ -468,7 +495,7 @@ public abstract class AccessManagerClientTestSupport
extends AccessManagerTestSu
postRequest.addHeader(new BasicHeader("Accept",
"application/json,*/*;q=0.9"));
JsonObject jsonObj = null;
try (CloseableHttpResponse response =
httpClient.execute(postRequest, httpContext)) {
- assertEquals(HttpServletResponse.SC_CREATED,
response.getStatusLine().getStatusCode());
+ verifyHttpStatus(response, null,
HttpServletResponse.SC_CREATED);
jsonObj =
parseJson(EntityUtils.toString(response.getEntity()));
}
return jsonObj;
@@ -678,4 +705,79 @@ public abstract class AccessManagerClientTestSupport
extends AccessManagerTestSu
return privilegesObject;
}
+ /**
+ * Verify expected status and show error message in case expected status
is not returned.
+ *
+ * @param response The SlingHttpResponse of an executed request.
+ * @param errorMessage error message; if {@code null}, errorMessage is
extracted from response
+ * @param expectedStatus List of acceptable HTTP Statuses
+ */
+ protected void verifyHttpStatus(HttpResponse response, String
errorMessage, int... expectedStatus) throws IOException {
+ if (!checkStatus(response, expectedStatus)) {
+ failWithErrorAndResponseContent(response, errorMessage,
expectedStatus);
+ }
+ }
+
+ /**
+ * Check if the response status matches one of the expected values
+ *
+ * @param response the response to check
+ * @param expectedStatus the set of status values that are expected
+ * @return true if the status is as expected, false otherwise
+ */
+ protected boolean checkStatus(HttpResponse response, int...
expectedStatus) {
+ // if no HttpResponse was given
+ if (response == null) {
+ throw new NullPointerException("The response is null!");
+ }
+
+ // if no expected statuses are given
+ if (expectedStatus == null || expectedStatus.length == 0) {
+ throw new IllegalArgumentException("At least one expected HTTP
Status must be set!");
+ }
+
+ // get the returned HTTP Status
+ int givenStatus = response.getStatusLine().getStatusCode();
+
+ // check if it matches with an expected one
+ for (int expected : expectedStatus) {
+ if (givenStatus == expected) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Fail with a message that includes the response content
+ *
+ * @param response the response to check
+ * @param errorMessage the extra error message to use (or null)
+ * @param expectedStatus the set of status values that are expected
+ */
+ protected void failWithErrorAndResponseContent(HttpResponse response,
String errorMessage, int... expectedStatus) throws IOException {
+ // build error message
+ StringBuilder errorMsgBuilder = new StringBuilder();
+ errorMsgBuilder.append("Expected HTTP Status: ");
+ for (int expected : expectedStatus) {
+ errorMsgBuilder.append(expected).append(" ");
+ }
+
+ errorMsgBuilder.append(". Instead ")
+ .append(response.getStatusLine().getStatusCode())
+ .append(" was returned!\n");
+
+ if (errorMessage != null) {
+ errorMsgBuilder.append(errorMessage);
+ }
+
+ String content = EntityUtils.toString(response.getEntity());
+ errorMsgBuilder.append("\nResponse Content:\n")
+ .append(content);
+
+ // fail with the error message
+ fail(errorMsgBuilder.toString());
+ }
+
}
diff --git
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/AccessManagerTestSupport.java
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/AccessManagerTestSupport.java
index 07f4611..42099b8 100644
---
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/AccessManagerTestSupport.java
+++
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/AccessManagerTestSupport.java
@@ -23,6 +23,7 @@ import static
org.apache.sling.testing.paxexam.SlingOptions.versionResolver;
import static org.awaitility.Awaitility.await;
import static org.junit.Assert.assertNotNull;
import static org.ops4j.pax.exam.CoreOptions.composite;
+import static org.ops4j.pax.exam.CoreOptions.frameworkProperty;
import static org.ops4j.pax.exam.CoreOptions.junitBundles;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import static org.ops4j.pax.exam.CoreOptions.options;
@@ -48,6 +49,10 @@ import
org.apache.felix.hc.api.execution.HealthCheckExecutionResult;
import org.apache.felix.hc.api.execution.HealthCheckExecutor;
import org.apache.felix.hc.api.execution.HealthCheckSelector;
import org.apache.sling.testing.paxexam.TestSupport;
+import org.junit.Rule;
+import org.junit.rules.TestRule;
+import org.junit.rules.TestWatcher;
+import org.junit.runner.Description;
import org.ops4j.pax.exam.Configuration;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.options.ModifiableCompositeOption;
@@ -67,6 +72,26 @@ public abstract class AccessManagerTestSupport extends
TestSupport {
@Inject
private HealthCheckExecutor hcExecutor;
+ @Rule
+ public TestRule watcher = new TestWatcher() {
+
+ /* (non-Javadoc)
+ * @see
org.junit.rules.TestWatcher#starting(org.junit.runner.Description)
+ */
+ @Override
+ protected void starting(Description description) {
+ logger.info("Starting test: {}", description.getMethodName());
+ }
+
+ /* (non-Javadoc)
+ * @see
org.junit.rules.TestWatcher#finished(org.junit.runner.Description)
+ */
+ @Override
+ protected void finished(Description description) {
+ logger.info("Finished test: {}", description.getMethodName());
+ }
+
+ };
@Configuration
public Option[] configuration() throws IOException {
@@ -97,6 +122,12 @@ public abstract class AccessManagerTestSupport extends
TestSupport {
testBundle("bundle.filename"),
junitBundles(),
awaitility()
+ ).add(
+ // jakarta impl of JSON apis
+
frameworkProperty("org.apache.aries.spifly.auto.consumers").value("jakarta.json-api"),
+
frameworkProperty("org.apache.aries.spifly.auto.providers").value("org.eclipse.parsson"),
+
mavenBundle().groupId("jakarta.json").artifactId("jakarta.json-api").version("2.1.1"),
+
mavenBundle().groupId("org.eclipse.parsson").artifactId("parsson").version("1.1.1")
).add(
additionalOptions()
).remove(
diff --git
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/AccessPrivilegesInfoIT.java
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/AccessPrivilegesInfoIT.java
index 337c1eb..9b0e8f9 100644
---
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/AccessPrivilegesInfoIT.java
+++
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/AccessPrivilegesInfoIT.java
@@ -27,9 +27,9 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import javax.json.JsonArray;
-import javax.json.JsonException;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
import javax.servlet.http.HttpServletResponse;
import org.apache.http.NameValuePair;
diff --git
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetAceIT.java
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetAceIT.java
index ecb3839..6a25abd 100644
---
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetAceIT.java
+++
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetAceIT.java
@@ -24,10 +24,10 @@ import java.io.IOException;
import java.util.List;
import java.util.stream.Stream;
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonString;
-import javax.json.JsonValue;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonString;
+import jakarta.json.JsonValue;
import javax.servlet.http.HttpServletResponse;
import org.apache.http.NameValuePair;
diff --git
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetAceServiceIT.java
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetAceServiceIT.java
index 3cbb1d5..53f99c0 100644
---
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetAceServiceIT.java
+++
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetAceServiceIT.java
@@ -31,7 +31,7 @@ import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import javax.jcr.Value;
import javax.jcr.ValueFactory;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import
org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AccessControlConstants;
import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants;
diff --git
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetAclIT.java
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetAclIT.java
index 8296f79..3858ce7 100644
---
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetAclIT.java
+++
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetAclIT.java
@@ -23,8 +23,8 @@ import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.util.List;
-import javax.json.JsonException;
-import javax.json.JsonObject;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
import javax.servlet.http.HttpServletResponse;
import org.apache.http.NameValuePair;
diff --git
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetEaceIT.java
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetEaceIT.java
index a9edbc0..f6fa56c 100644
---
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetEaceIT.java
+++
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetEaceIT.java
@@ -26,11 +26,11 @@ import java.net.URI;
import java.util.List;
import java.util.stream.Stream;
-import javax.json.JsonArray;
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonString;
-import javax.json.JsonValue;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonString;
+import jakarta.json.JsonValue;
import javax.servlet.http.HttpServletResponse;
import org.apache.http.NameValuePair;
diff --git
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetEaceServiceIT.java
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetEaceServiceIT.java
index 03fce5b..72f49a0 100644
---
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetEaceServiceIT.java
+++
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetEaceServiceIT.java
@@ -31,7 +31,7 @@ import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import javax.jcr.Value;
import javax.jcr.ValueFactory;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import
org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AccessControlConstants;
import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants;
diff --git
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetPaceIT.java
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetPaceIT.java
index cb9ca4b..b312ef7 100644
---
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetPaceIT.java
+++
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/GetPaceIT.java
@@ -25,11 +25,11 @@ import java.net.URI;
import java.util.List;
import java.util.stream.Stream;
-import javax.json.JsonArray;
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonString;
-import javax.json.JsonValue;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonString;
+import jakarta.json.JsonValue;
import javax.servlet.http.HttpServletResponse;
import org.apache.http.NameValuePair;
diff --git
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/ModifyAceIT.java
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/ModifyAceIT.java
index e45ef75..ff03d2d 100644
---
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/ModifyAceIT.java
+++
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/ModifyAceIT.java
@@ -31,12 +31,12 @@ import java.util.Map.Entry;
import java.util.Set;
import java.util.stream.Stream;
-import javax.json.JsonArray;
-import javax.json.JsonException;
-import javax.json.JsonObject;
-import javax.json.JsonString;
-import javax.json.JsonValue;
-import javax.json.JsonValue.ValueType;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonString;
+import jakarta.json.JsonValue;
+import jakarta.json.JsonValue.ValueType;
import javax.servlet.http.HttpServletResponse;
import org.apache.http.NameValuePair;
diff --git
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/ModifyAceServiceIT.java
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/ModifyAceServiceIT.java
index 66c8125..f7166a0 100644
---
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/ModifyAceServiceIT.java
+++
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/ModifyAceServiceIT.java
@@ -36,9 +36,9 @@ import javax.jcr.SimpleCredentials;
import javax.jcr.Value;
import javax.jcr.ValueFactory;
import javax.jcr.security.AccessControlException;
-import javax.json.JsonObject;
-import javax.json.JsonString;
-import javax.json.JsonValue;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonString;
+import jakarta.json.JsonValue;
import
org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AccessControlConstants;
import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants;
diff --git
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/ModifyPrincipalAceIT.java
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/ModifyPrincipalAceIT.java
index 91d20ae..09b7ba2 100644
---
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/ModifyPrincipalAceIT.java
+++
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/ModifyPrincipalAceIT.java
@@ -22,8 +22,8 @@ import static org.junit.Assert.assertNotNull;
import java.io.IOException;
import java.util.List;
-import javax.json.JsonException;
-import javax.json.JsonObject;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
import javax.servlet.http.HttpServletResponse;
import org.apache.http.NameValuePair;
diff --git
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/PrincipalAceServiceTestSupport.java
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/PrincipalAceServiceTestSupport.java
index 0be17f9..9e72cac 100644
---
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/PrincipalAceServiceTestSupport.java
+++
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/PrincipalAceServiceTestSupport.java
@@ -23,7 +23,7 @@ import javax.jcr.Node;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.apache.sling.jcr.api.SlingRepository;
import org.apache.sling.jcr.jackrabbit.accessmanager.GetPrincipalAce;
diff --git
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/PrincipalAceTestSupport.java
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/PrincipalAceTestSupport.java
index d46a071..8f910b5 100644
---
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/PrincipalAceTestSupport.java
+++
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/PrincipalAceTestSupport.java
@@ -26,8 +26,8 @@ import static
org.ops4j.pax.exam.cm.ConfigurationAdminOptions.newConfiguration;
import java.io.IOException;
import java.util.List;
-import javax.json.JsonException;
-import javax.json.JsonObject;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
import javax.servlet.http.HttpServletResponse;
import org.apache.http.NameValuePair;
diff --git
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/RemoveAcesIT.java
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/RemoveAcesIT.java
index f59ed41..071d663 100644
---
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/RemoveAcesIT.java
+++
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/RemoveAcesIT.java
@@ -25,9 +25,9 @@ import java.util.Dictionary;
import java.util.Hashtable;
import java.util.List;
-import javax.json.JsonArray;
-import javax.json.JsonException;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
import javax.servlet.http.HttpServletResponse;
import org.apache.http.NameValuePair;
diff --git
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/RemovePrincipalAcesIT.java
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/RemovePrincipalAcesIT.java
index 7b22aac..0b79674 100644
---
a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/RemovePrincipalAcesIT.java
+++
b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/it/RemovePrincipalAcesIT.java
@@ -26,9 +26,9 @@ import java.util.Dictionary;
import java.util.Hashtable;
import java.util.List;
-import javax.json.JsonArray;
-import javax.json.JsonException;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObject;
import javax.servlet.http.HttpServletResponse;
import org.apache.http.NameValuePair;