/** * Copyright 2014 Liverpool John Moores University <http://www.ljmu.ac.uk/cmp/> * Aniketos Project FP7-ICT-257930 <http://www.aniketos.eu> * David Llewellyn-Jones <D.Llewellyn-Jones@ljmu.ac.uk> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see <http://www.gnu.org/licenses/>. * */ package eu.aniketos.ncvm.userinterface; import java.net.URL; import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Platform; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.resource.ImageRegistry; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; import eu.aniketos.ncvm.userinterface.views.Register; import eu.aniketos.ncvm.userinterface.views.Settings; /** * The activator class controls the plug-in life cycle */ public class Activator extends AbstractUIPlugin { // The plug-in ID public static final String PLUGIN_ID = "eu.aniketos.ncvm.userinterface"; //$NON-NLS-1$ public static final String IMG_NCVM_CONFIGURE = "ncvm-configure.image"; public static final String IMG_NCVM_ANIKETOS_SMALL = "ncvm-aniketos-small.image"; // The shared instance private static Activator plugin; private static BundleContext context = null; private Register registration; private Settings settings; /** * The constructor */ public Activator() { } /* * (non-Javadoc) * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) */ public void start(BundleContext bundleContext) throws Exception { plugin = this; Activator.context = bundleContext; settings = new Settings(); registration = new Register(); registration.RegisterServce(); getPreferenceStore().setDefault("bpmn2", "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<bpmn2:definitions xmlns:bpmn2=\"http://www.omg.org/spec/BPMN/20100524/MODEL\" id=\"__qGLsHWwEeKGRoZvDGwPaQ\">\n <bpmn2:process id=\"_theProcess\">\n <bpmn2:startEvent id=\"_theStart\"/>\n <bpmn2:serviceTask id=\"_serviceTask1\" name=\"\"/>\n <bpmn2:serviceTask id=\"_serviceTask2\"/>\n <bpmn2:userTask id=\"_userTask\"/>\n <bpmn2:serviceTask id=\"_serviceTask3\"/>\n <bpmn2:endEvent id=\"_theEnd\"/>\n </bpmn2:process>\n</bpmn2:definitions>\n"); getPreferenceStore().setDefault("conspec", "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<specification id=\"Integrity_MD5\" noNamespaceSchemaLocation=\"xsd_aniketos.xsd\">\n <maxint>32000</maxint>\n <maxlen>1000</maxlen>\n <scope>Session</scope>\n <securitystate>\n <declaration>\n <type>string</type>\n <identifier>md5_hash</identifier>\n <value><sconst>_</sconst></value>\n </declaration>\n <declaration>\n <type>string</type>\n <identifier>guardedSender</identifier>\n <value><sconst>telco_operator_customer</sconst></value>\n </declaration>\n </securitystate>\n <rule>\n <before>\n <identifier>ProcessingService.IProcessInput.getUserProfile</identifier>\n <parameter>\n <type>string</type>\n <identifier>sender</identifier>\n </parameter>\n <parameter>\n <type>string</type>\n <identifier>data</identifier>\n </parameter>\n </before>\n <perform>\n <reaction>\n <guard>\n <s_equal>\n <s_identifier>guardedSender</s_identifier>\n <s_identifier>sender</s_identifier>\n </s_equal>\n </guard>\n <update>\n <assign>\n <s_identifier>md5_hash</s_identifier>\n <value>\n <invocation>\n <s_identifier>MD5Hash</s_identifier>\n <s_identifier>result</s_identifier>\n <argument>\n <s_identifier>data</s_identifier>\n </argument>\n </invocation>\n </value>\n </assign>\n </update>\n </reaction>\n <reaction>\n <guard>\n <not>\n <s_equal>\n <s_identifier>guardedSender</s_identifier>\n <s_identifier>sender</s_identifier>\n </s_equal>\n </not>\n </guard>\n <update/>\n </reaction>\n </perform>\n </rule>\n <rule>\n <before>\n <identifier>getUserProfileImplementation</identifier>\n <parameter>\n <type>string</type>\n <identifier>sender</identifier>\n </parameter>\n <parameter>\n <type>string</type>\n <identifier>data</identifier>\n </parameter>\n </before>\n <perform>\n <reaction>\n <guard>\n <and>\n <s_equal>\n <s_identifier>guardedSender</s_identifier>\n <s_identifier>sender</s_identifier>\n </s_equal>\n <s_equal>\n <s_identifier>md5_hash</s_identifier>\n <invocation>\n <s_identifier>MD5Hash</s_identifier>\n <s_identifier>result</s_identifier>\n <argument>\n <s_identifier>data</s_identifier>\n </argument>\n </invocation>\n </s_equal>\n </and>\n </guard>\n <update/>\n </reaction>\n <reaction>\n <guard>\n <not>\n <s_equal>\n <s_identifier>guardedSender</s_identifier>\n <s_identifier>sender</s_identifier>\n </s_equal>\n </not>\n </guard>\n <update/>\n </reaction>\n </perform>\n </rule>\n</specification>\n"); } public String getPrefString(String key) { return getPreferenceStore().getString(key); } public void setPrefString(String key, String value) { getPreferenceStore().setValue(key, value); } public String resetPref(String key) { String value = getPreferenceStore().getDefaultString(key); getPreferenceStore().setValue(key, value); return value; } /* * (non-Javadoc) * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) */ public void stop(BundleContext context) throws Exception { registration.DeRegisterService(); plugin = null; super.stop(context); } /** * Returns the shared instance * * @return the shared instance */ public static Activator getDefault() { return plugin; } public static BundleContext getContext() { return context; } /** * Returns the shared settings * * @return the shared settings */ public Settings getSettings() { return settings; } public String getAddress() { return settings.getRegisterAddress() + "?wsdl"; } public void reRegister () { registration.RegisterServce(); } /** * Returns an image descriptor for the image file at the given * plug-in relative path * * @param path the path * @return the image descriptor */ public static ImageDescriptor getImageDescriptor(String path) { return imageDescriptorFromPlugin(PLUGIN_ID, path); } public NCVMFeedback getNCVMFeedback () { return registration.getNCVMFeedback(); } protected void initializeImageRegistry(ImageRegistry registry) { IPath path; URL url; ImageDescriptor desc; Bundle bundle = Platform.getBundle(PLUGIN_ID); path = new Path("icons/configure.gif"); url = FileLocator.find(bundle, path, null); desc = ImageDescriptor.createFromURL(url); registry.put(IMG_NCVM_CONFIGURE, desc); path = new Path("icons/aniketos-small.png"); url = FileLocator.find(bundle, path, null); desc = ImageDescriptor.createFromURL(url); registry.put(IMG_NCVM_ANIKETOS_SMALL, desc); } public void assignSettings(Settings newSettings) { Settings currentSettings = Activator.getDefault().getSettings(); String address; boolean useTracker; boolean registerAuto; address = newSettings.getNcvmAddress(); useTracker = newSettings.isNcvmTracker(); currentSettings.setNcvmAddress(address); currentSettings.setNcvmTracker(useTracker); Activator.getDefault().setPrefString("ncvmAddress", address); Activator.getDefault().getPreferenceStore().setValue("ncvmTracker", useTracker); address = newSettings.getPvmAddress(); useTracker = newSettings.isPvmTracker(); currentSettings.setPvmAddress(address); currentSettings.setPvmTracker(useTracker); Activator.getDefault().setPrefString("pvmAddress", address); Activator.getDefault().getPreferenceStore().setValue("pvmTracker", useTracker); address = newSettings.getCsvmAddress(); useTracker = newSettings.isCsvmTracker(); currentSettings.setCsvmAddress(address); currentSettings.setCsvmTracker(useTracker); Activator.getDefault().setPrefString("csvmAddress", address); Activator.getDefault().getPreferenceStore().setValue("csvmTracker", useTracker); address = newSettings.getSpdmAddress(); useTracker = newSettings.isSpdmTracker(); currentSettings.setSpdmAddress(address); currentSettings.setSpdmTracker(useTracker); Activator.getDefault().setPrefString("spdmAddress", address); Activator.getDefault().getPreferenceStore().setValue("spdmTracker", useTracker); address = newSettings.getMarketplaceAddress(); useTracker = newSettings.isMarketplaceTracker(); currentSettings.setMarketplaceAddress(address); currentSettings.setMarketplaceTracker(useTracker); Activator.getDefault().setPrefString("marketplaceAddress", address); Activator.getDefault().getPreferenceStore().setValue("marketplaceTracker", useTracker); address = newSettings.getRegisterAddress(); registerAuto = newSettings.isRegisterAuto(); currentSettings.setRegisterAddress(address); currentSettings.setRegisterAuto(registerAuto); Activator.getDefault().setPrefString("registerAddress", address);; Activator.getDefault().getPreferenceStore().setValue("registerAuto", registerAuto); } }