This is an automated email from the ASF dual-hosted git repository.

kwin pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 03b703e91f OAK-10332 Allow reusing FilterProviderImpl outside OSGi 
context (#1014)
03b703e91f is described below

commit 03b703e91f9964a2f192ccd34526d5980561839a
Author: Konrad Windszus <[email protected]>
AuthorDate: Tue Jul 11 15:54:51 2023 +0200

    OAK-10332 Allow reusing FilterProviderImpl outside OSGi context (#1014)
---
 .../principalbased/impl/FilterProviderImpl.java    | 23 +++++++++++++++++-----
 .../impl/AbstractPrincipalBasedTest.java           |  4 +---
 2 files changed, 19 insertions(+), 8 deletions(-)

diff --git 
a/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/FilterProviderImpl.java
 
b/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/FilterProviderImpl.java
index 6f4233332a..6eb212c7b6 100644
--- 
a/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/FilterProviderImpl.java
+++ 
b/oak-authorization-principalbased/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/FilterProviderImpl.java
@@ -76,6 +76,15 @@ public class FilterProviderImpl implements FilterProvider {
     private final Map<String, String> validatedPrincipalNamesPathMap = 
Maps.newConcurrentMap();
     private final Map<String, String> unsupportedPrincipalNames = 
Maps.newConcurrentMap();
 
+    /**
+     * Constructor to use outside OSGi containers
+     * @param oakPath the repository path where the principals are located
+     * @since 1.54
+     */
+    public FilterProviderImpl(@NotNull String oakPath) {
+        setPath(oakPath);
+    }
+
     //-----------------------------------------------------< FilterProvider 
>---
 
     @Override
@@ -98,19 +107,23 @@ public class FilterProviderImpl implements FilterProvider {
 
     //----------------------------------------------------< SCR Integration 
>---
 
+    public FilterProviderImpl() {
+        // constructor to use from SCR (not yet possible to use constructor 
injection, see https://issues.apache.org/jira/browse/OAK-9837)
+    }
+
     @Activate
     protected void activate(Configuration configuration, Map<String, Object> 
properties) {
-        setPath(configuration);
+        setPath(configuration.path());
     }
 
     @Modified
     protected void modified(Configuration configuration, Map<String, Object> 
properties) {
-        setPath(configuration);
+        setPath(configuration.path());
     }
 
-    private void setPath(@NotNull Configuration configuration) {
-        checkState(isValidPath(configuration.path()), "Configured path must be 
a valid absolute path.");
-        oakPath = configuration.path();
+    private void setPath(@NotNull String path) {
+        checkState(isValidPath(path), "Configured path must be a valid 
absolute path.");
+        oakPath = path;
     }
 
     private static boolean isValidPath(@Nullable String path) {
diff --git 
a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/AbstractPrincipalBasedTest.java
 
b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/AbstractPrincipalBasedTest.java
index f0640d12fe..f1fb03e5d9 100644
--- 
a/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/AbstractPrincipalBasedTest.java
+++ 
b/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/AbstractPrincipalBasedTest.java
@@ -210,9 +210,7 @@ public abstract class AbstractPrincipalBasedTest extends 
AbstractSecurityTest {
 
     @NotNull
     static FilterProviderImpl createFilterProviderImpl(@NotNull final String 
path) {
-        FilterProviderImpl fp = new FilterProviderImpl();
-        
fp.activate(when(mock(FilterProviderImpl.Configuration.class).path()).thenReturn(path).getMock(),
 Collections.emptyMap());
-        return fp;
+        return new FilterProviderImpl(path);
     }
 
     @NotNull

Reply via email to