Author: olli Date: Sat Oct 17 15:31:06 2015 New Revision: 1709186 URL: http://svn.apache.org/viewvc?rev=1709186&view=rev Log: adjust to simple (no startup handler)
Removed: sling/whiteboard/olli/settings/simple/src/main/java/org/apache/sling/settings/simple/internal/Activator.java Modified: sling/whiteboard/olli/settings/simple/pom.xml sling/whiteboard/olli/settings/simple/src/main/java/org/apache/sling/settings/simple/internal/ServicesListener.java sling/whiteboard/olli/settings/simple/src/main/java/org/apache/sling/settings/simple/internal/SettingsServiceConfigurator.java sling/whiteboard/olli/settings/simple/src/main/java/org/apache/sling/settings/simple/internal/SimpleSlingSettingsService.java Modified: sling/whiteboard/olli/settings/simple/pom.xml URL: http://svn.apache.org/viewvc/sling/whiteboard/olli/settings/simple/pom.xml?rev=1709186&r1=1709185&r2=1709186&view=diff ============================================================================== --- sling/whiteboard/olli/settings/simple/pom.xml (original) +++ sling/whiteboard/olli/settings/simple/pom.xml Sat Oct 17 15:31:06 2015 @@ -60,6 +60,15 @@ <Bundle-DocURL> http://sling.apache.org/documentation/bundles/sling-settings-orgapacheslingsettings.html </Bundle-DocURL> + <DynamicImport-Package> + org.osgi.service.cm, + org.apache.felix.shell + </DynamicImport-Package> + <Import-Package> + org.osgi.service.cm;resolution:=optional, + org.apache.felix.shell;resolution:=optional, + * + </Import-Package> </instructions> </configuration> </plugin> Modified: sling/whiteboard/olli/settings/simple/src/main/java/org/apache/sling/settings/simple/internal/ServicesListener.java URL: http://svn.apache.org/viewvc/sling/whiteboard/olli/settings/simple/src/main/java/org/apache/sling/settings/simple/internal/ServicesListener.java?rev=1709186&r1=1709185&r2=1709186&view=diff ============================================================================== --- sling/whiteboard/olli/settings/simple/src/main/java/org/apache/sling/settings/simple/internal/ServicesListener.java (original) +++ sling/whiteboard/olli/settings/simple/src/main/java/org/apache/sling/settings/simple/internal/ServicesListener.java Sat Oct 17 15:31:06 2015 @@ -16,12 +16,13 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.sling.settings.launchpad.internal; +package org.apache.sling.settings.simple.internal; import java.util.Dictionary; import java.util.Hashtable; -import org.apache.sling.launchpad.api.StartupHandler; +import org.apache.felix.scr.annotations.Activate; +import org.apache.felix.scr.annotations.Deactivate; import org.apache.sling.settings.SlingSettingsService; import org.apache.sling.settings.console.SlingSettingsPrinter; import org.apache.sling.settings.shell.RunModeCommand; @@ -41,10 +42,7 @@ import org.osgi.framework.ServiceRegistr public class ServicesListener { /** The bundle context. */ - private final BundleContext bundleContext; - - /** The listener for the startup handler. */ - private final Listener startupListener; + private BundleContext bundleContext; /** The listener for configuration admin. */ private ConfigAdminListener configAdminListener; @@ -56,30 +54,12 @@ public class ServicesListener { /** The registration of the settings service. */ private ServiceRegistration settingsReg; - /** - * Start listeners - */ - public ServicesListener(final BundleContext bundleContext) { - this.bundleContext = bundleContext; - this.startupListener = new Listener(StartupHandler.class.getName()); - this.startupListener.start(); + public ServicesListener() { } - /** - * Notify of service changes from the listeners. - * If all services are available, register listener and pass resources - * to the OSGi installer. - */ - public synchronized void notifyChange() { - // check if all services are available - final StartupHandler handler = (StartupHandler)this.startupListener.getService(); - if ( handler != null && this.settingsReg == null ) { - this.activate(handler); - } - } - - private void activate(final StartupHandler handler) { - final SlingSettingsServiceImpl settingsService = new SlingSettingsServiceImpl(bundleContext, handler); + @Activate + public void activate(final BundleContext bundleContext) { + final SimpleSlingSettingsService settingsService = new SimpleSlingSettingsService(bundleContext); final Dictionary<String, String> props = new Hashtable<String, String>(); props.put(Constants.SERVICE_DESCRIPTION, @@ -88,7 +68,6 @@ public class ServicesListener { this.settingsReg = bundleContext.registerService(new String[] { SlingSettingsService.class.getName()}, settingsService, props); - SlingPropertiesPrinter.initPlugin(bundleContext); SlingSettingsPrinter.initPlugin(bundleContext, settingsService); // add config admin support @@ -103,6 +82,7 @@ public class ServicesListener { /** * Deactivate this listener. */ + @Deactivate public void deactivate() { if ( this.shellListener != null ) { this.shellListener.deactivate(); @@ -112,14 +92,12 @@ public class ServicesListener { this.configAdminListener.deactivate(); this.configAdminListener = null; } - this.startupListener.deactivate(); if ( this.settingsReg != null ) { this.settingsReg.unregister(); this.settingsReg = null; } SlingSettingsPrinter.destroyPlugin(); - SlingPropertiesPrinter.destroyPlugin(); } /** @@ -216,36 +194,18 @@ public class ServicesListener { } /** - * Helper class listening for service events for a defined service. - */ - private final class Listener extends AbstractListener { - - /** - * Constructor - */ - public Listener(final String serviceName) { - super(serviceName); - } - - @Override - protected void serviceChanged() { - notifyChange(); - } - } - - /** * Helper class listening for service events for config admin */ private final class ConfigAdminListener extends AbstractListener { private Object settingsServiceConfigurator; - private final SlingSettingsServiceImpl settings; + private final SimpleSlingSettingsService settings; /** * Constructor */ - public ConfigAdminListener(final SlingSettingsServiceImpl settings) { + public ConfigAdminListener(final SimpleSlingSettingsService settings) { super("org.osgi.service.cm.ConfigurationAdmin"); this.settings = settings; } @@ -275,12 +235,12 @@ public class ServicesListener { private Object runModeCommand; - private final SlingSettingsServiceImpl settings; + private final SimpleSlingSettingsService settings; /** * Constructor */ - public ShellListener(final SlingSettingsServiceImpl settings) { + public ShellListener(final SimpleSlingSettingsService settings) { super("org.apache.felix.shell.ShellService"); this.settings = settings; } Modified: sling/whiteboard/olli/settings/simple/src/main/java/org/apache/sling/settings/simple/internal/SettingsServiceConfigurator.java URL: http://svn.apache.org/viewvc/sling/whiteboard/olli/settings/simple/src/main/java/org/apache/sling/settings/simple/internal/SettingsServiceConfigurator.java?rev=1709186&r1=1709185&r2=1709186&view=diff ============================================================================== --- sling/whiteboard/olli/settings/simple/src/main/java/org/apache/sling/settings/simple/internal/SettingsServiceConfigurator.java (original) +++ sling/whiteboard/olli/settings/simple/src/main/java/org/apache/sling/settings/simple/internal/SettingsServiceConfigurator.java Sat Oct 17 15:31:06 2015 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.sling.settings.launchpad.internal; +package org.apache.sling.settings.simple.internal; import java.util.Dictionary; import java.util.Hashtable; @@ -29,12 +29,12 @@ import org.osgi.service.cm.ManagedServic public class SettingsServiceConfigurator implements ManagedService { - private final SlingSettingsServiceImpl settings; + private final SimpleSlingSettingsService settings; private final ServiceRegistration managedServiceReg; public SettingsServiceConfigurator(final BundleContext btx, - final SlingSettingsServiceImpl s) { + final SimpleSlingSettingsService s) { this.settings = s; // setup manager service for configuration handling final Dictionary<String, String> msProps = new Hashtable<String, String>(); Modified: sling/whiteboard/olli/settings/simple/src/main/java/org/apache/sling/settings/simple/internal/SimpleSlingSettingsService.java URL: http://svn.apache.org/viewvc/sling/whiteboard/olli/settings/simple/src/main/java/org/apache/sling/settings/simple/internal/SimpleSlingSettingsService.java?rev=1709186&r1=1709185&r2=1709186&view=diff ============================================================================== --- sling/whiteboard/olli/settings/simple/src/main/java/org/apache/sling/settings/simple/internal/SimpleSlingSettingsService.java (original) +++ sling/whiteboard/olli/settings/simple/src/main/java/org/apache/sling/settings/simple/internal/SimpleSlingSettingsService.java Sat Oct 17 15:31:06 2015 @@ -33,6 +33,21 @@ public class SimpleSlingSettingsService private final Logger logger = LoggerFactory.getLogger(SimpleSlingSettingsService.class); /** + * Create the service and search the Sling home urls and + * get/create a sling id. + * Setup run modes + * @param context The bundle context + */ + public SimpleSlingSettingsService(final BundleContext context) { + this.setupSlingProps(context); + this.setupSlingHome(context); + this.setupSlingId(context); + + this.setupRunModes(context); + + } + + /** * Set up run modes. */ private void setupRunModes(final BundleContext context) {