extensions/net.sf.basedb.opengrid/trunk/src/net/sf/basedb/opengrid/service/OpenGridServiceFactory.java

Code
Comments
Other
Rev Date Author Line
4203 02 Nov 16 nicklas 1 package net.sf.basedb.opengrid.service;
4203 02 Nov 16 nicklas 2
4203 02 Nov 16 nicklas 3 import net.sf.basedb.clients.web.extensions.service.ServiceControllerAction;
4203 02 Nov 16 nicklas 4 import net.sf.basedb.core.SessionControl;
4203 02 Nov 16 nicklas 5 import net.sf.basedb.util.extensions.ActionFactory;
4203 02 Nov 16 nicklas 6 import net.sf.basedb.util.extensions.Extension;
4203 02 Nov 16 nicklas 7 import net.sf.basedb.util.extensions.InvokationContext;
4203 02 Nov 16 nicklas 8
4203 02 Nov 16 nicklas 9 /**
4203 02 Nov 16 nicklas 10   Action factory and service controller for the {@link OpenGridService}. This
4203 02 Nov 16 nicklas 11   hooks into the BASE web client's "services" extension point making it
4203 02 Nov 16 nicklas 12   possible to start and stop the service from the web interface.
4296 12 Jan 17 nicklas 13   Do not use this class from other extensions.
4203 02 Nov 16 nicklas 14
4203 02 Nov 16 nicklas 15   @author nicklas
4203 02 Nov 16 nicklas 16   @since 1.0
4203 02 Nov 16 nicklas 17 */
4203 02 Nov 16 nicklas 18 public class OpenGridServiceFactory 
4203 02 Nov 16 nicklas 19   implements ActionFactory<ServiceControllerAction>
4203 02 Nov 16 nicklas 20 {
4203 02 Nov 16 nicklas 21
4203 02 Nov 16 nicklas 22   
4203 02 Nov 16 nicklas 23   public OpenGridServiceFactory()
4203 02 Nov 16 nicklas 24   {}
4203 02 Nov 16 nicklas 25   
4203 02 Nov 16 nicklas 26   /*
4203 02 Nov 16 nicklas 27     From the ActionFactory interface
4203 02 Nov 16 nicklas 28     --------------------------------
4203 02 Nov 16 nicklas 29   */
4203 02 Nov 16 nicklas 30   @Override
4203 02 Nov 16 nicklas 31   public boolean prepareContext(InvokationContext<? super ServiceControllerAction> context) 
4203 02 Nov 16 nicklas 32   {
4203 02 Nov 16 nicklas 33     return true;
4203 02 Nov 16 nicklas 34   }
4203 02 Nov 16 nicklas 35
4203 02 Nov 16 nicklas 36   @Override
4203 02 Nov 16 nicklas 37   public ServiceControllerAction[] getActions(InvokationContext<? super ServiceControllerAction> context)
4203 02 Nov 16 nicklas 38   {
4203 02 Nov 16 nicklas 39     SessionControl sc = context.getClientContext().getSessionControl();
4203 02 Nov 16 nicklas 40     return new ServiceControllerAction[] { new OpenGridServiceControllerAction(sc, context.getExtension()) };
4203 02 Nov 16 nicklas 41   }
4203 02 Nov 16 nicklas 42   // ---------------------------------------------
4203 02 Nov 16 nicklas 43
4203 02 Nov 16 nicklas 44   static class OpenGridServiceControllerAction
4203 02 Nov 16 nicklas 45     implements ServiceControllerAction
4203 02 Nov 16 nicklas 46   {
4203 02 Nov 16 nicklas 47     private final SessionControl sc;
4203 02 Nov 16 nicklas 48     private final Extension<ServiceControllerAction> ext;
4203 02 Nov 16 nicklas 49     
4203 02 Nov 16 nicklas 50     @SuppressWarnings({ "unchecked", "rawtypes" })
4203 02 Nov 16 nicklas 51     OpenGridServiceControllerAction(SessionControl sc, Extension ext)
4203 02 Nov 16 nicklas 52     {
4203 02 Nov 16 nicklas 53       this.sc = sc;
4203 02 Nov 16 nicklas 54       this.ext = (Extension<ServiceControllerAction>)ext;
4203 02 Nov 16 nicklas 55     }
4203 02 Nov 16 nicklas 56     
4203 02 Nov 16 nicklas 57     /*
4203 02 Nov 16 nicklas 58       From the ServiceControllerAction interface
4203 02 Nov 16 nicklas 59       ------------------------------------------
4203 02 Nov 16 nicklas 60     */
4203 02 Nov 16 nicklas 61     @Override
4203 02 Nov 16 nicklas 62     public boolean isRunning()
4203 02 Nov 16 nicklas 63     {
4203 02 Nov 16 nicklas 64       return OpenGridService.getInstance().isRunning();
4203 02 Nov 16 nicklas 65     }
4203 02 Nov 16 nicklas 66   
4203 02 Nov 16 nicklas 67     @Override
4203 02 Nov 16 nicklas 68     public void start() 
4203 02 Nov 16 nicklas 69     {
4203 02 Nov 16 nicklas 70       OpenGridService.getInstance().start(sc, ext);
4203 02 Nov 16 nicklas 71     }
4203 02 Nov 16 nicklas 72   
4203 02 Nov 16 nicklas 73     @Override
4203 02 Nov 16 nicklas 74     public void stop() 
4203 02 Nov 16 nicklas 75     {
4203 02 Nov 16 nicklas 76       OpenGridService.getInstance().stop();
4203 02 Nov 16 nicklas 77     }
4203 02 Nov 16 nicklas 78     // --------------------------------------
4203 02 Nov 16 nicklas 79   
4203 02 Nov 16 nicklas 80     @Override
4203 02 Nov 16 nicklas 81     public String toString() 
4203 02 Nov 16 nicklas 82     {
5986 10 Jul 20 nicklas 83       return "Job scheduler service";
4203 02 Nov 16 nicklas 84     }
4203 02 Nov 16 nicklas 85   }
4203 02 Nov 16 nicklas 86
4203 02 Nov 16 nicklas 87 }