blob: 357d4ec072ddc7b42c6a82e257a6fd95df0df0b1 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014 Composent, Inc. All rights reserved. This
* program and the accompanying materials are made available under the terms of
* the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors: Scott Lewis (slewis@composent.com) - initial API and implementation
******************************************************************************/
package org.eclipse.ecf.internal.examples.raspberrypi.management.host;
import java.util.Dictionary;
import java.util.Hashtable;
import org.eclipse.ecf.examples.raspberrypi.management.IRaspberryPi;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
public class Activator implements BundleActivator {
private static final String OSGI_SERVICE_EXPORTED_INTERFACES = "service.exported.interfaces";
private ServiceRegistration<IRaspberryPi> registration;
@Override
public void start(BundleContext context) throws Exception {
Dictionary<String,Object> props = new Hashtable<String,Object>();
// Add OSGi required remote service properties
props.put(OSGI_SERVICE_EXPORTED_INTERFACES, System.getProperty(OSGI_SERVICE_EXPORTED_INTERFACES,"*"));
// Use ECF generic server config.
props.put("service.exported.configs", "ecf.generic.server");
// Setup hostname config (default:localhost)
String hostname = System.getProperty("ecf.generic.server.hostname");
if (hostname != null)
props.put("ecf.generic.server.hostname",hostname);
// Setup port config (default:-1)
props.put("ecf.generic.server.port",new Integer(System.getProperty("ecf.generic.server.port","-1")));
// Setup IRaspberryPiAsync as async remote service
props.put("ecf.exported.async.interfaces", "*");
// This remote service registration will trigger export, and publishing via zeroconf
registration = context.registerService(IRaspberryPi.class, new RaspberryPi(), props);
System.out.println("IRaspberryPi remote service registered="+registration);
}
@Override
public void stop(BundleContext context) throws Exception {
registration.unregister();
System.out.println("IRaspberryPi remote service unregistered");
}
}