Changeset 8116


Ignore:
Timestamp:
Feb 21, 2023, 2:53:35 PM (7 months ago)
Author:
Nicklas Nordborg
Message:

References #2295: Add API for services to send log messages that can be displayed by the web client

Added ServiceLogger class and modified the ServiceControllerAction so that we can supply a logger from the BASE core. The logger currently only write to stdout and it deosn't know which extension it belongs to. This need to be fixed.

Location:
branches/3.19-stable/src/clients/web/net/sf/basedb/clients/web/extensions/service
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • branches/3.19-stable/src/clients/web/net/sf/basedb/clients/web/extensions/service/DummyService.java

    r6875 r8116  
    2525import java.util.TimerTask;
    2626
     27import net.sf.basedb.clients.web.extensions.service.ServiceLogger.LogLevel;
    2728import net.sf.basedb.core.Application;
    2829import net.sf.basedb.util.Values;
     
    8586  }
    8687
     88  @SuppressWarnings("deprecation")
    8789  @Override
    8890  public void start()
     91  {}
     92 
     93  @Override
     94  public void start(final ServiceLogger logger)
    8995  {
    9096    if (running) return;
     
    97103        public void run()
    98104        {
     105          logger.log(LogLevel.INFO, "Timeout expired!");
    99106          System.out.println(extensionId + ": " + new Date());
    100107        }
  • branches/3.19-stable/src/clients/web/net/sf/basedb/clients/web/extensions/service/ServiceControllerAction.java

    r4512 r8116  
    5050    is called on a running service it should do nothing. If the service can't
    5151    be started it may throw an exception.
     52    @deprecated In 3.19.8, implement the {@link #start(ServiceLogger)}
     53      method instead. This method will never be called from the BASE
     54      core except for the default implementation of {@link #start(ServiceLogger)}.
    5255  */
     56  @Deprecated
    5357  public void start();
     58 
     59  /**
     60    Start the service if it is not already running. If this method
     61    is called on a running service it should do nothing. If the service can't
     62    be started it may throw an exception.
     63    <p>
     64    The default implementation of this method simply call the {@link #start()}
     65    method.
     66   
     67    @param logger A logger that the service can use to send log message
     68      The system will automatically create "Service started/stopped"
     69      messages.
     70    @since 3.19.8
     71  */
     72  public default void start(ServiceLogger logger)
     73  {
     74    start();
     75  }
    5476 
    5577  /**
  • branches/3.19-stable/src/clients/web/net/sf/basedb/clients/web/extensions/service/StartServiceRenderer.java

    r6444 r8116  
    2222package net.sf.basedb.clients.web.extensions.service;
    2323
     24import net.sf.basedb.clients.web.extensions.service.ServiceLogger.LogLevel;
    2425import net.sf.basedb.util.extensions.Renderer;
    2526
     
    4849  {
    4950    log.info("Starting service: " + service);
    50     service.start();
     51    ServiceLogger logger = new ServiceLogger(); // TODO -- we need information about the extension!
     52    service.start(logger);
     53    logger.log(LogLevel.INFO, "Service started");
    5154    log.info("Starting service done: " + service);
    5255  }
  • branches/3.19-stable/src/clients/web/net/sf/basedb/clients/web/extensions/service/StopServiceRenderer.java

    r6444 r8116  
    2222package net.sf.basedb.clients.web.extensions.service;
    2323
     24import net.sf.basedb.clients.web.extensions.service.ServiceLogger.LogLevel;
    2425import net.sf.basedb.util.extensions.Renderer;
    2526
     
    5051    log.info("Stopping service: " + service);
    5152    service.stop();
     53    ServiceLogger logger = new ServiceLogger(); // TODO -- we need information about the extension!
     54    logger.log(LogLevel.INFO, "Service stopped");
    5255    log.info("Stopping service done: " + service);
    5356  }
Note: See TracChangeset for help on using the changeset viewer.