| package org.eclipse.ecf.provider.internal.remoteservice.java8; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| import org.eclipse.core.runtime.IAdapterFactory; |
| import org.eclipse.core.runtime.IAdapterManager; |
| import org.eclipse.core.runtime.SafeRunner; |
| import org.eclipse.ecf.core.ContainerTypeDescription; |
| import org.eclipse.ecf.core.util.AdapterManagerTracker; |
| import org.eclipse.ecf.core.util.ExtensionRegistryRunnable; |
| import org.osgi.framework.BundleActivator; |
| import org.osgi.framework.BundleContext; |
| |
| public class Activator implements BundleActivator { |
| |
| private List<IAdapterFactory> rscAdapterFactories; |
| |
| private static IAdapterManager getAdapterManager(BundleContext ctx) { |
| AdapterManagerTracker t = new AdapterManagerTracker(ctx); |
| t.open(); |
| IAdapterManager am = t.getAdapterManager(); |
| t.close(); |
| return am; |
| } |
| |
| @Override |
| public void start(final BundleContext context) throws Exception { |
| SafeRunner.run(new ExtensionRegistryRunnable(context) { |
| protected void runWithoutRegistry() throws Exception { |
| context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8GenericContainerInstantiator.JAVA8_SERVER_NAME, new J8GenericContainerInstantiator(), "ECF Java8 Generic Server", true, false), null); //$NON-NLS-1$ |
| context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8GenericContainerInstantiator.JAVA8_CLIENT_NAME, new J8GenericContainerInstantiator(), "ECF Java8 Generic Client", false, false), null); //$NON-NLS-1$ |
| context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8SSLGenericContainerInstantiator.JAVA8_SSL_CLIENT_NAME, new J8SSLGenericContainerInstantiator(), "ECF Java8 SSL Generic Client", false, false), null); //$NON-NLS-1$ |
| context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(J8SSLGenericContainerInstantiator.JAVA8_SSL_SERVER_NAME, new J8SSLGenericContainerInstantiator(), "ECF Java8 SSL Generic Server", true, false), null); //$NON-NLS-1$ |
| IAdapterManager am = getAdapterManager(context); |
| if (am != null) { |
| rscAdapterFactories = new ArrayList<IAdapterFactory>(); |
| IAdapterFactory af = new J8RemoteServiceContainerAdapterFactory(); |
| am.registerAdapters(af, J8SSLServerSOContainer.class); |
| rscAdapterFactories.add(af); |
| af = new J8RemoteServiceContainerAdapterFactory(); |
| am.registerAdapters(af, J8TCPServerSOContainer.class); |
| rscAdapterFactories.add(af); |
| af = new J8RemoteServiceContainerAdapterFactory(); |
| am.registerAdapters(af, J8SSLClientSOContainer.class); |
| rscAdapterFactories.add(af); |
| af = new J8RemoteServiceContainerAdapterFactory(); |
| am.registerAdapters(af, J8TCPClientSOContainer.class); |
| rscAdapterFactories.add(af); |
| } |
| } |
| }); |
| |
| } |
| |
| @Override |
| public void stop(BundleContext context) throws Exception { |
| if (rscAdapterFactories != null) { |
| IAdapterManager am = getAdapterManager(context); |
| if (am != null) { |
| for (IAdapterFactory af : rscAdapterFactories) |
| am.unregisterAdapters(af); |
| } |
| } |
| } |
| |
| } |