/******************************************************************************* * Copyright (c) 2015 Composent, Inc. and others. 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: * Composent, Inc. - initial API and implementation ******************************************************************************/ package org.eclipse.ecf.internal.osgi.services.distribution; import java.util.Map; import org.osgi.framework.ServiceEvent; import org.osgi.framework.hooks.service.EventListenerHook; import org.osgi.service.remoteserviceadmin.EndpointEventListener; import org.osgi.service.remoteserviceadmin.RemoteServiceAdminEvent; import org.osgi.service.remoteserviceadmin.RemoteServiceAdminListener; public class BasicTopologyManagerComponent implements EventListenerHook, RemoteServiceAdminListener { private boolean exportRegisteredSvcs = new Boolean( System.getProperty("org.eclipse.ecf.osgi.services.basictopologymanager.exportRegisteredSvcs", "true")) //$NON-NLS-1$ //$NON-NLS-2$ .booleanValue(); private String exportRegisteredSvcsFilter = System.getProperty( "org.eclipse.ecf.osgi.services.basictopologymanager.exportRegisteredSvcsFilter", //$NON-NLS-1$ "(service.exported.interfaces=*)"); //$NON-NLS-1$ private String exportRegisteredSvcsClassname = System .getProperty("org.eclipse.ecf.osgi.services.basictopologymanager.exportRegisteredSvcsClassname"); //$NON-NLS-1$ private BasicTopologyManagerImpl basicTopologyManagerImpl; void bindEndpointEventListener(EndpointEventListener el) { if (el instanceof Activator.ProxyEndpointEventListener) basicTopologyManagerImpl = ((Activator.ProxyEndpointEventListener) el).getBasicTopologyManagerImpl(); else if (el instanceof BasicTopologyManagerImpl) basicTopologyManagerImpl = (BasicTopologyManagerImpl) el; } void unbindEndpointEventListener(EndpointEventListener el) { basicTopologyManagerImpl = null; } void activate() { if (basicTopologyManagerImpl == null) return; if (exportRegisteredSvcs) basicTopologyManagerImpl.exportRegisteredServices(exportRegisteredSvcsClassname, exportRegisteredSvcsFilter); } // RemoteServiceAdminListener impl public void remoteAdminEvent(RemoteServiceAdminEvent event) { if (basicTopologyManagerImpl == null) return; basicTopologyManagerImpl.handleRemoteAdminEvent(event); } // EventListenerHook impl public void event(ServiceEvent event, Map listeners) { if (basicTopologyManagerImpl == null) return; basicTopologyManagerImpl.event(event, listeners); } }