Changeset 8117


Ignore:
Timestamp:
Feb 22, 2023, 8:58:38 AM (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 a new render() method to the Renderer interface that provide information about the extension an action belongs to. A default implementation has been provided so existing implementation should still work.

Existing implementations in BASE have been updated to the new API.

Location:
branches/3.19-stable/src
Files:
1 added
18 edited

Legend:

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

    r5490 r8117  
    2222package net.sf.basedb.clients.web.extensions.edit;
    2323
    24 import net.sf.basedb.util.extensions.Renderer;
     24import net.sf.basedb.util.extensions.AbstractRenderer;
     25import net.sf.basedb.util.extensions.Extension;
    2526
    2627/**
     
    3334*/
    3435public abstract class OnSaveRenderer
    35   implements Renderer<OnSaveAction>
     36  extends AbstractRenderer<OnSaveAction>
    3637{
    3738
     
    4344  {
    4445    @Override
    45     public void render(OnSaveAction action)
     46    public void render(OnSaveAction action, Extension<? extends OnSaveAction> ext)
    4647    {
    4748      action.onSave();
     
    5758    {
    5859      @Override
    59       public void render(OnSaveAction action)
     60      public void render(OnSaveAction action, Extension<? extends OnSaveAction> ext)
    6061      {
    6162        action.onCommit();
     
    7273    {
    7374      @Override
    74       public void render(OnSaveAction action)
     75      public void render(OnSaveAction action, Extension<? extends OnSaveAction> ext)
    7576      {
    7677        action.onRollback(ex);
  • branches/3.19-stable/src/clients/web/net/sf/basedb/clients/web/extensions/list/ListColumnExportRenderer.java

    r6875 r8117  
    2323
    2424import net.sf.basedb.core.ItemContext;
    25 import net.sf.basedb.util.extensions.Renderer;
     25import net.sf.basedb.util.extensions.AbstractRenderer;
     26import net.sf.basedb.util.extensions.Extension;
    2627import net.sf.basedb.util.formatter.Formatter;
    2728
     
    4142*/
    4243public class ListColumnExportRenderer<I>
    43   implements Renderer<ListColumnAction<I, ?>>
     44  extends AbstractRenderer<ListColumnAction<I, ?>>
    4445{
    4546
     
    5657  */
    5758  @Override
    58   public void render(ListColumnAction<I, ?> action)
     59  public void render(ListColumnAction<I, ?> action, Extension<? extends ListColumnAction<I, ?>> ext)
    5960  {
    6061    if (action.isExportable())
  • branches/3.19-stable/src/clients/web/net/sf/basedb/clients/web/extensions/renderer/PrefixSuffixRenderer.java

    r4871 r8117  
    2828import net.sf.basedb.clients.web.extensions.JspContext;
    2929import net.sf.basedb.util.extensions.Action;
     30import net.sf.basedb.util.extensions.Extension;
    3031import net.sf.basedb.util.extensions.Renderer;
    3132import net.sf.basedb.util.extensions.WrappingRenderer;
     
    8081    -------------------------------
    8182  */
     83  @Deprecated
    8284  @Override
    8385  public void render(A action)
     
    8890      if (prefix != null) writer.print(prefix);
    8991      if (parent != null) parent.render(action);
     92      if (suffix != null) writer.print(suffix);
     93    }
     94    catch (IOException ex)
     95    {
     96      throw new RuntimeException(ex);
     97    }
     98  }
     99 
     100  @Override
     101  public void render(A action, Extension<? extends A> ext)
     102  {
     103    JspWriter writer = context.getOut();
     104    try
     105    {
     106      if (prefix != null) writer.print(prefix);
     107      if (parent != null) parent.render(action, ext);
    90108      if (suffix != null) writer.print(suffix);
    91109    }
  • branches/3.19-stable/src/clients/web/net/sf/basedb/clients/web/extensions/service/DummyService.java

    r8116 r8117  
    8585    return running;
    8686  }
    87 
    88   @SuppressWarnings("deprecation")
    89   @Override
    90   public void start()
    91   {}
    9287 
    9388  @Override
  • branches/3.19-stable/src/clients/web/net/sf/basedb/clients/web/extensions/service/ServiceControllerAction.java

    r8116 r8117  
    5555  */
    5656  @Deprecated
    57   public void start();
     57  public default void start()
     58  {}
    5859 
    5960  /**
  • branches/3.19-stable/src/clients/web/net/sf/basedb/clients/web/extensions/service/ServiceLogger.java

    r8116 r8117  
    1919public class ServiceLogger
    2020{
     21  private final String extensionId;
    2122 
    22   ServiceLogger()
    23   {}
     23  ServiceLogger(String extensionId)
     24  {
     25    this.extensionId = extensionId;
     26  }
    2427 
    2528  public void log(LogLevel level, String msg)
    2629  {
    2730    // TODO
    28     System.out.println(level.name()+": "+msg);
     31    System.out.println(extensionId+" [" + level.name()+"]: "+msg);
    2932  }
    3033 
     
    3235  {
    3336    // TODO
    34     System.out.println(level.name()+": "+msg);
     37    System.out.println(extensionId+" [" + level.name()+"]: "+msg);
    3538    if (stacktrace != null)
    3639    {
  • branches/3.19-stable/src/clients/web/net/sf/basedb/clients/web/extensions/service/ServicesEventHandler.java

    r6875 r8117  
    5656  public void handleEvent(EventType event, ExtensionPoint<?> extensionPoint, Extension<?> extension)
    5757  {
     58    System.out.println("handleEvent:"+event+": " + extension.getId());
    5859    if (log.isInfoEnabled())
    5960    {
  • branches/3.19-stable/src/clients/web/net/sf/basedb/clients/web/extensions/service/StartServiceRenderer.java

    r8116 r8117  
    2323
    2424import net.sf.basedb.clients.web.extensions.service.ServiceLogger.LogLevel;
    25 import net.sf.basedb.util.extensions.Renderer;
     25import net.sf.basedb.util.extensions.AbstractRenderer;
     26import net.sf.basedb.util.extensions.Extension;
    2627
    2728/**
     
    3435*/
    3536public class StartServiceRenderer
    36   implements Renderer<ServiceControllerAction>
     37  extends AbstractRenderer<ServiceControllerAction>
    3738{
    3839  private static final org.slf4j.Logger log =
     
    4647  */
    4748  @Override
    48   public void render(ServiceControllerAction service)
     49  public void render(ServiceControllerAction service, Extension<? extends ServiceControllerAction> ext)
    4950  {
    5051    log.info("Starting service: " + service);
    51     ServiceLogger logger = new ServiceLogger(); // TODO -- we need information about the extension!
     52    ServiceLogger logger = new ServiceLogger(ext.getId());
    5253    service.start(logger);
    5354    logger.log(LogLevel.INFO, "Service started");
  • branches/3.19-stable/src/clients/web/net/sf/basedb/clients/web/extensions/service/StopServiceRenderer.java

    r8116 r8117  
    2323
    2424import net.sf.basedb.clients.web.extensions.service.ServiceLogger.LogLevel;
    25 import net.sf.basedb.util.extensions.Renderer;
     25import net.sf.basedb.util.extensions.Extension;
     26import net.sf.basedb.util.extensions.AbstractRenderer;
    2627
    2728/**
     
    3435 */
    3536public class StopServiceRenderer
    36   implements Renderer<ServiceControllerAction>
     37  extends AbstractRenderer<ServiceControllerAction>
    3738{
    3839
     
    4748  */
    4849  @Override
    49   public void render(ServiceControllerAction service)
     50  public void render(ServiceControllerAction service, Extension<? extends ServiceControllerAction> ext)
    5051  {
    5152    log.info("Stopping service: " + service);
    5253    service.stop();
    53     ServiceLogger logger = new ServiceLogger(); // TODO -- we need information about the extension!
     54    ServiceLogger logger = new ServiceLogger(ext.getId()); // TODO -- we need information about the extension!
    5455    logger.log(LogLevel.INFO, "Service stopped");
    5556    log.info("Stopping service done: " + service);
  • branches/3.19-stable/src/clients/web/net/sf/basedb/clients/web/extensions/toolbar/CompactButtonRenderer.java

    r7759 r8117  
    2828import net.sf.basedb.clients.web.extensions.JspContext;
    2929import net.sf.basedb.clients.web.util.HTML;
    30 import net.sf.basedb.util.extensions.Renderer;
     30import net.sf.basedb.util.extensions.AbstractRenderer;
     31import net.sf.basedb.util.extensions.Extension;
    3132
    3233/**
     
    3940 */
    4041public class CompactButtonRenderer
    41   implements Renderer<ButtonAction>
     42  extends AbstractRenderer<ButtonAction>
    4243{
    4344
     
    8182    If the button isn't visible nothing is generated. If the button isn't enabled,
    8283    the href attribute is not generated.
     84    @since 3.19.8
    8385  */
    8486  @Override
    85   public void render(ButtonAction btn)
     87  public void render(ButtonAction btn, Extension<? extends ButtonAction> ext)
    8688  {
    8789    if (!btn.isVisible()) return;
  • branches/3.19-stable/src/clients/web/net/sf/basedb/clients/web/extensions/toolbar/ToolbarButtonRenderer.java

    r6654 r8117  
    3030import net.sf.basedb.core.SessionControl;
    3131import net.sf.basedb.util.Values;
    32 import net.sf.basedb.util.extensions.Renderer;
     32import net.sf.basedb.util.extensions.AbstractRenderer;
     33import net.sf.basedb.util.extensions.Extension;
    3334
    3435/**
     
    4243*/
    4344public class ToolbarButtonRenderer
    44   implements Renderer<ButtonAction>
     45  extends AbstractRenderer<ButtonAction>
    4546{
    4647
     
    7475  */
    7576  @Override
    76   public void render(ButtonAction btn)
     77  public void render(ButtonAction btn, Extension<? extends ButtonAction> ext)
    7778  {
    7879    if (!btn.isVisible()) return;
  • branches/3.19-stable/src/clients/web/net/sf/basedb/clients/web/taglib/tab/TabControl.java

    r7703 r8117  
    2929import net.sf.basedb.clients.web.extensions.tabcontrol.TabAction;
    3030import net.sf.basedb.clients.web.taglib.StylableTag;
     31import net.sf.basedb.util.extensions.Extension;
    3132import net.sf.basedb.util.extensions.ExtensionsInvoker;
    3233import net.sf.basedb.util.extensions.Renderer;
     
    401402    ---------------------------
    402403  */
     404  @Deprecated
    403405  @Override
    404406  public void render(TabAction action)
     
    406408    addTab(action);
    407409  }
     410 
     411  @Override
     412  public void render(TabAction action, Extension<? extends TabAction> ext)
     413  {
     414    addTab(action);
     415  }
    408416  // ---------------------------
    409417 
  • branches/3.19-stable/src/core/net/sf/basedb/core/signal/ExtensionSignalTransporter.java

    r7605 r8117  
    2323
    2424import net.sf.basedb.core.Application;
     25import net.sf.basedb.util.extensions.AbstractRenderer;
    2526import net.sf.basedb.util.extensions.ClientContext;
     27import net.sf.basedb.util.extensions.Extension;
    2628import net.sf.basedb.util.extensions.ExtensionsFilter;
    2729import net.sf.basedb.util.extensions.ExtensionsInvoker;
    2830import net.sf.basedb.util.extensions.Registry;
    29 import net.sf.basedb.util.extensions.Renderer;
    3031import net.sf.basedb.util.extensions.manager.ExtensionsManager;
    3132
     
    8889 
    8990  static class SendSignalRenderer
    90     implements Renderer<SignalHandler>
     91    extends AbstractRenderer<SignalHandler>
    9192  {
    9293    private final Signal signal;
     
    9899   
    99100    @Override
    100     public void render(SignalHandler action)
     101    public void render(SignalHandler action, Extension<? extends SignalHandler> ext)
    101102    {
    102103      if (logger.isDebugEnabled()) logger.debug("Sending signal " + signal.getId() + " to action " + action);
  • branches/3.19-stable/src/core/net/sf/basedb/util/extensions/ExtensionsInvoker.java

    r8064 r8117  
    156156          renderer = wrapper;
    157157        }
    158         renderer.render(action);
     158        renderer.render(action, it.getExtension());
    159159      }
    160160      catch (Throwable t)
     
    196196        if (clearErrors) it.clearError();
    197197        action = it.next();
    198         renderer.render(action);
     198        renderer.render(action, it.getExtension());
    199199        if (event != null) it.handleEvent(event);
    200200      }
  • branches/3.19-stable/src/core/net/sf/basedb/util/extensions/Renderer.java

    r4515 r8117  
    3939    Render the action in the client application.
    4040    @param action The action to render
     41    @deprecated In 3.19.8, implement the {@link #render(Action, Extension)}
     42      method instead. This method will never be called from the BASE
     43      core except for the default implementation of {@link #render(Action, Extension)}.
    4144  */
     45  @Deprecated
    4246  public void render(A action);
    4347 
     48  /**
     49    Render the action in the client application.
     50    <p>
     51    The default implementation of this method simply call the {@link #render(Action)}
     52    method.
     53   
     54    @param action The action to render
     55    @since 3.19.8
     56  */
     57  public default void render(A action, Extension<? extends A> ext)
     58  {
     59    render(action);
     60  }
     61 
    4462}
  • branches/3.19-stable/src/core/net/sf/basedb/util/fileset/ResetMetadataRenderer.java

    r5623 r8117  
    2626
    2727import net.sf.basedb.core.signal.ThreadSignalHandler;
    28 import net.sf.basedb.util.extensions.Renderer;
     28import net.sf.basedb.util.extensions.AbstractRenderer;
     29import net.sf.basedb.util.extensions.Extension;
    2930
    3031/**
     
    3637*/
    3738public class ResetMetadataRenderer
    38   implements Renderer<ValidationAction>
     39  extends AbstractRenderer<ValidationAction>
    3940{
    4041
     
    5758  */
    5859  @Override
    59   public void render(ValidationAction action)
     60  public void render(ValidationAction action, Extension<? extends ValidationAction> ext)
    6061  {
    6162    ThreadSignalHandler.checkInterrupted();
  • branches/3.19-stable/src/core/net/sf/basedb/util/fileset/ValidationRenderer.java

    r5623 r8117  
    2828import net.sf.basedb.core.PermissionDeniedException;
    2929import net.sf.basedb.core.signal.ThreadSignalHandler;
    30 import net.sf.basedb.util.extensions.Renderer;
     30import net.sf.basedb.util.extensions.AbstractRenderer;
     31import net.sf.basedb.util.extensions.Extension;
    3132
    3233/**
     
    3839*/
    3940public class ValidationRenderer
    40   implements Renderer<ValidationAction>
     41  extends AbstractRenderer<ValidationAction>
    4142{
    4243
     
    6465  */
    6566  @Override
    66   public void render(ValidationAction action)
     67  public void render(ValidationAction action, Extension<? extends ValidationAction> ext)
    6768  {
    6869    ThreadSignalHandler.checkInterrupted();
  • branches/3.19-stable/src/test/TestExtensions.java

    r7605 r8117  
    387387      return this;
    388388    }
    389 
    390     @Override
     389   
     390    @Override
     391    @Deprecated
    391392    public void render(IActionButton action)
     393    {
     394      render(action, null);
     395    }
     396
     397    @Override
     398    public void render(IActionButton action, Extension<? extends IActionButton> ext)
    392399    {
    393400      if (!TestUtil.getSilent() && !action.isDisabled())
Note: See TracChangeset for help on using the changeset viewer.