summaryrefslogtreecommitdiffstats
path: root/jdisc_core_test/test_bundles/my-bundle-activator/src/main/java/com/yahoo/jdisc/bundle/MyBundleActivator.java
diff options
context:
space:
mode:
Diffstat (limited to 'jdisc_core_test/test_bundles/my-bundle-activator/src/main/java/com/yahoo/jdisc/bundle/MyBundleActivator.java')
-rw-r--r--jdisc_core_test/test_bundles/my-bundle-activator/src/main/java/com/yahoo/jdisc/bundle/MyBundleActivator.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/jdisc_core_test/test_bundles/my-bundle-activator/src/main/java/com/yahoo/jdisc/bundle/MyBundleActivator.java b/jdisc_core_test/test_bundles/my-bundle-activator/src/main/java/com/yahoo/jdisc/bundle/MyBundleActivator.java
new file mode 100644
index 00000000000..a7e4984a367
--- /dev/null
+++ b/jdisc_core_test/test_bundles/my-bundle-activator/src/main/java/com/yahoo/jdisc/bundle/MyBundleActivator.java
@@ -0,0 +1,39 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.jdisc.bundle;
+
+import com.yahoo.jdisc.service.CurrentContainer;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ */
+public class MyBundleActivator implements BundleActivator {
+
+ private ServiceRegistration registration;
+
+ @Override
+ public void start(BundleContext ctx) throws Exception {
+ ServiceReference seviceRef = ctx.getServiceReference(CurrentContainer.class.getName());
+ if (seviceRef == null) {
+ throw new IllegalStateException("Service reference '" + CurrentContainer.class.getName() + "' not found.");
+ }
+ Object service = ctx.getService(seviceRef);
+ if (service == null) {
+ throw new IllegalStateException("Service '" + CurrentContainer.class.getName() + "' not found.");
+ }
+ if (!(service instanceof CurrentContainer)) {
+ throw new IllegalStateException("Expected " + CurrentContainer.class + ", got " + service.getClass() + ".");
+ }
+ registration = ctx.registerService(MyService.class.getName(), new MyService(), null);
+ }
+
+ @Override
+ public void stop(BundleContext ctx) throws Exception {
+ if (registration != null) {
+ registration.unregister();
+ }
+ }
+}