Package org.eclipse.ecf.internal.examples.provider.trivial

Source Code of org.eclipse.ecf.internal.examples.provider.trivial.Activator

package org.eclipse.ecf.internal.examples.provider.trivial;

import org.eclipse.core.runtime.SafeRunner;
import org.eclipse.ecf.core.ContainerTypeDescription;
import org.eclipse.ecf.core.identity.Namespace;
import org.eclipse.ecf.core.provider.IContainerInstantiator;
import org.eclipse.ecf.core.util.ExtensionRegistryRunnable;
import org.eclipse.ecf.examples.provider.trivial.identity.TrivialNamespace;
import org.eclipse.ecf.internal.examples.provider.trivial.container.TrivialContainerInstantiator;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;

/**
* The activator class controls the plug-in life cycle
*/
public class Activator implements BundleActivator {

  // The plug-in ID
  public static final String PLUGIN_ID = "org.eclipse.ecf.internal.examples.provider.trivial";

  // The shared instance
  private static Activator plugin;

  private BundleContext context;
 
  /**
   * The constructor
   */
  public Activator() {
  }

  /*
   * (non-Javadoc)
   * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)
   */
  public void start(BundleContext context) throws Exception {
    this.context = context;
    plugin = this;
    SafeRunner.run(new ExtensionRegistryRunnable(this.context) {
      protected void runWithoutRegistry() throws Exception {
        // If we don't have a registry, then register trivial namespace
        Activator.this.context.registerService(Namespace.class,
            new TrivialNamespace(TrivialNamespace.NAME), null);
        // And create and register ContainerTypeDescription
        Activator.this.context
            .registerService(
                ContainerTypeDescription.class,
                new ContainerTypeDescription(
                    TrivialContainerInstantiator.NAME,
                    (IContainerInstantiator) new TrivialContainerInstantiator()),
                null);
      }
    });
  }

  /*
   * (non-Javadoc)
   * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
   */
  public void stop(BundleContext context) throws Exception {
    plugin = null;
    this.context = null;
  }

  /**
   * Returns the shared instance
   *
   * @return the shared instance
   */
  public static Activator getDefault() {
    return plugin;
  }

  public BundleContext getContext() {
    return context;
  }
}
TOP

Related Classes of org.eclipse.ecf.internal.examples.provider.trivial.Activator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.