You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:34:30 UTC

[sling-org-apache-sling-extensions-webconsolesecurityprovider] 02/08: SLING-3271 : Make Sling imports dynamic

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

rombert pushed a commit to annotated tag org.apache.sling.extensions.webconsolesecurityprovider-1.1.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-extensions-webconsolesecurityprovider.git

commit 739bbc56c300d439b85e5e9e019d997cf5528417
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Tue Dec 10 04:07:10 2013 +0000

    SLING-3271 : Make Sling imports dynamic
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/webconsolesecurityprovider@1549754 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                            |  9 ++++++
 .../internal/ServicesListener.java                 | 32 ++++++++--------------
 .../internal/SlingWebConsoleSecurityProvider.java  |  5 ++--
 .../internal/SlingWebConsoleSecurityProvider2.java |  6 ++--
 4 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/pom.xml b/pom.xml
index c4650a2..31c1f3a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -61,6 +61,15 @@
                         <Bundle-Activator>
                             org.apache.sling.extensions.webconsolesecurityprovider.internal.Activator
                         </Bundle-Activator>
+                        <Import-Package>
+                            !org.apache.sling.auth.core,
+                            !org.apache.sling.api.resource,
+                            *
+                        </Import-Package>
+                        <DynamicImport-Package>
+                            org.apache.sling.api.resource;version="[2.3,3)",
+                            org.apache.sling.auth.core;version="[1.0,2)"
+                        </DynamicImport-Package>
                     </instructions>                
                 </configuration>
             </plugin>
