Class 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 Detail

      • 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 Detail

      • 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)