This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-paxexam-util.git
commit 0a4f4a4b4dea250070d3fb425c5faa1403d35e39 Author: Bertrand Delacretaz <[email protected]> AuthorDate: Mon Nov 3 14:13:27 2014 +0000 Add local StartupHandler so that SlingSettingsService starts git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1636357 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/sling/paxexam/util/SlingSetupTest.java | 40 +++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/apache/sling/paxexam/util/SlingSetupTest.java b/src/test/java/org/apache/sling/paxexam/util/SlingSetupTest.java index 2d8ad19..13e40c2 100644 --- a/src/test/java/org/apache/sling/paxexam/util/SlingSetupTest.java +++ b/src/test/java/org/apache/sling/paxexam/util/SlingSetupTest.java @@ -25,6 +25,10 @@ import java.util.List; import javax.inject.Inject; +import org.apache.sling.launchpad.api.StartupHandler; +import org.apache.sling.launchpad.api.StartupMode; +import org.junit.After; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.ops4j.pax.exam.Option; @@ -34,6 +38,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; +import org.osgi.framework.ServiceRegistration; /** Verify that we get a working Sling launchpad with what SlingPaxOptions provide */ @RunWith(PaxExam.class) @@ -46,10 +51,42 @@ public class SlingSetupTest { @Inject private BundleContext bundleContext; + private ServiceRegistration<?> startupHandlerRegistration; + @org.ops4j.pax.exam.Configuration public Option[] config() { return SlingPaxOptions.defaultLaunchpadOptions(SLING_LAUNCHPAD_VERSION).getOptions(); } + + @Before + public void setup() { + // In Sling launchpad 7 the SlingSettings service + // requires a StartupHandler, and that's usually provided + // by the launchpad bootstrap code. Supply our own so that + // everything starts properly. + // TODO should be provided by a utility/bootstrap bundle + final StartupHandler h = new StartupHandler() { + public void waitWithStartup(boolean b) { + } + + public boolean isFinished() { + return true; + } + + public StartupMode getMode() { + return StartupMode.INSTALL; + } + }; + startupHandlerRegistration = bundleContext.registerService(StartupHandler.class.getName(), h, null); + } + + @After + public void cleanup() { + if(startupHandlerRegistration != null) { + startupHandlerRegistration.unregister(); + startupHandlerRegistration = null; + } + } private void assertBundleActive(String symbolicName) { assertEquals("Expecting bundle to be active:" + symbolicName, Bundle.ACTIVE, getBundleState(symbolicName)); @@ -220,7 +257,8 @@ public class SlingSetupTest { final String [] services = { "org.apache.sling.engine.SlingRequestProcessor", "org.apache.sling.commons.mime.MimeTypeService", - "org.apache.sling.jcr.api.SlingRepository" + "org.apache.sling.jcr.api.SlingRepository", + "org.apache.sling.settings.SlingSettingsService" }; final List<String> missing = new ArrayList<String>(); -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
