All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.osgi.service.remoteserviceadmin.RemoteConstants Maven / Gradle / Ivy

/*
 * 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;

import org.osgi.framework.Constants;

/**
 * Provide the definition of the constants used in the Remote Service Admin
 * specification.
 * 
 * @Immutable
 * @version $Id: 03766065c89cec9d6b51caf9617d024fd18e4bc4 $
 */
public class RemoteConstants {
	private RemoteConstants() {
		// non-instantiable
	}

	/**
	 * 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 {@code String}, * {@code String[]}, or {@code Collection} of {@code String}. * * @see "Remote Services Specification" */ public static final String REMOTE_CONFIGS_SUPPORTED = Constants.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 {@code String}, * {@code String[]}, or {@code Collection} of {@code String}. * * @see "Remote Services Specification" */ public static final String REMOTE_INTENTS_SUPPORTED = Constants.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 {@code properties} * {@code Dictionary} object passed to the * {@code BundleContext.registerService} method. The value of this property * must be of type {@code String}, {@code String[]}, or {@code Collection} * of {@code String}. * * @see "Remote Services Specification" */ public static final String SERVICE_EXPORTED_CONFIGS = Constants.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 {@code properties} * {@code Dictionary} object passed to the * {@code BundleContext.registerService} method. The value of this property * must be of type {@code String}, {@code String[]}, or {@code Collection} * of {@code String}. * * @see "Remote Services Specification" */ public static final String SERVICE_EXPORTED_INTENTS = Constants.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 {@code 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 {@code properties} * {@code Dictionary} object passed to the * {@code BundleContext.registerService} method. The value of this property * must be of type {@code String}, {@code String[]}, or {@code Collection} * of {@code String}. * * @see "Remote Services Specification" */ public static final String SERVICE_EXPORTED_INTENTS_EXTRA = Constants.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 {@code properties} * {@code Dictionary} object passed to the * {@code BundleContext.registerService} method. The value of this property * must be of type {@code String}, {@code String[]}, or {@code Collection} * of {@code String}. * * @see "Remote Services Specification" */ public static final String SERVICE_EXPORTED_INTERFACES = Constants.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. * * @see "Remote Services Specification" */ public static final String SERVICE_IMPORTED = Constants.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 {@code String}, * {@code String[]}, or {@code Collection} of {@code String}. * * @see "Remote Services Specification" * @see #SERVICE_EXPORTED_CONFIGS */ public static final String SERVICE_IMPORTED_CONFIGS = Constants.SERVICE_IMPORTED_CONFIGS; /** * Service property identifying the intents that this service implement. * This property has a dual purpose: *

    *
  • A bundle can use this service property to notify the distribution * provider that these intents are already implemented by the exported * service object.
  • *
  • A distribution provider must use this property to convey the combined * intents of: The exporting service, and the intents that the exporting * distribution provider adds, and the intents that the importing * distribution provider adds.
  • *
* * To export a service, a distribution provider must expand any qualified * intents. Both the exporting and importing distribution providers must * recognize all intents before a service can be distributed. * * The value of this property must be of type {@code String}, * {@code String[]}, or {@code Collection} of {@code String}. * * @see "Remote Services Specification" */ public static final String SERVICE_INTENTS = Constants.SERVICE_INTENTS; /* The above are from Ch. 13 Remote Services specification. */ /** * Endpoint property identifying the id for this endpoint. This service * property must always be set. * *

* The value of this property must be of type {@code 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 {@code 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 {@code 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 * {@code endpoint.package.version.com.acme=1.3} describes the version * of the package for the {@code 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 properties having this prefix must be of type * {@code String}. */ public final static String ENDPOINT_PACKAGE_VERSION_ = "endpoint.package.version."; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy