]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.message/src/org/simantics/message/internal/Activator.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.message / src / org / simantics / message / internal / Activator.java
index 9d90c42410e2c528b7076e8d24e8d9dcbd06cd2f..30a0a169823fd2fc55b5791c21af0b64332a04b6 100644 (file)
-/*******************************************************************************\r
- * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
- * in Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- *     VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.message.internal;\r
-\r
-import java.io.File;\r
-import java.util.Hashtable;\r
-\r
-import org.eclipse.core.runtime.IPath;\r
-import org.eclipse.core.runtime.Plugin;\r
-import org.eclipse.osgi.framework.log.FrameworkLog;\r
-import org.osgi.framework.BundleContext;\r
-import org.osgi.framework.ServiceRegistration;\r
-import org.simantics.message.ILogListener;\r
-import org.simantics.message.ILogger;\r
-import org.simantics.message.IMessageSchemeManager;\r
-\r
-/**\r
- * The activator class controls the plug-in life cycle\r
- */\r
-@SuppressWarnings("restriction")\r
-public class Activator extends Plugin {\r
-\r
-    private static final String  DEFAULT_LOG_FILE_NAME = "messages.log";\r
-\r
-    // The plug-in ID\r
-    public static final String   PLUGIN_ID             = "org.simantics.message";\r
-\r
-    private static final String  LOGGER_NAME           = "org.simantics.message.logger"; //$NON-NLS-1$\r
-\r
-    // The shared instance\r
-    private static Activator     plugin;\r
-    private BundleContext        bundleContext;\r
-\r
-    // The one and only message service instance\r
-    private Messages             messagesService;\r
-    private MessageSchemeManager messageSchemeManagerService;\r
-\r
-    @SuppressWarnings("rawtypes")\r
-    private ServiceRegistration  messages              = null;\r
-    @SuppressWarnings("rawtypes")\r
-    private ServiceRegistration  messageSchemeManager  = null;\r
-\r
-    private LogWriter            platformLog           = null;\r
-    private FrameworkLog         frameworkLog          = null;\r
-\r
-    /**\r
-     * The constructor\r
-     */\r
-    public Activator() {\r
-    }\r
-\r
-    /*\r
-     * (non-Javadoc)\r
-     * \r
-     * @see\r
-     * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext\r
-     * )\r
-     */\r
-    @SuppressWarnings({ "rawtypes", "unchecked" })\r
-    @Override\r
-    public void start(BundleContext context) throws Exception {\r
-        super.start(context);\r
-        this.bundleContext = context;\r
-\r
-        messagesService = new Messages();\r
-        messageSchemeManagerService = new MessageSchemeManager();\r
-\r
-        messages = bundleContext.registerService(ILogger.class.getName(), messagesService, new Hashtable());\r
-        messageSchemeManager = bundleContext.registerService(IMessageSchemeManager.class.getName(), messageSchemeManagerService, new Hashtable<String, Object>());\r
-\r
-        // Attach a writer listener to the Messages ILog to actually get the logs stored on disk.\r
-        // NOTE: This must be the first listener for this ILog, to guarantee that the log on disk\r
-        // is always up-to-date if other ILogListeners want to read it. LogView does exactly this.\r
-        FrameworkLog log = getFrameworkLog();\r
-        if (log != null) {\r
-            platformLog = new LogWriter(getFrameworkLog());\r
-            addLogListener(platformLog);\r
-        } else\r
-            platformLog = null;\r
-\r
-        plugin = this;\r
-    }\r
-\r
-    /*\r
-     * (non-Javadoc)\r
-     * \r
-     * @see\r
-     * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext\r
-     * )\r
-     */\r
-    @Override\r
-    public void stop(BundleContext context) throws Exception {\r
-        if (platformLog != null)\r
-            removeLogListener(platformLog);\r
-        if (frameworkLog != null)\r
-            frameworkLog.close();\r
-\r
-        if (messageSchemeManager != null) {\r
-            messageSchemeManager.unregister();\r
-            messageSchemeManager = null;\r
-            messageSchemeManagerService = null;\r
-        }\r
-\r
-        if (messages != null) {\r
-            messages.unregister();\r
-            messages = null;\r
-            messagesService = null;\r
-        }\r
-\r
-        bundleContext = null;\r
-        plugin = null;\r
-        super.stop(context);\r
-    }\r
-\r
-    /**\r
-     * Returns the shared instance\r
-     * \r
-     * @return the shared instance\r
-     */\r
-    public static Activator getDefault() {\r
-        return plugin;\r
-    }\r
-\r
-    /**\r
-     * Returns the shared Simantics ILogger service instance.\r
-     * \r
-     * @return the shared message service\r
-     */\r
-    public ILogger getMessages() {\r
-        return messagesService;\r
-    }\r
-\r
-    /**\r
-     * Add a listener to the Simantics platform ILogger service.\r
-     */\r
-    public void addLogListener(ILogListener listener) {\r
-        getMessages().addLogListener(listener);\r
-    }\r
-\r
-    /**\r
-     * Remove a listener from the Simantics platform ILogger service.\r
-     */\r
-    public void removeLogListener(ILogListener listener) {\r
-        getMessages().removeLogListener(listener);\r
-    }\r
-\r
-    /**\r
-     * @return\r
-     */\r
-    private FrameworkLog getFrameworkLog() {\r
-        if (frameworkLog == null) {\r
-            // TODO: make this a configurable preference, just like the osgi.logfile preference\r
-            IPath logLocation = getStateLocation().append(DEFAULT_LOG_FILE_NAME);\r
-            // TODO: need to clone EquinoxLogWriter and EquinoxLogFactory to this plugin\r
-//            EquinoxLogWriter logWriter = new EclipseLogWriter(logLocation.toFile(), LOGGER_NAME, true);\r
-//            LogServiceManager logServiceManager = new LogServiceManager(logWriter);\r
-//            EquinoxLogFactory logFactory = new EquinoxLogFactory(logWriter, logServiceManager);\r
-//            frameworkLog = logFactory.getService(getBundle(), null);\r
-        }\r
-        return frameworkLog;\r
-    }\r
-\r
-    /**\r
-     * @return\r
-     */\r
-    public static File getLogFile() {\r
-        return getDefault().getFrameworkLog().getFile();\r
-    }\r
-\r
-    /**\r
-     * Returns the shared Simantics ILogger service instance.\r
-     * \r
-     * @return the shared message service\r
-     */\r
-    public IMessageSchemeManager getMessageSchemeManager() {\r
-        return messageSchemeManagerService;\r
-    }\r
-\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Association for Decentralized Information Management
+ * in Industry THTH ry.
+ * 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:
+ *     VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.message.internal;
+
+import java.io.File;
+import java.util.Hashtable;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.osgi.framework.log.FrameworkLog;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+import org.simantics.message.ILogListener;
+import org.simantics.message.ILogger;
+import org.simantics.message.IMessageSchemeManager;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+@SuppressWarnings("restriction")
+public class Activator extends Plugin {
+
+    private static final String  DEFAULT_LOG_FILE_NAME = "messages.log";
+
+    // The plug-in ID
+    public static final String   PLUGIN_ID             = "org.simantics.message";
+
+    private static final String  LOGGER_NAME           = "org.simantics.message.logger"; //$NON-NLS-1$
+
+    // The shared instance
+    private static Activator     plugin;
+    private BundleContext        bundleContext;
+
+    // The one and only message service instance
+    private Messages             messagesService;
+    private MessageSchemeManager messageSchemeManagerService;
+
+    @SuppressWarnings("rawtypes")
+    private ServiceRegistration  messages              = null;
+    @SuppressWarnings("rawtypes")
+    private ServiceRegistration  messageSchemeManager  = null;
+
+    private LogWriter            platformLog           = null;
+    private FrameworkLog         frameworkLog          = null;
+
+    /**
+     * The constructor
+     */
+    public Activator() {
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
+     * )
+     */
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    @Override
+    public void start(BundleContext context) throws Exception {
+        super.start(context);
+        this.bundleContext = context;
+
+        messagesService = new Messages();
+        messageSchemeManagerService = new MessageSchemeManager();
+
+        messages = bundleContext.registerService(ILogger.class.getName(), messagesService, new Hashtable());
+        messageSchemeManager = bundleContext.registerService(IMessageSchemeManager.class.getName(), messageSchemeManagerService, new Hashtable<String, Object>());
+
+        // Attach a writer listener to the Messages ILog to actually get the logs stored on disk.
+        // NOTE: This must be the first listener for this ILog, to guarantee that the log on disk
+        // is always up-to-date if other ILogListeners want to read it. LogView does exactly this.
+        FrameworkLog log = getFrameworkLog();
+        if (log != null) {
+            platformLog = new LogWriter(getFrameworkLog());
+            addLogListener(platformLog);
+        } else
+            platformLog = null;
+
+        plugin = this;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
+     * )
+     */
+    @Override
+    public void stop(BundleContext context) throws Exception {
+        if (platformLog != null)
+            removeLogListener(platformLog);
+        if (frameworkLog != null)
+            frameworkLog.close();
+
+        if (messageSchemeManager != null) {
+            messageSchemeManager.unregister();
+            messageSchemeManager = null;
+            messageSchemeManagerService = null;
+        }
+
+        if (messages != null) {
+            messages.unregister();
+            messages = null;
+            messagesService = null;
+        }
+
+        bundleContext = null;
+        plugin = null;
+        super.stop(context);
+    }
+
+    /**
+     * Returns the shared instance
+     * 
+     * @return the shared instance
+     */
+    public static Activator getDefault() {
+        return plugin;
+    }
+
+    /**
+     * Returns the shared Simantics ILogger service instance.
+     * 
+     * @return the shared message service
+     */
+    public ILogger getMessages() {
+        return messagesService;
+    }
+
+    /**
+     * Add a listener to the Simantics platform ILogger service.
+     */
+    public void addLogListener(ILogListener listener) {
+        getMessages().addLogListener(listener);
+    }
+
+    /**
+     * Remove a listener from the Simantics platform ILogger service.
+     */
+    public void removeLogListener(ILogListener listener) {
+        getMessages().removeLogListener(listener);
+    }
+
+    /**
+     * @return
+     */
+    private FrameworkLog getFrameworkLog() {
+        if (frameworkLog == null) {
+            // TODO: make this a configurable preference, just like the osgi.logfile preference
+            IPath logLocation = getStateLocation().append(DEFAULT_LOG_FILE_NAME);
+            // TODO: need to clone EquinoxLogWriter and EquinoxLogFactory to this plugin
+//            EquinoxLogWriter logWriter = new EclipseLogWriter(logLocation.toFile(), LOGGER_NAME, true);
+//            LogServiceManager logServiceManager = new LogServiceManager(logWriter);
+//            EquinoxLogFactory logFactory = new EquinoxLogFactory(logWriter, logServiceManager);
+//            frameworkLog = logFactory.getService(getBundle(), null);
+        }
+        return frameworkLog;
+    }
+
+    /**
+     * @return
+     */
+    public static File getLogFile() {
+        return getDefault().getFrameworkLog().getFile();
+    }
+
+    /**
+     * Returns the shared Simantics ILogger service instance.
+     * 
+     * @return the shared message service
+     */
+    public IMessageSchemeManager getMessageSchemeManager() {
+        return messageSchemeManagerService;
+    }
+
+}