Interface Constants


  • public interface Constants
    Remote service API constants.
    Since:
    8.9
    Restriction:
    This interface is not intended to be implemented by clients.
    • Field Detail

      • OBJECTCLASS

        static final String OBJECTCLASS
        Remote service property identifying all (named "ecf.robjectClass") of the class names under which a service was registered in the remote services API (of type java.lang.String[]).

        This property is set by the remote services API when a service is registered.

        See Also:
        Constant Field Values
      • SERVICE_ID

        static final String SERVICE_ID
        Remote service property (named "ecf.rsvc.id") identifying a service's remote registration number (of type java.lang.Long).

        The value of this property is assigned by the remote services API when a service is registered. The remote services API assigns a unique value that is larger than all previously assigned values since the remote services API was started. These values are NOT persistent across restarts of the remote services API.

        See Also:
        Constant Field Values
      • SERVICE_RANKING

        static final String SERVICE_RANKING
        Service property (named "ecf.rsvc.ranking") identifying a service's ranking number (of type java.lang.Integer).

        This property may be supplied in the properties Dictionary object passed to the IRemoteServiceContainerAdapter.registerRemoteService method.

        The service ranking is used by the remote services API to determine the default service to be returned from a call to the IRemoteServiceContainerAdapter.getRemoteServiceReferences(org.eclipse.ecf.core.identity.ID[], String, String) method: If more than one service implements the specified class, the RemoteServiceReference object with the highest ranking is returned.

        The default ranking is zero (0). A service with a ranking of Integer.MAX_VALUE is very likely to be returned as the default service, whereas a service with a ranking of Integer.MIN_VALUE is very unlikely to be returned.

        If the supplied property value is not of type java.lang.Integer, it is deemed to have a ranking value of zero.

        See Also:
        Constant Field Values
      • SERVICE_REGISTRATION_TARGETS

        static final String SERVICE_REGISTRATION_TARGETS
        Service property (named "remoteservice.description") identifying a a registration's target for receiving the service. The value of the property MUST be either a non-null instance of org.eclipse.ecf.core.identity.ID OR an ID[].

        This property may be supplied in the properties Dictionary object passed to the IRemoteServiceContainerAdapter.registerRemoteService method.

        See Also:
        Constant Field Values
      • SERVICE_CONTAINER_ID

        static final String SERVICE_CONTAINER_ID
        Remote service property that defines the remote service container ID.

        This property may be supplied in the properties Dictionary object passed to the BundleContext.registerService method.

        Since:
        3.0
        See Also:
        Constant Field Values
      • SERVICE_REGISTER_PROXY

        static final String SERVICE_REGISTER_PROXY
        Remote service property used on service registration to indicate that a service proxy should be created rather than using the given service object (which may be null when this service property is set).
        Since:
        4.0
        See Also:
        Constant Field Values
      • SERVICE_PREVENT_RSPROXY

        static final String SERVICE_PREVENT_RSPROXY
        Remote service property used to prevent the automatic addition of the IRemoteServiceProxy interface to the proxy returned from IRemoteService.getProxy. If this service property is set (to any non-null Object value), it will prevent the the IRemoteServiceProxy from being added to the set of interfaces exposed by the proxy returned from IRemoteService.getProxy.
        Since:
        6.0
        See Also:
        Constant Field Values
      • SERVICE_ASYNC_RSPROXY_CLASS_

        static final String SERVICE_ASYNC_RSPROXY_CLASS_
        This constant allows the fully qualified async remote service proxy to be specified as a service property. For example, if the remote service interface is as so:
         package foo;
         
         public interface Bar {
            String doStuff();
         }
         
        then by default, the async remote service proxy interface class would be expected to be the following:
         package foo;
         import org.eclipse.ecf.remoteservice.IAsyncRemoteServiceProxy;
         import org.eclipse.equinox.concurrent.future.IFuture;
        
         public interface BarAsync extends IAsyncRemoteServiceProxy {
            IFuture doStuffAsync();
         }
         
        This property allows a new class to be associated with the original service interface, so that rather than looking for the foo.BarAsync class when a proxy is created, the class specified by the value of the property will be used instead. For example, assume the existance of another async remote service interface:
         package gogo;
         import org.eclipse.ecf.remoteservice.IAsyncRemoteServiceProxy;
         import org.eclipse.equinox.concurrent.future.IFuture;
         
         public interface MyBar extends IAsyncRemoteServiceProxy {
            IFuture doStuffAsync();
         }
         
        Further assume that when the remote service was registered, that a service property was specified:
         serviceProps.put("ecf.rsvc.async.proxy_<fq classname>","<fq substitute>");
         
         serviceProps.put("ecf.rsvc.async.proxy_foo.Bar","gogo.MyBar");
         
        Then, when a Bar proxy is created, if the 'gogo.MyBar' interface is available on the client, an async remote service proxy will be added to the proxy, and client will be able to asynchronously call MyBar.doStuffAsync() on the proxy.
        See Also:
        Constant Field Values
      • DISCOVERY_SERVICE_TYPE

        static final String DISCOVERY_SERVICE_TYPE
        ECF discovery service type for Remote Service Admin. All ECF remote services published by Remote Service Admin advertisers should have this value as one of the entries in the list returned from IServiceTypeID#getServices().
        Since:
        8.9
        See Also:
        Constant Field Values
      • DISCOVERY_SCOPE

        static final String DISCOVERY_SCOPE
        ECF discovery scope property. Value type is String+. If set, the value will be used by the IServiceInfoFactory during IServiceInfoFactory#createServiceInfo(org.eclipse.ecf.discovery.IDiscoveryAdvertiser, EndpointDescription) to create an IServiceTypeID via IServiceIDFactory#createServiceTypeID(org.eclipse.ecf.core.identity.Namespace, String[], String[], String[], String) . The scopes value determines the third parameter. If not explicitly set, the IServiceTypeID#DEFAULT_SCOPE is used.
        Since:
        8.9
        See Also:
        Constant Field Values
      • DISCOVERY_PROTOCOLS

        static final String DISCOVERY_PROTOCOLS
        ECF discovery protocols property. Value type is String+. If set, the value will be used by the IServiceInfoFactory during IServiceInfoFactory#createServiceInfo(org.eclipse.ecf.discovery.IDiscoveryAdvertiser, EndpointDescription) to create an IServiceTypeID via IServiceIDFactory#createServiceTypeID(org.eclipse.ecf.core.identity.Namespace, String[], String[], String[], String) . The protocols value determines the fourth parameter. If not explicitly set, the IServiceTypeID#DEFAULT_PROTO is used.
        Since:
        8.9
        See Also:
        Constant Field Values
      • DISCOVERY_NAMING_AUTHORITY

        static final String DISCOVERY_NAMING_AUTHORITY
        ECF discovery naming authority property. Value type is String. If set, the value will be used by the IServiceInfoFactory during IServiceInfoFactory#createServiceInfo(org.eclipse.ecf.discovery.IDiscoveryAdvertiser, EndpointDescription) to create an IServiceTypeID via IServiceIDFactory#createServiceTypeID(org.eclipse.ecf.core.identity.Namespace, String[], String[], String[], String) . The protocols value determines the fifth parameter. If not explicitly set, the IServiceTypeID#DEFAULT_NA is used.
        Since:
        8.9
        See Also:
        Constant Field Values
      • DISCOVERY_SERVICE_NAME

        static final String DISCOVERY_SERVICE_NAME
        ECF discovery service name property. Value type is String. If set, the value will be used by the IServiceInfoFactory during IServiceInfoFactory#createServiceInfo(org.eclipse.ecf.discovery.IDiscoveryAdvertiser, EndpointDescription) to create an IServiceInfo with a given name. The default is a globally unique identifier. Note that if this value is explicitly set, care should be taken to not have the name conflict with other remote service names.
        Since:
        8.9
        See Also:
        Constant Field Values
      • DISCOVERY_DEFAULT_SERVICE_NAME_PREFIX

        static final String DISCOVERY_DEFAULT_SERVICE_NAME_PREFIX
        ECF service name default prefix. If the DISCOVERY_SERVICE_NAME is not set, this prefix will be the precede the unique identifier.
        Since:
        8.9
        See Also:
        Constant Field Values
      • ENDPOINT_CONTAINER_ID_NAMESPACE

        static final String ENDPOINT_CONTAINER_ID_NAMESPACE
        ECF EndpointDescription property (with value of type String) that defines the unique org.eclipse.ecf.core.identity.Namespace name. If present in the EndpointDescription, the value will be used to create the containerID for accessing a remote service. The Namespace name is optional because typically the ID protocol specifier (e.g. 'ecftcp' in ID with name: 'ecftcp://localhost:3282/server') can be used to unambiguously determine the appropriate org.eclipse.ecf.core.identity.Namespace used to create the container ID for remote service import.
        Since:
        8.9
        See Also:
        Constant Field Values
      • ENDPOINT_ID

        static final String ENDPOINT_ID
        ECF EndpointDescription property (with value of type String) that defines the ecf endpoint id (typically the container id).
        Since:
        8.9
        See Also:
        Constant Field Values
      • ENDPOINT_TIMESTAMP

        static final String ENDPOINT_TIMESTAMP
        ECF EndpointDescription property (with value of type Long) that defines a service timestamp set upon initial export of the remote service.
        Since:
        8.9
        See Also:
        Constant Field Values
      • ENDPOINT_CONNECTTARGET_ID

        static final String ENDPOINT_CONNECTTARGET_ID
        Optional ECF EndpointDescription property (with value of type String) that defines a connect target ID. If set/non-null, this property can be used by remote service consumers to connect to a specific container, and access a remote service exposed by some other member of the group.
        Since:
        8.9
        See Also:
        Constant Field Values
      • ENDPOINT_IDFILTER_IDS

        static final String ENDPOINT_IDFILTER_IDS
        Optional ECF EndpointDescription property (with value of type String+) that defines one or more IDs used for filtering remote service references during RemoteServiceAdmin#importService(org.osgi.service.remoteserviceadmin.EndpointDescription) .
        Since:
        8.9
        See Also:
        Constant Field Values
      • ENDPOINT_REMOTESERVICE_FILTER

        static final String ENDPOINT_REMOTESERVICE_FILTER
        Optional ECF EndpointDescription property (with value of type String), that defines a remote services properties filter used during RemoteServiceAdmin#importService(org.osgi.service.remoteserviceadmin.EndpointDescription) .
        Since:
        8.9
        See Also:
        Constant Field Values
      • SERVICE_EXPORTED_CONTAINER_FACTORY_ARGS

        static final String SERVICE_EXPORTED_CONTAINER_FACTORY_ARGS
        Container factory arguments for exported remote service hosts. If specified as a service property upon remote service registration, this property allows ECF containers to be initialized and configured upon creation during the call to HostContainerSelector#selectHostContainers(org.osgi.framework.ServiceReference, Map, String[], String[], String[]) . The type of the value may be String, ID, or Object[]. The IContainerFactory.createContainer method is then selected based upon the type of the value...i.e. IContainerFactory#createContainer(org.eclipse.ecf.core.ContainerTypeDescription, String) , IContainerFactory#createContainer(org.eclipse.ecf.core.identity.ID) , or IContainerFactory#createContainer(String, Object[]), and the value is passed in for container creation.
        Since:
        8.9
        See Also:
        Constant Field Values
      • SERVICE_EXPORTED_CONTAINER_CONNECT_CONTEXT

        static final String SERVICE_EXPORTED_CONTAINER_CONNECT_CONTEXT
        Container connect context for exported remote service hosts. If specified as a service property for remote service export, this property allows ECF containers to have given a connect context for authentication upon container connection by HostContainerSelector#selectHostContainers(org.osgi.framework.ServiceReference, Map, String[], String[], String[]) . The type of the value is IConnectContext.
        Since:
        8.9
        See Also:
        Constant Field Values
      • SERVICE_EXPORTED_CONTAINER_ID

        static final String SERVICE_EXPORTED_CONTAINER_ID
        Container ID of the target host container for remote service export. If specified as a service property for remote service export, this property is used to match against the set of available containers in HostContainerSelector#selectHostContainers(org.osgi.framework.ServiceReference, Map, String[], String[], String[]) . The type of the value is ID.
        Since:
        8.9
        See Also:
        Constant Field Values
      • SERVICE_EXPORTED_ASYNC_INTERFACES

        static final String SERVICE_EXPORTED_ASYNC_INTERFACES
        Service property marking the service for async proxy export. It defines the async interfaces under which this service will be exported on the remote proxy. This list must be a subset of the types service was exported (i.e. subset of interfaces specified by # org.osgi.service.remoteserviceadmin.RemoteConstants#SERVICE_EXPORTED_INTERFACES . The single value of an asterisk ("*", \u002A) indicates all the interface types under which the service was exported.

        The interfaces in the String[] can either be

        1. The same fully qualified name as an interface in the # org.osgi.service.remoteserviceadmin.RemoteConstants#SERVICE_EXPORTED_INTERFACES property
        2. The fully qualified name of an interface that follows the asynchronous proxy conventions to match with one of the existing exported types.

        This property may be supplied in the properties Dictionary object passed to the BundleContext.registerService method. The value of this property must be of type String, String[], or Collection of String.

        Since:
        8.9
        See Also:
        Constant Field Values
      • SERVICE_IMPORTED_VALUETYPE

        static final String SERVICE_IMPORTED_VALUETYPE
        Allows exporting ECF containers to determine the type of value associated with the org.osgi.service.remoteserviceadmin.RemoteConstants#SERVICE_IMPORTED property on the OSGi remote service consumer. For ECF, the default value type is IRemoteService. If set to some other value (e.g. Boolean by the exporting host container, then consumers can use the SERVICE_IMPORTED value appropriately.
        Since:
        8.9
        See Also:
        Constant Field Values