/* * Jitsi, the OpenSource Java VoIP and Instant Messaging client. * * Distributable under LGPL license. * See terms of license at gnu.org. */ package net.java.sip.communicator.impl.replacement.smiley; import java.util.*; import net.java.sip.communicator.service.replacement.*; import net.java.sip.communicator.service.replacement.smilies.*; import net.java.sip.communicator.util.*; import org.jitsi.service.resources.*; import org.osgi.framework.*; /** * Activator for the Smiley source bundle. * @author Purvesh Sahoo */ public class SmileyActivator implements BundleActivator { /** * The Logger used by the SmileyActivator * class. */ private static final Logger logger = Logger.getLogger(SmileyActivator.class); /** * The currently valid bundle context. */ private static BundleContext bundleContext = null; /** * The resources service */ private static ResourceManagementService resourcesService; /** * The smileyy service registration. */ private ServiceRegistration smileyServReg = null; /** * The source implementation reference. */ private static ReplacementService smileySource = null; /** * Starts the Smiley replacement source bundle * * @param context the BundleContext as provided from the OSGi * framework * @throws Exception if anything goes wrong */ public void start(BundleContext context) throws Exception { bundleContext = context; Hashtable hashtable = new Hashtable(); hashtable.put(ReplacementService.SOURCE_NAME, ReplacementServiceSmileyImpl.SMILEY_SOURCE); smileySource = new ReplacementServiceSmileyImpl(); smileyServReg = context.registerService(SmiliesReplacementService.class.getName(), smileySource, hashtable); smileyServReg = context.registerService(ReplacementService.class.getName(), smileySource, hashtable); logger.info("Smiley source implementation [STARTED]."); } /** * Unregisters the Smiley replacement service. * * @param context BundleContext * @throws Exception if anything goes wrong */ public void stop(BundleContext context) throws Exception { smileyServReg.unregister(); logger.info("Smiley source implementation [STOPPED]."); } /** * Returns the ResourceManagementService, through which we will * access all resources. * * @return the ResourceManagementService, through which we will * access all resources. */ public static ResourceManagementService getResources() { if (resourcesService == null) { ServiceReference serviceReference = bundleContext .getServiceReference(ResourceManagementService.class .getName()); if (serviceReference == null) return null; resourcesService = (ResourceManagementService) bundleContext .getService(serviceReference); } return resourcesService; } }