Class MetadataProviderServer

java.lang.Object
com.lightstreamer.adapters.remote.Server
com.lightstreamer.adapters.remote.MetadataProviderServer

public class MetadataProviderServer
extends Server
A Remote Server object which can run a Remote Metadata Adapter and connect it to a Proxy Metadata Adapter running on Lightstreamer Server.
The object should be provided with a MetadataProvider instance and with suitable initialization parameters and established connections, then activated through Server.start() and finally disposed through Server.close(). Further reuse of the same instance is not supported.
By default, the invocations to the Metadata Adapter methods will be done in an unlimited thread pool. A thread pool maximum size can be specified through the custom "lightstreamer.metadata.pool.size" system property. A size of 1 enforces strictly sequential invocations and can be used if parallelization of the calls is not supported by the Metadata Adapter. A size of 0 or negative also implies an unlimited thread pool.
Note that requests with an implicit ordering, like notifyNewSession and NotifySessionClose for the same session, are always guaranteed to be sequentialized in the right way, although they may not occur in the same thread.
  • Constructor Details

    • MetadataProviderServer

      public MetadataProviderServer()
      Creates an empty server still to be configured and started. The Init method of the Remote Adapter will be invoked only upon a Proxy Adapter request.
      Throws:
      java.lang.IllegalArgumentException - in case something wrong is supplied in system properties related with Metadata Adapter processing.
    • MetadataProviderServer

      @Deprecated public MetadataProviderServer​(boolean initializeOnStart)
      Deprecated.
      This constructor is deprecated, because the setting of initializeOnStart as true is going to be no longer supported. Use the other constructor, which implies initializeOnStart as false. As a consequence of this replacement, the init method of the MetadataProvider implementation object would be invoked only after the connection and it would receive additional parameters sent by the Proxy Adapter. If any initialization stuff on the MetadataProvider implementation object has to be performed earlier, it should be done through a dedicated method before invoking start. As another consequence, the start method would no longer throw a MetadataAdapterException; any related catch block could safely assert false.
      Creates an empty server still to be configured and started.
      Parameters:
      initializeOnStart - If true, the init method of the Remote Adapter will be invoked immediately rather than upon a Proxy Adapter request. The Proxy Adapter request will then just receive a successful answer. This can shorten the connection phase, which will start only after the return of init; on the other hand, any initialization parameters supplied by the Proxy Adapter will not be available.
      Throws:
      java.lang.IllegalArgumentException - in case something wrong is supplied in system properties related with Metadata Adapter processing.
  • Method Details

    • setAdapter

      public final void setAdapter​(@Nonnull MetadataProvider adapter)
      Sets the Remote Metadata Adapter instance to be run.
      Parameters:
      adapter - the Remote Metadata Adapter instance to be run.
    • getAdapter

      @Nonnull public final MetadataProvider getAdapter()
      Gets the configured Metadata Adapter that is running or will run.
      Returns:
      the configured Metadata Adapter
    • setAdapterParams

      public final void setAdapterParams​(@Nonnull java.util.Map<java.lang.String,​java.lang.String> params)
      Sets a Map object to be passed to the init method of the Remote Metadata Adapter, to supply optional parameters.
      The default value is an empty HashMap.
      Parameters:
      params - the Map to be passed to the init method of the Remote Metadata Adapter
      See Also:
      MetadataProvider.init(Map, String)
    • getAdapterParams

      @Nonnull public final java.util.Map<java.lang.String,​java.lang.String> getAdapterParams()
      Gets the Map object to be passed to the init method of the Remote Metadata Adapter, to supply optional parameters.
      The default value is an empty HashMap.
      Returns:
      the Map object to be passed to the init method of the Remote Metadata Adapter
      See Also:
      MetadataProvider.init(Map, String)
    • setAdapterConfig

      public final void setAdapterConfig​(@Nullable java.lang.String configFile)
      Sets the pathname of an optional configuration file for the Remote Metadata Adapter, to be passed to the init method.
      The default value is null.
      Parameters:
      configFile - the pathname of an optional configuration file for the Remote Metadata Adapter.
      See Also:
      MetadataProvider.init(Map, String)
    • getAdapterConfig

      @Nullable public final java.lang.String getAdapterConfig()
      Gets the pathname of an optional configuration file for the Remote Metadata Adapter, to be passed to the init method.
      The default value is null.
      Returns:
      the pathname of an optional configuration file for the Remote Metadata Adapter
      See Also:
      MetadataProvider.init(Map, String)