import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceRegistration; public class ClusterNodeActivator implements BundleActivator { private ServiceRegistration<?> registration; public void start(BundleContext bundleContext) { ClusterManager clusterManager = new ClusterManagerImpl(); registration = bundleContext.registerService(ClusterManager.class.getName(), clusterManager, null); } public void stop(BundleContext bundleContext) { registration.unregister(); } } import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; import org.osgi.util.tracker.ServiceTracker; public class Client { private ServiceTracker<ClusterManager, ClusterManager> tracker; public Client(BundleContext bundleContext) { tracker = new ServiceTracker<>(bundleContext, ClusterManager.class, null); tracker.open(); } public void makeRequest() { ClusterManager clusterManager = tracker.getService(); if (clusterManager != null) { NodeInfo node = clusterManager.selectNode(); node.sendRequest(); } } public void destroy() { tracker.close(); } } public class NodeMonitorImpl implements NodeMonitor { public void nodeFailed(NodeInfo node) { } public void nodeRecovered(NodeInfo node) { } }


上一篇:
下一篇:
切换中文