diff --git a/src/main/java/org/apache/sling/extensions/webconsolesecurityprovider/internal/ServicesListener.java b/src/main/java/org/apache/sling/extensions/webconsolesecurityprovider/internal/ServicesListener.java
index fad370e..4dda83f 100644
--- a/src/main/java/org/apache/sling/extensions/webconsolesecurityprovider/internal/ServicesListener.java
+++ b/src/main/java/org/apache/sling/extensions/webconsolesecurityprovider/internal/ServicesListener.java
@@ -41,6 +41,9 @@ import org.osgi.service.cm.ManagedService;
  */
 public class ServicesListener {
 
+    private static final String AUTH_SUPPORT_CLASS = AuthenticationSupport.class.getName();
+    private static final String REPO_CLASS = Repository.class.getName();
+
     /** The bundle context. */
     private final BundleContext bundleContext;
 
@@ -50,10 +53,6 @@ public class ServicesListener {
     /** The listener for the authentication support. */
     private final Listener authSupportListener;
 
-    private final SlingWebConsoleSecurityProvider provider = new SlingWebConsoleSecurityProvider();
-
-    private final SlingWebConsoleSecurityProvider2 provider2 = new SlingWebConsoleSecurityProvider2();
-
     private enum State {
         NONE,
         PROVIDER,
@@ -69,14 +68,13 @@ public class ServicesListener {
     /** The registration for the provider2 */
     private ServiceRegistration provider2Reg;
 
-
     /**
      * Start listeners
      */
     public ServicesListener(final BundleContext bundleContext) {
         this.bundleContext = bundleContext;
-        this.authSupportListener = new Listener(AuthenticationSupport.class.getName());
-        this.repositoryListener = new Listener(Repository.class.getName());
+        this.authSupportListener = new Listener(AUTH_SUPPORT_CLASS);
+        this.repositoryListener = new Listener(REPO_CLASS);
         this.authSupportListener.start();
         this.repositoryListener.start();
     }
@@ -86,8 +84,8 @@ public class ServicesListener {
      */
     public synchronized void notifyChange() {
         // check if all services are available
-        final AuthenticationSupport authSupport = (AuthenticationSupport)this.authSupportListener.getService();
-        final Repository repository = (Repository)this.repositoryListener.getService();
+        final Object authSupport = this.authSupportListener.getService();
+        final Object repository = this.repositoryListener.getService();
         if ( registrationState == State.NONE ) {
             if ( authSupport != null ) {
                 registerProvider2(authSupport);
@@ -101,8 +99,6 @@ public class ServicesListener {
             } else if ( repository == null ) {
                 unregisterProvider();
                 this.registrationState = State.NONE;
-            } else {
-                this.provider.setService(repository);
             }
         } else {
             if ( authSupport == null ) {
@@ -112,8 +108,6 @@ public class ServicesListener {
                     this.registrationState = State.NONE;
                 }
                 unregisterProvider2();
-            } else {
-                this.provider2.setService(authSupport);
             }
         }
     }
@@ -123,7 +117,6 @@ public class ServicesListener {
             this.provider2Reg.unregister();
             this.provider2Reg = null;
         }
-        this.provider2.setService(null);
     }
 
     private void unregisterProvider() {
@@ -131,28 +124,25 @@ public class ServicesListener {
             this.providerReg.unregister();
             this.providerReg = null;
         }
-        this.provider.setService(null);
     }
 
-    private void registerProvider2(final AuthenticationSupport authSupport) {
-        this.provider2.setService(authSupport);
+    private void registerProvider2(final Object authSupport) {
         final Dictionary<String, Object> props = new Hashtable<String, Object>();
         props.put(Constants.SERVICE_PID, SlingWebConsoleSecurityProvider.class.getName());
         props.put(Constants.SERVICE_DESCRIPTION, "Apache Sling Web Console Security Provider 2");
         props.put(Constants.SERVICE_VENDOR, "The Apache Software Foundation");
         this.provider2Reg = this.bundleContext.registerService(
-            new String[] {ManagedService.class.getName(), WebConsoleSecurityProvider.class.getName()}, this.provider2, props);
+            new String[] {ManagedService.class.getName(), WebConsoleSecurityProvider.class.getName()}, new SlingWebConsoleSecurityProvider2(authSupport), props);
         this.registrationState = State.PROVIDER2;
     }
 
-    private void registerProvider(final Repository repository) {
-        this.provider.setService(repository);
+    private void registerProvider(final Object repository) {
         final Dictionary<String, Object> props = new Hashtable<String, Object>();
         props.put(Constants.SERVICE_PID, SlingWebConsoleSecurityProvider.class.getName());
         props.put(Constants.SERVICE_DESCRIPTION, "Apache Sling Web Console Security Provider");
         props.put(Constants.SERVICE_VENDOR, "The Apache Software Foundation");
         this.providerReg = this.bundleContext.registerService(
-            new String[] {ManagedService.class.getName(), WebConsoleSecurityProvider.class.getName()}, this.provider, props);
+            new String[] {ManagedService.class.getName(), WebConsoleSecurityProvider.class.getName()}, new SlingWebConsoleSecurityProvider(repository), props);
         this.registrationState = State.PROVIDER;
     }
 
diff --git a/src/main/java/org/apache/sling/extensions/webconsolesecurityprovider/internal/SlingWebConsoleSecurityProvider.java b/src/main/java/org/apache/sling/extensions/webconsolesecurityprovider/internal/SlingWebConsoleSecurityProvider.java
index 566da32..37454e2 100644
--- a/src/main/java/org/apache/sling/extensions/webconsolesecurityprovider/internal/SlingWebConsoleSecurityProvider.java
+++ b/src/main/java/org/apache/sling/extensions/webconsolesecurityprovider/internal/SlingWebConsoleSecurityProvider.java
@@ -72,9 +72,10 @@ public class SlingWebConsoleSecurityProvider extends AbstractWebConsoleSecurityP
 
     private Repository repository;
 
-    public void setService(final Repository repo) {
-        this.repository = repo;
+    public SlingWebConsoleSecurityProvider(final Object repository) {
+        this.repository = (Repository)repository;
     }
+
     // ---------- SCR integration
 
     /**
diff --git a/src/main/java/org/apache/sling/extensions/webconsolesecurityprovider/internal/SlingWebConsoleSecurityProvider2.java b/src/main/java/org/apache/sling/extensions/webconsolesecurityprovider/internal/SlingWebConsoleSecurityProvider2.java
index 8a8f1a2..7521fc9 100644
--- a/src/main/java/org/apache/sling/extensions/webconsolesecurityprovider/internal/SlingWebConsoleSecurityProvider2.java
+++ b/src/main/java/org/apache/sling/extensions/webconsolesecurityprovider/internal/SlingWebConsoleSecurityProvider2.java
@@ -50,10 +50,10 @@ public class SlingWebConsoleSecurityProvider2
     extends AbstractWebConsoleSecurityProvider
     implements WebConsoleSecurityProvider2 {
 
-    private AuthenticationSupport authenticator;
+    private final AuthenticationSupport authenticator;
 
-    public void setService(final AuthenticationSupport support) {
-        this.authenticator = support;
+    public SlingWebConsoleSecurityProvider2(final Object support) {
+        this.authenticator = (AuthenticationSupport)support;
     }
 
     private void invokeAuthenticator(final HttpServletRequest request, final HttpServletResponse response) {

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.