/* * Copyright (c) OSGi Alliance (2009, 2010). All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.osgi.service.remoteserviceadmin; /** * Provide the definition of the constants used in the Remote Services API. * * @Immutable * @version $Revision$ */ public class RemoteConstants { private RemoteConstants() { } /** * Service property identifying the configuration types supported by a * distribution provider. Registered by the distribution provider on one of * its services to indicate the supported configuration types. *
* The value of this property must be of type String
,
* String[]
, or Collection<String>
.
*/
public static final String REMOTE_CONFIGS_SUPPORTED = "remote.configs.supported";
/**
* Service property identifying the intents supported by a distribution
* provider. Registered by the distribution provider on one of its services
* to indicate the vocabulary of implemented intents.
*
*
* The value of this property must be of type String
,
* String[]
, or Collection<String>
.
*/
public static final String REMOTE_INTENTS_SUPPORTED = "remote.intents.supported";
/**
* Service property identifying the configuration types that should be used
* to export the service. Each configuration type represents the
* configuration parameters for an endpoint. A distribution provider should
* create an endpoint for each configuration type that it supports.
*
*
* 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<String>
.
*/
public static final String SERVICE_EXPORTED_CONFIGS = "service.exported.configs";
/**
* Service property identifying the intents that the distribution provider
* must implement to distribute the service. Intents listed in this property
* are reserved for intents that are critical for the code to function
* correctly, for example, ordering of messages. These intents should not be
* configurable.
*
*
* 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<String>
.
*/
public static final String SERVICE_EXPORTED_INTENTS = "service.exported.intents";
/**
* Service property identifying the extra intents that the distribution
* provider must implement to distribute the service. This property is
* merged with the service.exported.intents
property before the
* distribution provider interprets the listed intents; it has therefore the
* same semantics but the property should be configurable so the
* administrator can choose the intents based on the topology. Bundles
* should therefore make this property configurable, for example through the
* Configuration Admin service.
*
*
* 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<String>
.
*/
public static final String SERVICE_EXPORTED_INTENTS_EXTRA = "service.exported.intents.extra";
/**
* Service property marking the service for export. It defines the
* interfaces under which this service can be exported. This list must be a
* subset of the types under which the service was registered. The single
* value of an asterisk ("*", \u002A) indicates all the
* interface types under which the service was registered excluding the
* non-interface types. It is strongly recommended to only export interface
* types and not concrete classes due to the complexity of creating proxies
* for some type of concrete classes.
*
*
* 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<String>
.
*/
public static final String SERVICE_EXPORTED_INTERFACES = "service.exported.interfaces";
/**
* Service property identifying the service as imported. This service
* property must be set by a distribution provider to any value when it
* registers the endpoint proxy as an imported service. A bundle can use
* this property to filter out imported services.
*
*
* The value of this property may be of any type. */ public static final String SERVICE_IMPORTED = "service.imported"; /** * Service property identifying the configuration types used to import the * service. Any associated properties for this configuration types must be * properly mapped to the importing system. For example, a URL in these * properties must point to a valid resource when used in the importing * framework. If multiple configuration types are listed in this property, * then they must be synonyms for exactly the same remote endpoint that is * used to export this service. * *
* The value of this property must be of type String
,
* String[]
, or Collection<String>
.
*
* @see #SERVICE_EXPORTED_CONFIGS
*/
public static final String SERVICE_IMPORTED_CONFIGS = "service.imported.configs";
/**
* Service property identifying the intents that this service implement.
* This property has a dual purpose:
*
* The value of this property must be of type String
,
* String[]
, or Collection<String>
.
*/
public static final String SERVICE_INTENTS = "service.intents";
/* above are from Ch 13 Remote Service spec. */
/**
* Endpoint property identifying the id for this endpoint. This service
* property must always be set.
*
*
* The value of this property must be of type String
.
*/
public final static String ENDPOINT_ID = "endpoint.id";
/**
* Endpoint property identifying the service id of the exported service. Can
* be absent or 0 if the corresponding endpoint is not for an OSGi service.
*
*
* The value of this property must be of type Long
.
*/
public final static String ENDPOINT_SERVICE_ID = "endpoint.service.id";
/**
* Endpoint property identifying the universally unique id of the exporting
* framework. Can be absent if the corresponding endpoint is not for an OSGi
* service.
*
*
* The value of this property must be of type String
.
*/
public final static String ENDPOINT_FRAMEWORK_UUID = "endpoint.framework.uuid";
/**
* Prefix for an endpoint property identifying the interface Java package
* version for an interface. For example, the property
* endpoint.package.version.com.acme=1.3 describes the version of the
* package for the com.acme.Foo interface. This endpoint property for an
* interface package does not have to be set. If not set, the value must be
* assumed to be 0.
*
*
* Since endpoint properties are stored in a case insensitive map, case * variants of a package name are folded together. * *
* The value of this property must be of type String
.
*/
public final static String ENDPOINT_PACKAGE_VERSION_ = "endpoint.package.version.";
}