SLING-8442 : Remove dependency from launchpad starter api
diff --git a/bnd.bnd b/bnd.bnd
new file mode 100644
index 0000000..40a6f22
--- /dev/null
+++ b/bnd.bnd
@@ -0,0 +1,12 @@
+Bundle-Activator: org.apache.sling.extensions.webconsolesecurityprovider.internal.Activator
+
+Import-Package:\
+ !org.apache.sling.auth.core,\
+ !org.apache.sling.api.auth,\
+ !org.apache.sling.api.resource,\
+ *
+
+DynamicImport-Package:\
+ org.apache.sling.api.auth;version="[1.0,2)",\
+ org.apache.sling.api.resource;version="[2.3,3)",\
+ org.apache.sling.auth.core;version="[1.0,2)"
diff --git a/pom.xml b/pom.xml
index 561915b..b14ee1c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,16 +19,15 @@
<modelVersion>4.0.0</modelVersion>
<parent>
- <artifactId>sling</artifactId>
+ <artifactId>sling-bundle-parent</artifactId>
<groupId>org.apache.sling</groupId>
- <version>30</version>
+ <version>35</version>
<relativePath />
</parent>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.extensions.webconsolesecurityprovider</artifactId>
<version>1.2.1-SNAPSHOT</version>
- <packaging>bundle</packaging>
<name>Apache Sling Web Console Security Provider</name>
<description>
@@ -49,29 +48,6 @@
<build>
<plugins>
<plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <extensions>true</extensions>
- <configuration>
- <instructions>
- <Bundle-Activator>
- org.apache.sling.extensions.webconsolesecurityprovider.internal.Activator
- </Bundle-Activator>
- <Import-Package>
- !org.apache.sling.auth.core,
- !org.apache.sling.api.auth,
- !org.apache.sling.api.resource,
- *
- </Import-Package>
- <DynamicImport-Package>
- org.apache.sling.api.auth;version="[1.0,2)",
- org.apache.sling.api.resource;version="[2.3,3)",
- org.apache.sling.auth.core;version="[1.0,2)"
- </DynamicImport-Package>
- </instructions>
- </configuration>
- </plugin>
- <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
@@ -111,12 +87,6 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.launchpad.api</artifactId>
- <version>1.1.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
diff --git a/src/main/java/org/apache/sling/extensions/webconsolesecurityprovider/internal/Activator.java b/src/main/java/org/apache/sling/extensions/webconsolesecurityprovider/internal/Activator.java
index 99ef6f3..0339c5d 100644
--- a/src/main/java/org/apache/sling/extensions/webconsolesecurityprovider/internal/Activator.java
+++ b/src/main/java/org/apache/sling/extensions/webconsolesecurityprovider/internal/Activator.java
@@ -16,24 +16,19 @@
*/
package org.apache.sling.extensions.webconsolesecurityprovider.internal;
-import org.apache.sling.launchpad.api.StartupListener;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceRegistration;
public class Activator implements BundleActivator {
private ServicesListener listener;
- private ServiceRegistration<StartupListener> registration;
-
/**
* @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
*/
@Override
public void start(final BundleContext context) throws Exception {
listener = new ServicesListener(context);
- registration = context.registerService(StartupListener.class, listener, null);
}
/**
@@ -41,11 +36,7 @@
*/
@Override
public void stop(final BundleContext context) throws Exception {
- if ( registration != null ) {
- registration.unregister();
- registration = null;
- }
- if ( listener != null ) {
+ if (listener != null) {
listener.deactivate();
listener = null;
}
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 b4b78fd..801b3e5 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
@@ -21,11 +21,8 @@
import java.util.Dictionary;
import java.util.Hashtable;
-import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.felix.webconsole.WebConsoleSecurityProvider;
-import org.apache.sling.launchpad.api.StartupListener;
-import org.apache.sling.launchpad.api.StartupMode;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
import org.osgi.framework.InvalidSyntaxException;
@@ -39,7 +36,7 @@
* The <code>ServicesListener</code> listens for the required services
* and registers the security provider when required services are available
*/
-public class ServicesListener implements StartupListener {
+public class ServicesListener {
private static final String AUTH_SUPPORT_CLASS = "org.apache.sling.auth.core.AuthenticationSupport";
private static final String AUTHENTICATOR_CLASS = "org.apache.sling.api.auth.Authenticator";
@@ -61,7 +58,7 @@
NONE,
PROVIDER,
PROVIDER2
- };
+ }
/** State */
private volatile State registrationState = State.NONE;
@@ -72,9 +69,6 @@
/** The registration for the provider2 */
private ServiceRegistration<?> provider2Reg;
- /** Flag for marking if startup is finished. */
- private final AtomicBoolean startupFinished = new AtomicBoolean(false);
-
/**
* Start listeners
*/
@@ -89,40 +83,12 @@
}
/**
- * @see org.apache.sling.launchpad.api.StartupListener#inform(org.apache.sling.launchpad.api.StartupMode, boolean)
- */
- @Override
- public void inform(final StartupMode mode, final boolean finished) {
- if ( finished && this.startupFinished.compareAndSet(false, true) ) {
- notifyChange();
- }
- }
-
- /**
- * @see org.apache.sling.launchpad.api.StartupListener#startupFinished(org.apache.sling.launchpad.api.StartupMode)
- */
- @Override
- public void startupFinished(final StartupMode mode) {
- if ( this.startupFinished.compareAndSet(false, true) ) {
- notifyChange();
- }
- }
-
- /**
- * @see org.apache.sling.launchpad.api.StartupListener#startupProgress(float)
- */
- @Override
- public void startupProgress(final float progress) {
- // nothing to do
- }
-
- /**
* Notify of service changes from the listeners.
*/
public synchronized void notifyChange() {
// check if all services are available
- final Object authSupport = this.startupFinished.get() ? this.authSupportListener.getService() : null;
- final Object authenticator = this.startupFinished.get() ? this.authListener.getService() : null;
+ final Object authSupport = this.authSupportListener.getService();
+ final Object authenticator = this.authListener.getService();
final boolean hasAuthServices = authSupport != null && authenticator != null;
final Object repository = this.repositoryListener.getService();
if ( registrationState == State.NONE ) {