Package mx4j.examples.mbeans.legacy

Source Code of mx4j.examples.mbeans.legacy.LegacyExample

/*
* Copyright (C) The MX4J Contributors.
* All rights reserved.
*
* This software is distributed under the terms of the MX4J License version 1.0.
* See the terms of the MX4J License in the documentation provided with this software.
*/

package mx4j.examples.mbeans.legacy;

import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
import javax.management.Notification;
import javax.management.NotificationListener;
import javax.management.ObjectName;

/**
* This example aims to show how it is possible, with JMX, to write a non-invasive
* wrapper for an existing legacy service in order to expose the functionality
* of the legacy service with JMX.
*
* @version $Revision: 1.3 $
*/
public class LegacyExample
{
   public static void main(String[] args) throws Exception
   {
      // Create the service
      LegacyService legacyService = new LegacyService();

      // Create the JMX MBeanServer and register the service wrapper
      MBeanServer server = MBeanServerFactory.newMBeanServer();
      ObjectName serviceName = new ObjectName("examples", "mbean", "legacy");
      DynamicLegacyService dynamicService = new DynamicLegacyService(legacyService);
      server.registerMBean(dynamicService, serviceName);

      // Now register a listener: we want to be able to know when the service starts and stops
      server.addNotificationListener(serviceName, new NotificationListener()
      {
         public void handleNotification(Notification notification, Object handback)
         {
            System.out.println(notification);
         }
      }, null, null);

      // Now start the service, using the new method name: 'start' instead of 'execute'
      server.invoke(serviceName, "start", null, null);
   }

   /**
    * This is the old main routine that started the service.
    * In this example we had the possibility to modify the starter of the service
    * by renaming the main method and by writing a new one that uses JMX.
    * However, it is also possible to write another starter leaving the legacy part
    * totally unchanged.
    */
   public static void oldMain(String[] args)
   {
      LegacyService service = new LegacyService();
      service.execute();
   }
}
TOP

Related Classes of mx4j.examples.mbeans.legacy.LegacyExample

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.