You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2006/10/19 00:01:24 UTC

svn commit: r465392 [5/10] - in /incubator/felix/trunk/org.osgi.core/src/main/java/org/osgi: framework/ service/condpermadmin/ service/packageadmin/ service/permissionadmin/ service/startlevel/ service/url/

Modified: incubator/felix/trunk/org.osgi.core/src/main/java/org/osgi/framework/Constants.java
URL: http://svn.apache.org/viewvc/incubator/felix/trunk/org.osgi.core/src/main/java/org/osgi/framework/Constants.java?view=diff&rev=465392&r1=465391&r2=465392
==============================================================================
--- incubator/felix/trunk/org.osgi.core/src/main/java/org/osgi/framework/Constants.java (original)
+++ incubator/felix/trunk/org.osgi.core/src/main/java/org/osgi/framework/Constants.java Wed Oct 18 15:01:22 2006
@@ -1,1060 +1,1064 @@
-/*
- * $Header: /cvshome/build/org.osgi.framework/src/org/osgi/framework/Constants.java,v 1.23 2006/03/14 01:21:02 hargrave Exp $
- *
- * Copyright (c) OSGi Alliance (2000, 2005). 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.framework;
-
-/**
- * Defines standard names for the OSGi environment property, service property,
- * and Manifest header attribute keys.
- * 
- * <p>
- * The values associated with these keys are of type
- * <code>java.lang.String</code>, unless otherwise indicated.
- * 
- * @version $Revision: 1.23 $
- * @since 1.1
- */
-
-public interface Constants {
-	/**
-	 * Location identifier of the OSGi <i>system bundle </i>, which is defined
-	 * to be &quot;System Bundle&quot;.
-	 */
-	public static final String	SYSTEM_BUNDLE_LOCATION					= "System Bundle";
-
-	/**
-	 * Alias for the symbolic name of the OSGi <i>system bundle </i>. It is
-	 * defined to be &quot;system.bundle&quot;.
-	 * 
-	 * @since 1.3
-	 */
-	public static final String	SYSTEM_BUNDLE_SYMBOLICNAME				= "system.bundle";
-
-	/**
-	 * Manifest header (named &quot;Bundle-Category&quot;) identifying the
-	 * bundle's category.
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 */
-	public static final String	BUNDLE_CATEGORY							= "Bundle-Category";
-
-	/**
-	 * Manifest header (named &quot;Bundle-ClassPath&quot;) identifying a list
-	 * of directories and embedded JAR files, which are bundle resources used to
-	 * extend the bundle's classpath.
-	 * 
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 */
-	public static final String	BUNDLE_CLASSPATH						= "Bundle-ClassPath";
-
-	/**
-	 * Manifest header (named &quot;Bundle-Copyright&quot;) identifying the
-	 * bundle's copyright information.
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 */
-	public static final String	BUNDLE_COPYRIGHT						= "Bundle-Copyright";
-
-	/**
-	 * Manifest header (named &quot;Bundle-Description&quot;) containing a brief
-	 * description of the bundle's functionality.
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 */
-	public static final String	BUNDLE_DESCRIPTION						= "Bundle-Description";
-
-	/**
-	 * Manifest header (named &quot;Bundle-Name&quot;) identifying the bundle's
-	 * name.
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 */
-	public static final String	BUNDLE_NAME								= "Bundle-Name";
-
-	/**
-	 * Manifest header (named &quot;Bundle-NativeCode&quot;) identifying a
-	 * number of hardware environments and the native language code libraries
-	 * that the bundle is carrying for each of these environments.
-	 * 
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 */
-	public static final String	BUNDLE_NATIVECODE						= "Bundle-NativeCode";
-
-	/**
-	 * Manifest header (named &quot;Export-Package&quot;) identifying the
-	 * packages that the bundle offers to the Framework for export.
-	 * 
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 */
-	public static final String	EXPORT_PACKAGE							= "Export-Package";
-
-	/**
-	 * Manifest header (named &quot;Export-Service&quot;) identifying the fully
-	 * qualified class names of the services that the bundle may register (used
-	 * for informational purposes only).
-	 * 
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 */
-	public static final String	EXPORT_SERVICE							= "Export-Service";
-
-	/**
-	 * Manifest header (named &quot;Import-Package&quot;) identifying the
-	 * packages on which the bundle depends.
-	 * 
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 */
-	public static final String	IMPORT_PACKAGE							= "Import-Package";
-
-	/**
-	 * Manifest header (named &quot;DynamicImport-Package&quot;) identifying the
-	 * packages that the bundle may dynamically import during execution.
-	 * 
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 * 
-	 * @since 1.2
-	 */
-	public static final String	DYNAMICIMPORT_PACKAGE					= "DynamicImport-Package";
-
-	/**
-	 * Manifest header (named &quot;Import-Service&quot;) identifying the fully
-	 * qualified class names of the services that the bundle requires (used for
-	 * informational purposes only).
-	 * 
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 */
-	public static final String	IMPORT_SERVICE							= "Import-Service";
-
-	/**
-	 * Manifest header (named &quot;Bundle-Vendor&quot;) identifying the
-	 * bundle's vendor.
-	 * 
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 */
-	public static final String	BUNDLE_VENDOR							= "Bundle-Vendor";
-
-	/**
-	 * Manifest header (named &quot;Bundle-Version&quot;) identifying the
-	 * bundle's version.
-	 * 
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 */
-	public static final String	BUNDLE_VERSION							= "Bundle-Version";
-
-	/**
-	 * Manifest header (named &quot;Bundle-DocURL&quot;) identifying the
-	 * bundle's documentation URL, from which further information about the
-	 * bundle may be obtained.
-	 * 
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 */
-	public static final String	BUNDLE_DOCURL							= "Bundle-DocURL";
-
-	/**
-	 * Manifest header (named &quot;Bundle-ContactAddress&quot;) identifying the
-	 * contact address where problems with the bundle may be reported; for
-	 * example, an email address.
-	 * 
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 */
-	public static final String	BUNDLE_CONTACTADDRESS					= "Bundle-ContactAddress";
-
-	/**
-	 * Manifest header attribute (named &quot;Bundle-Activator&quot;)
-	 * identifying the bundle's activator class.
-	 * 
-	 * <p>
-	 * If present, this header specifies the name of the bundle resource class
-	 * that implements the <code>BundleActivator</code> interface and whose
-	 * <code>start</code> and <code>stop</code> methods are called by the
-	 * Framework when the bundle is started and stopped, respectively.
-	 * 
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 */
-	public static final String	BUNDLE_ACTIVATOR						= "Bundle-Activator";
-
-	/**
-	 * Manifest header (named &quot;Bundle-UpdateLocation&quot;) identifying the
-	 * location from which a new bundle version is obtained during a bundle
-	 * update operation.
-	 * 
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 */
-	public static final String	BUNDLE_UPDATELOCATION					= "Bundle-UpdateLocation";
-
-	/**
-	 * Manifest header attribute (named &quot;specification-version&quot;)
-	 * identifying the version of a package specified in the Export-Package or
-	 * Import-Package manifest header.
-	 * 
-	 * <p>
-	 * The attribute value is encoded in the Export-Package or Import-Package
-	 * manifest header like:
-	 * 
-	 * <pre>
-	 *   Import-Package: org.osgi.framework ; specification-version=&quot;1.1&quot;
-	 * </pre>
-	 * 
-	 * @deprecated Since 1.3. This has been replaced by
-	 *             {@link #VERSION_ATTRIBUTE}.
-	 */
-	public static final String	PACKAGE_SPECIFICATION_VERSION			= "specification-version";
-
-	/**
-	 * Manifest header attribute (named &quot;processor&quot;) identifying the
-	 * processor required to run native bundle code specified in the
-	 * Bundle-NativeCode manifest header).
-	 * 
-	 * <p>
-	 * The attribute value is encoded in the Bundle-NativeCode manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Bundle-NativeCode: http.so ; processor=x86 ...
-	 * </pre>
-	 */
-	public static final String	BUNDLE_NATIVECODE_PROCESSOR				= "processor";
-
-	/**
-	 * Manifest header attribute (named &quot;osname&quot;) identifying the
-	 * operating system required to run native bundle code specified in the
-	 * Bundle-NativeCode manifest header).
-	 * <p>
-	 * The attribute value is encoded in the Bundle-NativeCode manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Bundle-NativeCode: http.so ; osname=Linux ...
-	 * </pre>
-	 */
-	public static final String	BUNDLE_NATIVECODE_OSNAME				= "osname";
-
-	/**
-	 * Manifest header attribute (named &quot;osversion&quot;) identifying the
-	 * operating system version required to run native bundle code specified in
-	 * the Bundle-NativeCode manifest header).
-	 * <p>
-	 * The attribute value is encoded in the Bundle-NativeCode manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Bundle-NativeCode: http.so ; osversion=&quot;2.34&quot; ...
-	 * </pre>
-	 */
-	public static final String	BUNDLE_NATIVECODE_OSVERSION				= "osversion";
-
-	/**
-	 * Manifest header attribute (named &quot;language&quot;) identifying the
-	 * language in which the native bundle code is written specified in the
-	 * Bundle-NativeCode manifest header. See ISO 639 for possible values.
-	 * <p>
-	 * The attribute value is encoded in the Bundle-NativeCode manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Bundle-NativeCode: http.so ; language=nl_be ...
-	 * </pre>
-	 */
-	public static final String	BUNDLE_NATIVECODE_LANGUAGE				= "language";
-
-	/**
-	 * Manifest header (named &quot;Bundle-RequiredExecutionEnvironment&quot;)
-	 * identifying the required execution environment for the bundle. The
-	 * service platform may run this bundle if any of the execution environments
-	 * named in this header matches one of the execution environments it
-	 * implements.
-	 * 
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 * 
-	 * @since 1.2
-	 */
-	public static final String	BUNDLE_REQUIREDEXECUTIONENVIRONMENT		= "Bundle-RequiredExecutionEnvironment";
-
-	/*
-	 * Framework environment properties.
-	 */
-
-	/**
-	 * Framework environment property (named
-	 * &quot;org.osgi.framework.version&quot;) identifying the Framework
-	 * version.
-	 * 
-	 * <p>
-	 * The value of this property may be retrieved by calling the
-	 * <code>BundleContext.getProperty</code> method.
-	 */
-	public static final String	FRAMEWORK_VERSION						= "org.osgi.framework.version";
-
-	/**
-	 * Framework environment property (named
-	 * &quot;org.osgi.framework.vendor&quot;) identifying the Framework
-	 * implementation vendor.
-	 * 
-	 * <p>
-	 * The value of this property may be retrieved by calling the
-	 * <code>BundleContext.getProperty</code> method.
-	 */
-	public static final String	FRAMEWORK_VENDOR						= "org.osgi.framework.vendor";
-
-	/**
-	 * Framework environment property (named
-	 * &quot;org.osgi.framework.language&quot;) identifying the Framework
-	 * implementation language (see ISO 639 for possible values).
-	 * 
-	 * <p>
-	 * The value of this property may be retrieved by calling the
-	 * <code>BundleContext.getProperty</code> method.
-	 */
-	public static final String	FRAMEWORK_LANGUAGE						= "org.osgi.framework.language";
-
-	/**
-	 * Framework environment property (named
-	 * &quot;org.osgi.framework.os.name&quot;) identifying the Framework
-	 * host-computer's operating system.
-	 * 
-	 * <p>
-	 * The value of this property may be retrieved by calling the
-	 * <code>BundleContext.getProperty</code> method.
-	 */
-	public static final String	FRAMEWORK_OS_NAME						= "org.osgi.framework.os.name";
-
-	/**
-	 * Framework environment property (named
-	 * &quot;org.osgi.framework.os.version&quot;) identifying the Framework
-	 * host-computer's operating system version number.
-	 * 
-	 * <p>
-	 * The value of this property may be retrieved by calling the
-	 * <code>BundleContext.getProperty</code> method.
-	 */
-	public static final String	FRAMEWORK_OS_VERSION					= "org.osgi.framework.os.version";
-
-	/**
-	 * Framework environment property (named
-	 * &quot;org.osgi.framework.processor&quot;) identifying the Framework
-	 * host-computer's processor name.
-	 * <p>
-	 * The value of this property may be retrieved by calling the
-	 * <code>BundleContext.getProperty</code> method.
-	 */
-	public static final String	FRAMEWORK_PROCESSOR						= "org.osgi.framework.processor";
-
-	/**
-	 * Framework environment property (named
-	 * &quot;org.osgi.framework.executionenvironment&quot;) identifying
-	 * execution environments provided by the Framework.
-	 * <p>
-	 * The value of this property may be retrieved by calling the
-	 * <code>BundleContext.getProperty</code> method.
-	 * 
-	 * @since 1.2
-	 */
-	public static final String	FRAMEWORK_EXECUTIONENVIRONMENT			= "org.osgi.framework.executionenvironment";
-
-	/**
-	 * Framework environment property (named
-	 * &quot;org.osgi.framework.bootdelegation&quot;) identifying packages for
-	 * which the Framework must delegate class loading to the boot class path.
-	 * <p>
-	 * The value of this property may be retrieved by calling the
-	 * <code>BundleContext.getProperty</code> method.
-	 * 
-	 * @since 1.3
-	 */
-	public static final String	FRAMEWORK_BOOTDELEGATION				= "org.osgi.framework.bootdelegation";
-
-	/**
-	 * Framework environment property (named
-	 * &quot;org.osgi.framework.system.packages&quot;) identifying package which
-	 * the system bundle must export.
-	 * <p>
-	 * The value of this property may be retrieved by calling the
-	 * <code>BundleContext.getProperty</code> method.
-	 * 
-	 * @since 1.3
-	 */
-	public static final String	FRAMEWORK_SYSTEMPACKAGES				= "org.osgi.framework.system.packages";
-
-	/**
-	 * Framework environment property (named
-	 * &quot;org.osgi.supports.framework.extension&quot;) identifying whether
-	 * the Framework supports framework extension bundles. If the value of this
-	 * property is <code>true</code>, then the Framework supports framework
-	 * extension bundles. The default value is <code>false</code>.
-	 * <p>
-	 * The value of this property may be retrieved by calling the
-	 * <code>BundleContext.getProperty</code> method.
-	 * 
-	 * @since 1.3
-	 */
-	public static final String	SUPPORTS_FRAMEWORK_EXTENSION			= "org.osgi.supports.framework.extension";
-
-	/**
-	 * Framework environment property (named
-	 * &quot;org.osgi.supports.bootclasspath.extension&quot;) identifying
-	 * whether the Framework supports bootclasspath extension bundles. If the
-	 * value of this property is <code>true</code>, then the Framework
-	 * supports bootclasspath extension bundles. The default value is
-	 * <code>false</code>.
-	 * <p>
-	 * The value of this property may be retrieved by calling the
-	 * <code>BundleContext.getProperty</code> method.
-	 * 
-	 * @since 1.3
-	 */
-	public static final String	SUPPORTS_BOOTCLASSPATH_EXTENSION		= "org.osgi.supports.bootclasspath.extension";
-
-	/**
-	 * Framework environment property (named
-	 * &quot;org.osgi.supports.framework.fragment&quot;) identifying whether the
-	 * Framework supports fragment bundles. If the value of this property is
-	 * <code>true</code>, then the Framework supports fragment bundles. The
-	 * default value is <code>false</code>.
-	 * <p>
-	 * The value of this property may be retrieved by calling the
-	 * <code>BundleContext.getProperty</code> method.
-	 * 
-	 * @since 1.3
-	 */
-	public static final String	SUPPORTS_FRAMEWORK_FRAGMENT				= "org.osgi.supports.framework.fragment";
-
-	/**
-	 * Framework environment property (named
-	 * &quot;org.osgi.supports.framework.requirebundle&quot;) identifying
-	 * whether the Framework supports the <code>Require-Bundle</code> manifest
-	 * header. If the value of this property is <code>true</code>, then the
-	 * Framework supports the <code>Require-Bundle</code> manifest header. The
-	 * default value is <code>false</code>.
-	 * <p>
-	 * The value of this property may be retrieved by calling the
-	 * <code>BundleContext.getProperty</code> method.
-	 * 
-	 * @since 1.3
-	 */
-	public static final String	SUPPORTS_FRAMEWORK_REQUIREBUNDLE		= "org.osgi.supports.framework.requirebundle";
-
-	/*
-	 * Service properties.
-	 */
-
-	/**
-	 * Service property (named &quot;objectClass&quot;) identifying all of the
-	 * class names under which a service was registered in the Framework (of
-	 * type <code>java.lang.String[]</code>).
-	 * 
-	 * <p>
-	 * This property is set by the Framework when a service is registered.
-	 */
-	public static final String	OBJECTCLASS								= "objectClass";
-
-	/**
-	 * Service property (named &quot;service.id&quot;) identifying a service's
-	 * registration number (of type <code>java.lang.Long</code>).
-	 * 
-	 * <p>
-	 * The value of this property is assigned by the Framework when a service is
-	 * registered. The Framework assigns a unique value that is larger than all
-	 * previously assigned values since the Framework was started. These values
-	 * are NOT persistent across restarts of the Framework.
-	 */
-	public static final String	SERVICE_ID								= "service.id";
-
-	/**
-	 * Service property (named &quot;service.pid&quot;) identifying a service's
-	 * persistent identifier.
-	 * 
-	 * <p>
-	 * This property may be supplied in the <code>properties</code>
-	 * <code>Dictionary</code>
-	 * object passed to the <code>BundleContext.registerService</code> method.
-	 * 
-	 * <p>
-	 * A service's persistent identifier uniquely identifies the service and
-	 * persists across multiple Framework invocations.
-	 * 
-	 * <p>
-	 * By convention, every bundle has its own unique namespace, starting with
-	 * the bundle's identifier (see {@link Bundle#getBundleId}) and followed by
-	 * a dot (.). A bundle may use this as the prefix of the persistent
-	 * identifiers for the services it registers.
-	 */
-	public static final String	SERVICE_PID								= "service.pid";
-
-	/**
-	 * Service property (named &quot;service.ranking&quot;) identifying a
-	 * service's ranking number (of type <code>java.lang.Integer</code>).
-	 * 
-	 * <p>
-	 * This property may be supplied in the <code>properties
-	 * Dictionary</code>
-	 * object passed to the <code>BundleContext.registerService</code> method.
-	 * 
-	 * <p>
-	 * The service ranking is used by the Framework to determine the <i>default
-	 * </i> service to be returned from a call to the
-	 * {@link BundleContext#getServiceReference} method: If more than one
-	 * service implements the specified class, the <code>ServiceReference</code>
-	 * object with the highest ranking is returned.
-	 * 
-	 * <p>
-	 * The default ranking is zero (0). A service with a ranking of
-	 * <code>Integer.MAX_VALUE</code> is very likely to be returned as the
-	 * default service, whereas a service with a ranking of
-	 * <code>Integer.MIN_VALUE</code> is very unlikely to be returned.
-	 * 
-	 * <p>
-	 * If the supplied property value is not of type
-	 * <code>java.lang.Integer</code>, it is deemed to have a ranking value
-	 * of zero.
-	 */
-	public static final String	SERVICE_RANKING							= "service.ranking";
-
-	/**
-	 * Service property (named &quot;service.vendor&quot;) identifying a
-	 * service's vendor.
-	 * 
-	 * <p>
-	 * This property may be supplied in the properties <code>Dictionary</code>
-	 * object passed to the <code>BundleContext.registerService</code> method.
-	 */
-	public static final String	SERVICE_VENDOR							= "service.vendor";
-
-	/**
-	 * Service property (named &quot;service.description&quot;) identifying a
-	 * service's description.
-	 * 
-	 * <p>
-	 * This property may be supplied in the properties <code>Dictionary</code>
-	 * object passed to the <code>BundleContext.registerService</code> method.
-	 */
-	public static final String	SERVICE_DESCRIPTION						= "service.description";
-
-	/**
-	 * Manifest header (named &quot;Bundle-SymbolicName&quot;) identifying the
-	 * bundle's symbolic name.
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 * 
-	 * @since 1.3
-	 */
-	public final static String	BUNDLE_SYMBOLICNAME						= "Bundle-SymbolicName";
-
-	/**
-	 * Manifest header directive (named &quot;singleton&quot;) identifying
-	 * whether a bundle is a singleton. The default value is <code>false</code>.
-	 * 
-	 * <p>
-	 * The directive value is encoded in the Bundle-SymbolicName manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Bundle-SymbolicName: com.acme.module.test; singleton:=true
-	 * </pre>
-	 * 
-	 * @since 1.3
-	 */
-	public final static String	SINGLETON_DIRECTIVE						= "singleton";
-
-	/**
-	 * Manifest header directive (named &quot;fragment-attachment&quot;)
-	 * identifying if and when a fragment may attach to a host bundle. The
-	 * default value is <code>&quot;always&quot;</code>.
-	 * 
-	 * <p>
-	 * The directive value is encoded in the Bundle-SymbolicName manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Bundle-SymbolicName: com.acme.module.test; fragment-attachment:=&quot;never&quot;
-	 * </pre>
-	 * 
-	 * @see Constants#FRAGMENT_ATTACHMENT_ALWAYS
-	 * @see Constants#FRAGMENT_ATTACHMENT_RESOLVETIME
-	 * @see Constants#FRAGMENT_ATTACHMENT_NEVER
-	 * @since 1.3
-	 */
-	public final static String	FRAGMENT_ATTACHMENT_DIRECTIVE			= "fragment-attachment";
-
-	/**
-	 * Manifest header directive value (named &quot;always&quot;) identifying a
-	 * fragment attachment type of always. A fragment attachment type of always
-	 * indicates that fragments are allowed to attach to the host bundle at any
-	 * time (while the host is resolved or during the process of resolving the
-	 * host bundle).
-	 * 
-	 * <p>
-	 * The directive value is encoded in the Bundle-SymbolicName manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Bundle-SymbolicName: com.acme.module.test; fragment-attachment:=&quot;always&quot;
-	 * </pre>
-	 * 
-	 * @see Constants#FRAGMENT_ATTACHMENT_DIRECTIVE
-	 * @since 1.3
-	 */
-	public final static String	FRAGMENT_ATTACHMENT_ALWAYS				= "always";
-
-	/**
-	 * Manifest header directive value (named &quot;resolve-time&quot;)
-	 * identifying a fragment attachment type of resolve-time. A fragment
-	 * attachment type of resolve-time indicates that fragments are allowed to
-	 * attach to the host bundle only during the process of resolving the host
-	 * bundle.
-	 * 
-	 * <p>
-	 * The directive value is encoded in the Bundle-SymbolicName manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Bundle-SymbolicName: com.acme.module.test; fragment-attachment:=&quot;resolve-time&quot;
-	 * </pre>
-	 * 
-	 * @see Constants#FRAGMENT_ATTACHMENT_DIRECTIVE
-	 * @since 1.3
-	 */
-	public final static String	FRAGMENT_ATTACHMENT_RESOLVETIME			= "resolve-time";
-
-	/**
-	 * Manifest header directive value (named &quot;never&quot;) identifying a
-	 * fragment attachment type of never. A fragment attachment type of never
-	 * indicates that no fragments are allowed to attach to the host bundle at
-	 * any time.
-	 * 
-	 * <p>
-	 * The directive value is encoded in the Bundle-SymbolicName manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Bundle-SymbolicName: com.acme.module.test; fragment-attachment:=&quot;never&quot;
-	 * </pre>
-	 * 
-	 * @see Constants#FRAGMENT_ATTACHMENT_DIRECTIVE
-	 * @since 1.3
-	 */
-	public final static String	FRAGMENT_ATTACHMENT_NEVER				= "never";
-
-	/**
-	 * Manifest header (named &quot;Bundle-Localization&quot;) identifying the
-	 * base name of the bundle's localization entries.
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 * 
-	 * @see #BUNDLE_LOCALIZATION_DEFAULT_BASENAME
-	 * @since 1.3
-	 */
-	public final static String	BUNDLE_LOCALIZATION						= "Bundle-Localization";
-
-	/**
-	 * Default value for the <code>Bundle-Localization</code> manifest header.
-	 * 
-	 * @see #BUNDLE_LOCALIZATION
-	 * @since 1.3
-	 */
-	public final static String	BUNDLE_LOCALIZATION_DEFAULT_BASENAME	= "OSGI-INF/l10n/bundle";
-
-	/**
-	 * Manifest header (named &quot;Require-Bundle&quot;) identifying the
-	 * symbolic names of other bundles required by the bundle.
-	 * 
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 * 
-	 * @since 1.3
-	 */
-	public final static String	REQUIRE_BUNDLE							= "Require-Bundle";
-
-	/**
-	 * Manifest header attribute (named &quot;bundle-version&quot;) identifying
-	 * a range of versions for a bundle specified in the Require-Bundle or
-	 * Fragment-Host manifest headers. The default value is <code>0.0.0</code>.
-	 * 
-	 * <p>
-	 * The attribute value is encoded in the Require-Bundle manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Require-Bundle: com.acme.module.test; bundle-version=&quot;1.1&quot;
-	 *   Require-Bundle: com.acme.module.test; bundle-version=&quot;[1.0,2.0)&quot;
-	 * </pre>
-	 * 
-	 * <p>
-	 * The bundle-version attribute value uses a mathematical interval notation
-	 * to specify a range of bundle versions. A bundle-version attribute value
-	 * specified as a single version means a version range that includes any
-	 * bundle version greater than or equal to the specified version.
-	 * 
-	 * @since 1.3
-	 */
-	public static final String	BUNDLE_VERSION_ATTRIBUTE				= "bundle-version";
-
-	/**
-	 * Manifest header (named &quot;Fragment-Host&quot;) identifying the
-	 * symbolic name of another bundle for which that the bundle is a fragment.
-	 * 
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 * 
-	 * @since 1.3
-	 */
-	public final static String	FRAGMENT_HOST							= "Fragment-Host";
-
-	/**
-	 * Manifest header attribute (named &quot;selection-filter&quot;) is used
-	 * for selection by filtering based upon system properties.
-	 * 
-	 * <p>
-	 * The attribute value is encoded in manifest headers like:
-	 * 
-	 * <pre>
-	 *   Bundle-NativeCode: libgtk.so; selection-filter=&quot;(ws=gtk)&quot;; ...
-	 * </pre>
-	 * 
-	 * @since 1.3
-	 */
-	public final static String	SELECTION_FILTER_ATTRIBUTE				= "selection-filter";
-
-	/**
-	 * Manifest header (named &quot;Bundle-ManifestVersion&quot;) identifying
-	 * the bundle manifest version. A bundle manifest may express the version of
-	 * the syntax in which it is written by specifying a bundle manifest
-	 * version. Bundles exploiting OSGi R4, or later, syntax must specify a
-	 * bundle manifest version.
-	 * <p>
-	 * The bundle manifest version defined by OSGi R4 or, more specifically, by
-	 * V1.3 of the OSGi Framework Specification is "2".
-	 * 
-	 * <p>
-	 * The attribute value may be retrieved from the <code>Dictionary</code>
-	 * object returned by the <code>Bundle.getHeaders</code> method.
-	 * 
-	 * @since 1.3
-	 */
-	public final static String	BUNDLE_MANIFESTVERSION					= "Bundle-ManifestVersion";
-
-	/**
-	 * Manifest header attribute (named &quot;version&quot;) identifying the
-	 * version of a package specified in the Export-Package or Import-Package
-	 * manifest header.
-	 * 
-	 * <p>
-	 * The attribute value is encoded in the Export-Package or Import-Package
-	 * manifest header like:
-	 * 
-	 * <pre>
-	 *   Import-Package: org.osgi.framework; version=&quot;1.1&quot;
-	 * </pre>
-	 * 
-	 * @since 1.3
-	 */
-	public final static String	VERSION_ATTRIBUTE						= "version";
-
-	/**
-	 * Manifest header attribute (named &quot;bundle-symbolic-name&quot;)
-	 * identifying the symbolic name of a bundle that exports a package
-	 * specified in the Import-Package manifest header.
-	 * 
-	 * <p>
-	 * The attribute value is encoded in the Import-Package manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Import-Package: org.osgi.framework; bundle-symbolic-name=&quot;com.acme.module.test&quot;
-	 * </pre>
-	 * 
-	 * @since 1.3
-	 */
-	public final static String	BUNDLE_SYMBOLICNAME_ATTRIBUTE			= "bundle-symbolic-name";
-
-	/**
-	 * Manifest header directive (named &quot;resolution&quot;) identifying the
-	 * resolution type in the Import-Package or Require-Bundle manifest header.
-	 * 
-	 * <p>
-	 * The directive value is encoded in the Import-Package or Require-Bundle
-	 * manifest header like:
-	 * 
-	 * <pre>
-	 *   Import-Package: org.osgi.framework; resolution:=&quot;optional&quot;
-	 *   Require-Bundle: com.acme.module.test; resolution:=&quot;optional&quot;
-	 * </pre>
-	 * 
-	 * @see Constants#RESOLUTION_MANDATORY
-	 * @see Constants#RESOLUTION_OPTIONAL
-	 * @since 1.3
-	 */
-	public final static String	RESOLUTION_DIRECTIVE					= "resolution";
-
-	/**
-	 * Manifest header directive value (named &quot;mandatory&quot;) identifying
-	 * a mandatory resolution type. A mandatory resolution type indicates that
-	 * the import package or require bundle must be resolved when the bundle is
-	 * resolved. If such an import or require bundle cannot be resolved, the
-	 * module fails to resolve.
-	 * 
-	 * <p>
-	 * The directive value is encoded in the Import-Package or Require-Bundle
-	 * manifest header like:
-	 * 
-	 * <pre>
-	 *   Import-Package: org.osgi.framework; resolution:=&quot;manditory&quot;
-	 *   Require-Bundle: com.acme.module.test; resolution:=&quot;manditory&quot;
-	 * </pre>
-	 * 
-	 * @see Constants#RESOLUTION_DIRECTIVE
-	 * @since 1.3
-	 */
-	public final static String	RESOLUTION_MANDATORY					= "mandatory";
-
-	/**
-	 * Manifest header directive value (named &quot;optional&quot;) identifying
-	 * an optional resolution type. An optional resolution type indicates that
-	 * the import or require bundle is optional and the bundle may be resolved
-	 * without the import or require bundle being resolved. If the import or
-	 * require bundle is not resolved when the bundle is resolved, the import or
-	 * require bundle may not be resolved before the bundle is refreshed.
-	 * 
-	 * <p>
-	 * The directive value is encoded in the Import-Package or Require-Bundle
-	 * manifest header like:
-	 * 
-	 * <pre>
-	 *   Import-Package: org.osgi.framework; resolution:=&quot;optional&quot;
-	 *   Require-Bundle: com.acme.module.test; resolution:=&quot;optional&quot;
-	 * </pre>
-	 * 
-	 * @see Constants#RESOLUTION_DIRECTIVE
-	 * @since 1.3
-	 */
-	public final static String	RESOLUTION_OPTIONAL						= "optional";
-
-	/**
-	 * Manifest header directive (named &quot;uses&quot;) identifying a list of
-	 * packages that an exported package uses.
-	 * 
-	 * <p>
-	 * The directive value is encoded in the Export-Package manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Export-Package: org.osgi.util.tracker; uses:=&quot;org.osgi.framework&quot;
-	 * </pre>
-	 * 
-	 * @since 1.3
-	 */
-	public final static String	USES_DIRECTIVE							= "uses";
-
-	/**
-	 * Manifest header directive (named &quot;include&quot;) identifying a list
-	 * of classes and/or resources of the specified package which must be
-	 * allowed to be exported in the Export-Package manifest header.
-	 * 
-	 * <p>
-	 * The directive value is encoded in the Export-Package manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Export-Package: org.osgi.framework; include:=&quot;MyStuff*&quot;
-	 * </pre>
-	 * 
-	 * @since 1.3
-	 */
-	public final static String	INCLUDE_DIRECTIVE						= "include";
-
-	/**
-	 * Manifest header directive (named &quot;exclude&quot;) identifying a list
-	 * of classes and/or resources of the specified package which must not be
-	 * allowed to be exported in the Export-Package manifest header.
-	 * 
-	 * <p>
-	 * The directive value is encoded in the Export-Package manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Export-Package: org.osgi.framework; exclude:=&quot;MyStuff*&quot;
-	 * </pre>
-	 * 
-	 * @since 1.3
-	 */
-	public final static String	EXCLUDE_DIRECTIVE						= "exclude";
-
-	/**
-	 * Manifest header directive (named &quot;mandatory&quot;) identifying names
-	 * of matching attributes which must be specified by matching Import-Package
-	 * statements in the Export-Package manifest header.
-	 * 
-	 * <p>
-	 * The directive value is encoded in the Export-Package manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Export-Package: org.osgi.framework; mandatory:=&quot;bundle-symbolic-name&quot;
-	 * </pre>
-	 * 
-	 * @since 1.3
-	 */
-	public final static String	MANDATORY_DIRECTIVE						= "mandatory";
-
-	/**
-	 * Manifest header directive (named &quot;visibility&quot;) identifying the
-	 * visibility of a reqiured bundle in the Require-Bundle manifest header.
-	 * 
-	 * <p>
-	 * The directive value is encoded in the Require-Bundle manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Require-Bundle: com.acme.module.test; visibility:=&quot;reexport&quot;
-	 * </pre>
-	 * 
-	 * @see Constants#VISIBILITY_PRIVATE
-	 * @see Constants#VISIBILITY_REEXPORT
-	 * @since 1.3
-	 */
-	public final static String	VISIBILITY_DIRECTIVE					= "visibility";
-
-	/**
-	 * Manifest header directive value (named &quot;private&quot;) identifying a
-	 * private visibility type. A private visibility type indicates that any
-	 * packages that are exported by the required bundle are not made visible on
-	 * the export signature of the requiring bundle.
-	 * 
-	 * <p>
-	 * The directive value is encoded in the Require-Bundle manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Require-Bundle: com.acme.module.test; visibility:=&quot;private&quot;
-	 * </pre>
-	 * 
-	 * @see Constants#VISIBILITY_DIRECTIVE
-	 * @since 1.3
-	 */
-	public final static String	VISIBILITY_PRIVATE						= "private";
-
-	/**
-	 * Manifest header directive value (named &quot;reexport&quot;) identifying
-	 * a reexport visibility type. A reexport visibility type indicates any
-	 * packages that are exported by the required bundle are re-exported by the
-	 * requiring bundle. Any arbitrary arbitrary matching attributes with which
-	 * they were exported by the required bundle are deleted.
-	 * 
-	 * <p>
-	 * The directive value is encoded in the Require-Bundle manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Require-Bundle: com.acme.module.test; visibility:=&quot;reexport&quot;
-	 * </pre>
-	 * 
-	 * @see Constants#VISIBILITY_DIRECTIVE
-	 * @since 1.3
-	 */
-	public final static String	VISIBILITY_REEXPORT						= "reexport";
-	/**
-	 * Manifest header directive (named &quot;extension&quot;)
-	 * identifying the type of the extension fragment.
-	 * 
-	 * <p>
-	 * The directive value is encoded in the Fragment-Host manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Fragment-Host: system.bundle; extension:=&quot;framework&quot;
-	 * </pre>
-	 * 
-	 * @see Constants#EXTENSION_FRAMEWORK
-	 * @see Constants#EXTENSION_BOOTCLASSPATH
-	 * @since 1.3
-	 */
-	public final static String	EXTENSION_DIRECTIVE			= "extension";
-
-	/**
-	 * Manifest header directive value (named &quot;framework&quot;) identifying 
-	 * the type of extension fragment. An extension fragment type of framework
-	 * indicates that the extension fragment is to be loaded by
-	 * the framework's class loader.
-	 * 
-	 * <p>
-	 * The directive value is encoded in the Fragment-Host manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Fragment-Host: system.bundle; extension:=&quot;framework&quot;
-	 * </pre>
-	 * 
-	 * @see Constants#EXTENSION_DIRECTIVE
-	 * @since 1.3
-	 */
-	public final static String	EXTENSION_FRAMEWORK				= "framework";
-
-	/**
-	 * Manifest header directive value (named &quot;bootclasspath&quot;) identifying 
-	 * the type of extension fragment. An extension fragment type of bootclasspath
-	 * indicates that the extension fragment is to be loaded by
-	 * the boot class loader.
-	 * 
-	 * <p>
-	 * The directive value is encoded in the Fragment-Host manifest header
-	 * like:
-	 * 
-	 * <pre>
-	 *   Fragment-Host: system.bundle; extension:=&quot;bootclasspath&quot;
-	 * </pre>
-	 * 
-	 * @see Constants#EXTENSION_DIRECTIVE
-	 * @since 1.3
-	 */
-	public final static String	EXTENSION_BOOTCLASSPATH			= "bootclasspath";
-
+/*
+ * $Header: /cvshome/build/org.osgi.framework/src/org/osgi/framework/Constants.java,v 1.25 2006/06/16 16:31:18 hargrave Exp $
+ *
+ * Copyright (c) OSGi Alliance (2000, 2006). 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.framework;
+
+/**
+ * Defines standard names for the OSGi environment property, service property,
+ * and Manifest header attribute keys.
+ * 
+ * <p>
+ * The values associated with these keys are of type
+ * <code>java.lang.String</code>, unless otherwise indicated.
+ * 
+ * @version $Revision: 1.25 $
+ * @since 1.1
+ */
+
+public interface Constants {
+	/**
+	 * Location identifier of the OSGi <i>system bundle </i>, which is defined
+	 * to be &quot;System Bundle&quot;.
+	 */
+	public static final String	SYSTEM_BUNDLE_LOCATION					= "System Bundle";
+
+	/**
+	 * Alias for the symbolic name of the OSGi <i>system bundle </i>. It is
+	 * defined to be &quot;system.bundle&quot;.
+	 * 
+	 * @since 1.3
+	 */
+	public static final String	SYSTEM_BUNDLE_SYMBOLICNAME				= "system.bundle";
+
+	/**
+	 * Manifest header (named &quot;Bundle-Category&quot;) identifying the
+	 * bundle's category.
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 */
+	public static final String	BUNDLE_CATEGORY							= "Bundle-Category";
+
+	/**
+	 * Manifest header (named &quot;Bundle-ClassPath&quot;) identifying a list
+	 * of directories and embedded JAR files, which are bundle resources used to
+	 * extend the bundle's classpath.
+	 * 
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 */
+	public static final String	BUNDLE_CLASSPATH						= "Bundle-ClassPath";
+
+	/**
+	 * Manifest header (named &quot;Bundle-Copyright&quot;) identifying the
+	 * bundle's copyright information.
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 */
+	public static final String	BUNDLE_COPYRIGHT						= "Bundle-Copyright";
+
+	/**
+	 * Manifest header (named &quot;Bundle-Description&quot;) containing a brief
+	 * description of the bundle's functionality.
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 */
+	public static final String	BUNDLE_DESCRIPTION						= "Bundle-Description";
+
+	/**
+	 * Manifest header (named &quot;Bundle-Name&quot;) identifying the bundle's
+	 * name.
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 */
+	public static final String	BUNDLE_NAME								= "Bundle-Name";
+
+	/**
+	 * Manifest header (named &quot;Bundle-NativeCode&quot;) identifying a
+	 * number of hardware environments and the native language code libraries
+	 * that the bundle is carrying for each of these environments.
+	 * 
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 */
+	public static final String	BUNDLE_NATIVECODE						= "Bundle-NativeCode";
+
+	/**
+	 * Manifest header (named &quot;Export-Package&quot;) identifying the
+	 * packages that the bundle offers to the Framework for export.
+	 * 
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 */
+	public static final String	EXPORT_PACKAGE							= "Export-Package";
+
+	/**
+	 * Manifest header (named &quot;Export-Service&quot;) identifying the fully
+	 * qualified class names of the services that the bundle may register (used
+	 * for informational purposes only).
+	 * 
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 * 
+	 * @deprecated As of 1.2.
+	 */
+	public static final String	EXPORT_SERVICE							= "Export-Service";
+
+	/**
+	 * Manifest header (named &quot;Import-Package&quot;) identifying the
+	 * packages on which the bundle depends.
+	 * 
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 */
+	public static final String	IMPORT_PACKAGE							= "Import-Package";
+
+	/**
+	 * Manifest header (named &quot;DynamicImport-Package&quot;) identifying the
+	 * packages that the bundle may dynamically import during execution.
+	 * 
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 * 
+	 * @since 1.2
+	 */
+	public static final String	DYNAMICIMPORT_PACKAGE					= "DynamicImport-Package";
+
+	/**
+	 * Manifest header (named &quot;Import-Service&quot;) identifying the fully
+	 * qualified class names of the services that the bundle requires (used for
+	 * informational purposes only).
+	 * 
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 *
+	 * @deprecated As of 1.2.
+	 */
+	public static final String	IMPORT_SERVICE							= "Import-Service";
+
+	/**
+	 * Manifest header (named &quot;Bundle-Vendor&quot;) identifying the
+	 * bundle's vendor.
+	 * 
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 */
+	public static final String	BUNDLE_VENDOR							= "Bundle-Vendor";
+
+	/**
+	 * Manifest header (named &quot;Bundle-Version&quot;) identifying the
+	 * bundle's version.
+	 * 
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 */
+	public static final String	BUNDLE_VERSION							= "Bundle-Version";
+
+	/**
+	 * Manifest header (named &quot;Bundle-DocURL&quot;) identifying the
+	 * bundle's documentation URL, from which further information about the
+	 * bundle may be obtained.
+	 * 
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 */
+	public static final String	BUNDLE_DOCURL							= "Bundle-DocURL";
+
+	/**
+	 * Manifest header (named &quot;Bundle-ContactAddress&quot;) identifying the
+	 * contact address where problems with the bundle may be reported; for
+	 * example, an email address.
+	 * 
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 */
+	public static final String	BUNDLE_CONTACTADDRESS					= "Bundle-ContactAddress";
+
+	/**
+	 * Manifest header attribute (named &quot;Bundle-Activator&quot;)
+	 * identifying the bundle's activator class.
+	 * 
+	 * <p>
+	 * If present, this header specifies the name of the bundle resource class
+	 * that implements the <code>BundleActivator</code> interface and whose
+	 * <code>start</code> and <code>stop</code> methods are called by the
+	 * Framework when the bundle is started and stopped, respectively.
+	 * 
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 */
+	public static final String	BUNDLE_ACTIVATOR						= "Bundle-Activator";
+
+	/**
+	 * Manifest header (named &quot;Bundle-UpdateLocation&quot;) identifying the
+	 * location from which a new bundle version is obtained during a bundle
+	 * update operation.
+	 * 
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 */
+	public static final String	BUNDLE_UPDATELOCATION					= "Bundle-UpdateLocation";
+
+	/**
+	 * Manifest header attribute (named &quot;specification-version&quot;)
+	 * identifying the version of a package specified in the Export-Package or
+	 * Import-Package manifest header.
+	 * 
+	 * <p>
+	 * The attribute value is encoded in the Export-Package or Import-Package
+	 * manifest header like:
+	 * 
+	 * <pre>
+	 *   Import-Package: org.osgi.framework ; specification-version=&quot;1.1&quot;
+	 * </pre>
+	 * 
+	 * @deprecated As of 1.3. This has been replaced by
+	 *             {@link #VERSION_ATTRIBUTE}.
+	 */
+	public static final String	PACKAGE_SPECIFICATION_VERSION			= "specification-version";
+
+	/**
+	 * Manifest header attribute (named &quot;processor&quot;) identifying the
+	 * processor required to run native bundle code specified in the
+	 * Bundle-NativeCode manifest header).
+	 * 
+	 * <p>
+	 * The attribute value is encoded in the Bundle-NativeCode manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Bundle-NativeCode: http.so ; processor=x86 ...
+	 * </pre>
+	 */
+	public static final String	BUNDLE_NATIVECODE_PROCESSOR				= "processor";
+
+	/**
+	 * Manifest header attribute (named &quot;osname&quot;) identifying the
+	 * operating system required to run native bundle code specified in the
+	 * Bundle-NativeCode manifest header).
+	 * <p>
+	 * The attribute value is encoded in the Bundle-NativeCode manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Bundle-NativeCode: http.so ; osname=Linux ...
+	 * </pre>
+	 */
+	public static final String	BUNDLE_NATIVECODE_OSNAME				= "osname";
+
+	/**
+	 * Manifest header attribute (named &quot;osversion&quot;) identifying the
+	 * operating system version required to run native bundle code specified in
+	 * the Bundle-NativeCode manifest header).
+	 * <p>
+	 * The attribute value is encoded in the Bundle-NativeCode manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Bundle-NativeCode: http.so ; osversion=&quot;2.34&quot; ...
+	 * </pre>
+	 */
+	public static final String	BUNDLE_NATIVECODE_OSVERSION				= "osversion";
+
+	/**
+	 * Manifest header attribute (named &quot;language&quot;) identifying the
+	 * language in which the native bundle code is written specified in the
+	 * Bundle-NativeCode manifest header. See ISO 639 for possible values.
+	 * <p>
+	 * The attribute value is encoded in the Bundle-NativeCode manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Bundle-NativeCode: http.so ; language=nl_be ...
+	 * </pre>
+	 */
+	public static final String	BUNDLE_NATIVECODE_LANGUAGE				= "language";
+
+	/**
+	 * Manifest header (named &quot;Bundle-RequiredExecutionEnvironment&quot;)
+	 * identifying the required execution environment for the bundle. The
+	 * service platform may run this bundle if any of the execution environments
+	 * named in this header matches one of the execution environments it
+	 * implements.
+	 * 
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 * 
+	 * @since 1.2
+	 */
+	public static final String	BUNDLE_REQUIREDEXECUTIONENVIRONMENT		= "Bundle-RequiredExecutionEnvironment";
+
+	/*
+	 * Framework environment properties.
+	 */
+
+	/**
+	 * Framework environment property (named
+	 * &quot;org.osgi.framework.version&quot;) identifying the Framework
+	 * version.
+	 * 
+	 * <p>
+	 * The value of this property may be retrieved by calling the
+	 * <code>BundleContext.getProperty</code> method.
+	 */
+	public static final String	FRAMEWORK_VERSION						= "org.osgi.framework.version";
+
+	/**
+	 * Framework environment property (named
+	 * &quot;org.osgi.framework.vendor&quot;) identifying the Framework
+	 * implementation vendor.
+	 * 
+	 * <p>
+	 * The value of this property may be retrieved by calling the
+	 * <code>BundleContext.getProperty</code> method.
+	 */
+	public static final String	FRAMEWORK_VENDOR						= "org.osgi.framework.vendor";
+
+	/**
+	 * Framework environment property (named
+	 * &quot;org.osgi.framework.language&quot;) identifying the Framework
+	 * implementation language (see ISO 639 for possible values).
+	 * 
+	 * <p>
+	 * The value of this property may be retrieved by calling the
+	 * <code>BundleContext.getProperty</code> method.
+	 */
+	public static final String	FRAMEWORK_LANGUAGE						= "org.osgi.framework.language";
+
+	/**
+	 * Framework environment property (named
+	 * &quot;org.osgi.framework.os.name&quot;) identifying the Framework
+	 * host-computer's operating system.
+	 * 
+	 * <p>
+	 * The value of this property may be retrieved by calling the
+	 * <code>BundleContext.getProperty</code> method.
+	 */
+	public static final String	FRAMEWORK_OS_NAME						= "org.osgi.framework.os.name";
+
+	/**
+	 * Framework environment property (named
+	 * &quot;org.osgi.framework.os.version&quot;) identifying the Framework
+	 * host-computer's operating system version number.
+	 * 
+	 * <p>
+	 * The value of this property may be retrieved by calling the
+	 * <code>BundleContext.getProperty</code> method.
+	 */
+	public static final String	FRAMEWORK_OS_VERSION					= "org.osgi.framework.os.version";
+
+	/**
+	 * Framework environment property (named
+	 * &quot;org.osgi.framework.processor&quot;) identifying the Framework
+	 * host-computer's processor name.
+	 * <p>
+	 * The value of this property may be retrieved by calling the
+	 * <code>BundleContext.getProperty</code> method.
+	 */
+	public static final String	FRAMEWORK_PROCESSOR						= "org.osgi.framework.processor";
+
+	/**
+	 * Framework environment property (named
+	 * &quot;org.osgi.framework.executionenvironment&quot;) identifying
+	 * execution environments provided by the Framework.
+	 * <p>
+	 * The value of this property may be retrieved by calling the
+	 * <code>BundleContext.getProperty</code> method.
+	 * 
+	 * @since 1.2
+	 */
+	public static final String	FRAMEWORK_EXECUTIONENVIRONMENT			= "org.osgi.framework.executionenvironment";
+
+	/**
+	 * Framework environment property (named
+	 * &quot;org.osgi.framework.bootdelegation&quot;) identifying packages for
+	 * which the Framework must delegate class loading to the boot class path.
+	 * <p>
+	 * The value of this property may be retrieved by calling the
+	 * <code>BundleContext.getProperty</code> method.
+	 * 
+	 * @since 1.3
+	 */
+	public static final String	FRAMEWORK_BOOTDELEGATION				= "org.osgi.framework.bootdelegation";
+
+	/**
+	 * Framework environment property (named
+	 * &quot;org.osgi.framework.system.packages&quot;) identifying package which
+	 * the system bundle must export.
+	 * <p>
+	 * The value of this property may be retrieved by calling the
+	 * <code>BundleContext.getProperty</code> method.
+	 * 
+	 * @since 1.3
+	 */
+	public static final String	FRAMEWORK_SYSTEMPACKAGES				= "org.osgi.framework.system.packages";
+
+	/**
+	 * Framework environment property (named
+	 * &quot;org.osgi.supports.framework.extension&quot;) identifying whether
+	 * the Framework supports framework extension bundles. If the value of this
+	 * property is <code>true</code>, then the Framework supports framework
+	 * extension bundles. The default value is <code>false</code>.
+	 * <p>
+	 * The value of this property may be retrieved by calling the
+	 * <code>BundleContext.getProperty</code> method.
+	 * 
+	 * @since 1.3
+	 */
+	public static final String	SUPPORTS_FRAMEWORK_EXTENSION			= "org.osgi.supports.framework.extension";
+
+	/**
+	 * Framework environment property (named
+	 * &quot;org.osgi.supports.bootclasspath.extension&quot;) identifying
+	 * whether the Framework supports bootclasspath extension bundles. If the
+	 * value of this property is <code>true</code>, then the Framework
+	 * supports bootclasspath extension bundles. The default value is
+	 * <code>false</code>.
+	 * <p>
+	 * The value of this property may be retrieved by calling the
+	 * <code>BundleContext.getProperty</code> method.
+	 * 
+	 * @since 1.3
+	 */
+	public static final String	SUPPORTS_BOOTCLASSPATH_EXTENSION		= "org.osgi.supports.bootclasspath.extension";
+
+	/**
+	 * Framework environment property (named
+	 * &quot;org.osgi.supports.framework.fragment&quot;) identifying whether the
+	 * Framework supports fragment bundles. If the value of this property is
+	 * <code>true</code>, then the Framework supports fragment bundles. The
+	 * default value is <code>false</code>.
+	 * <p>
+	 * The value of this property may be retrieved by calling the
+	 * <code>BundleContext.getProperty</code> method.
+	 * 
+	 * @since 1.3
+	 */
+	public static final String	SUPPORTS_FRAMEWORK_FRAGMENT				= "org.osgi.supports.framework.fragment";
+
+	/**
+	 * Framework environment property (named
+	 * &quot;org.osgi.supports.framework.requirebundle&quot;) identifying
+	 * whether the Framework supports the <code>Require-Bundle</code> manifest
+	 * header. If the value of this property is <code>true</code>, then the
+	 * Framework supports the <code>Require-Bundle</code> manifest header. The
+	 * default value is <code>false</code>.
+	 * <p>
+	 * The value of this property may be retrieved by calling the
+	 * <code>BundleContext.getProperty</code> method.
+	 * 
+	 * @since 1.3
+	 */
+	public static final String	SUPPORTS_FRAMEWORK_REQUIREBUNDLE		= "org.osgi.supports.framework.requirebundle";
+
+	/*
+	 * Service properties.
+	 */
+
+	/**
+	 * Service property (named &quot;objectClass&quot;) identifying all of the
+	 * class names under which a service was registered in the Framework (of
+	 * type <code>java.lang.String[]</code>).
+	 * 
+	 * <p>
+	 * This property is set by the Framework when a service is registered.
+	 */
+	public static final String	OBJECTCLASS								= "objectClass";
+
+	/**
+	 * Service property (named &quot;service.id&quot;) identifying a service's
+	 * registration number (of type <code>java.lang.Long</code>).
+	 * 
+	 * <p>
+	 * The value of this property is assigned by the Framework when a service is
+	 * registered. The Framework assigns a unique value that is larger than all
+	 * previously assigned values since the Framework was started. These values
+	 * are NOT persistent across restarts of the Framework.
+	 */
+	public static final String	SERVICE_ID								= "service.id";
+
+	/**
+	 * Service property (named &quot;service.pid&quot;) identifying a service's
+	 * persistent identifier.
+	 * 
+	 * <p>
+	 * This property may be supplied in the <code>properties</code>
+	 * <code>Dictionary</code>
+	 * object passed to the <code>BundleContext.registerService</code> method.
+	 * 
+	 * <p>
+	 * A service's persistent identifier uniquely identifies the service and
+	 * persists across multiple Framework invocations.
+	 * 
+	 * <p>
+	 * By convention, every bundle has its own unique namespace, starting with
+	 * the bundle's identifier (see {@link Bundle#getBundleId}) and followed by
+	 * a dot (.). A bundle may use this as the prefix of the persistent
+	 * identifiers for the services it registers.
+	 */
+	public static final String	SERVICE_PID								= "service.pid";
+
+	/**
+	 * Service property (named &quot;service.ranking&quot;) identifying a
+	 * service's ranking number (of type <code>java.lang.Integer</code>).
+	 * 
+	 * <p>
+	 * This property may be supplied in the <code>properties
+	 * Dictionary</code>
+	 * object passed to the <code>BundleContext.registerService</code> method.
+	 * 
+	 * <p>
+	 * The service ranking is used by the Framework to determine the <i>default
+	 * </i> service to be returned from a call to the
+	 * {@link BundleContext#getServiceReference} method: If more than one
+	 * service implements the specified class, the <code>ServiceReference</code>
+	 * object with the highest ranking is returned.
+	 * 
+	 * <p>
+	 * The default ranking is zero (0). A service with a ranking of
+	 * <code>Integer.MAX_VALUE</code> is very likely to be returned as the
+	 * default service, whereas a service with a ranking of
+	 * <code>Integer.MIN_VALUE</code> is very unlikely to be returned.
+	 * 
+	 * <p>
+	 * If the supplied property value is not of type
+	 * <code>java.lang.Integer</code>, it is deemed to have a ranking value
+	 * of zero.
+	 */
+	public static final String	SERVICE_RANKING							= "service.ranking";
+
+	/**
+	 * Service property (named &quot;service.vendor&quot;) identifying a
+	 * service's vendor.
+	 * 
+	 * <p>
+	 * This property may be supplied in the properties <code>Dictionary</code>
+	 * object passed to the <code>BundleContext.registerService</code> method.
+	 */
+	public static final String	SERVICE_VENDOR							= "service.vendor";
+
+	/**
+	 * Service property (named &quot;service.description&quot;) identifying a
+	 * service's description.
+	 * 
+	 * <p>
+	 * This property may be supplied in the properties <code>Dictionary</code>
+	 * object passed to the <code>BundleContext.registerService</code> method.
+	 */
+	public static final String	SERVICE_DESCRIPTION						= "service.description";
+
+	/**
+	 * Manifest header (named &quot;Bundle-SymbolicName&quot;) identifying the
+	 * bundle's symbolic name.
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 * 
+	 * @since 1.3
+	 */
+	public final static String	BUNDLE_SYMBOLICNAME						= "Bundle-SymbolicName";
+
+	/**
+	 * Manifest header directive (named &quot;singleton&quot;) identifying
+	 * whether a bundle is a singleton. The default value is <code>false</code>.
+	 * 
+	 * <p>
+	 * The directive value is encoded in the Bundle-SymbolicName manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Bundle-SymbolicName: com.acme.module.test; singleton:=true
+	 * </pre>
+	 * 
+	 * @since 1.3
+	 */
+	public final static String	SINGLETON_DIRECTIVE						= "singleton";
+
+	/**
+	 * Manifest header directive (named &quot;fragment-attachment&quot;)
+	 * identifying if and when a fragment may attach to a host bundle. The
+	 * default value is <code>&quot;always&quot;</code>.
+	 * 
+	 * <p>
+	 * The directive value is encoded in the Bundle-SymbolicName manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Bundle-SymbolicName: com.acme.module.test; fragment-attachment:=&quot;never&quot;
+	 * </pre>
+	 * 
+	 * @see Constants#FRAGMENT_ATTACHMENT_ALWAYS
+	 * @see Constants#FRAGMENT_ATTACHMENT_RESOLVETIME
+	 * @see Constants#FRAGMENT_ATTACHMENT_NEVER
+	 * @since 1.3
+	 */
+	public final static String	FRAGMENT_ATTACHMENT_DIRECTIVE			= "fragment-attachment";
+
+	/**
+	 * Manifest header directive value (named &quot;always&quot;) identifying a
+	 * fragment attachment type of always. A fragment attachment type of always
+	 * indicates that fragments are allowed to attach to the host bundle at any
+	 * time (while the host is resolved or during the process of resolving the
+	 * host bundle).
+	 * 
+	 * <p>
+	 * The directive value is encoded in the Bundle-SymbolicName manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Bundle-SymbolicName: com.acme.module.test; fragment-attachment:=&quot;always&quot;
+	 * </pre>
+	 * 
+	 * @see Constants#FRAGMENT_ATTACHMENT_DIRECTIVE
+	 * @since 1.3
+	 */
+	public final static String	FRAGMENT_ATTACHMENT_ALWAYS				= "always";
+
+	/**
+	 * Manifest header directive value (named &quot;resolve-time&quot;)
+	 * identifying a fragment attachment type of resolve-time. A fragment
+	 * attachment type of resolve-time indicates that fragments are allowed to
+	 * attach to the host bundle only during the process of resolving the host
+	 * bundle.
+	 * 
+	 * <p>
+	 * The directive value is encoded in the Bundle-SymbolicName manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Bundle-SymbolicName: com.acme.module.test; fragment-attachment:=&quot;resolve-time&quot;
+	 * </pre>
+	 * 
+	 * @see Constants#FRAGMENT_ATTACHMENT_DIRECTIVE
+	 * @since 1.3
+	 */
+	public final static String	FRAGMENT_ATTACHMENT_RESOLVETIME			= "resolve-time";
+
+	/**
+	 * Manifest header directive value (named &quot;never&quot;) identifying a
+	 * fragment attachment type of never. A fragment attachment type of never
+	 * indicates that no fragments are allowed to attach to the host bundle at
+	 * any time.
+	 * 
+	 * <p>
+	 * The directive value is encoded in the Bundle-SymbolicName manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Bundle-SymbolicName: com.acme.module.test; fragment-attachment:=&quot;never&quot;
+	 * </pre>
+	 * 
+	 * @see Constants#FRAGMENT_ATTACHMENT_DIRECTIVE
+	 * @since 1.3
+	 */
+	public final static String	FRAGMENT_ATTACHMENT_NEVER				= "never";
+
+	/**
+	 * Manifest header (named &quot;Bundle-Localization&quot;) identifying the
+	 * base name of the bundle's localization entries.
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 * 
+	 * @see #BUNDLE_LOCALIZATION_DEFAULT_BASENAME
+	 * @since 1.3
+	 */
+	public final static String	BUNDLE_LOCALIZATION						= "Bundle-Localization";
+
+	/**
+	 * Default value for the <code>Bundle-Localization</code> manifest header.
+	 * 
+	 * @see #BUNDLE_LOCALIZATION
+	 * @since 1.3
+	 */
+	public final static String	BUNDLE_LOCALIZATION_DEFAULT_BASENAME	= "OSGI-INF/l10n/bundle";
+
+	/**
+	 * Manifest header (named &quot;Require-Bundle&quot;) identifying the
+	 * symbolic names of other bundles required by the bundle.
+	 * 
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 * 
+	 * @since 1.3
+	 */
+	public final static String	REQUIRE_BUNDLE							= "Require-Bundle";
+
+	/**
+	 * Manifest header attribute (named &quot;bundle-version&quot;) identifying
+	 * a range of versions for a bundle specified in the Require-Bundle or
+	 * Fragment-Host manifest headers. The default value is <code>0.0.0</code>.
+	 * 
+	 * <p>
+	 * The attribute value is encoded in the Require-Bundle manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Require-Bundle: com.acme.module.test; bundle-version=&quot;1.1&quot;
+	 *   Require-Bundle: com.acme.module.test; bundle-version=&quot;[1.0,2.0)&quot;
+	 * </pre>
+	 * 
+	 * <p>
+	 * The bundle-version attribute value uses a mathematical interval notation
+	 * to specify a range of bundle versions. A bundle-version attribute value
+	 * specified as a single version means a version range that includes any
+	 * bundle version greater than or equal to the specified version.
+	 * 
+	 * @since 1.3
+	 */
+	public static final String	BUNDLE_VERSION_ATTRIBUTE				= "bundle-version";
+
+	/**
+	 * Manifest header (named &quot;Fragment-Host&quot;) identifying the
+	 * symbolic name of another bundle for which that the bundle is a fragment.
+	 * 
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 * 
+	 * @since 1.3
+	 */
+	public final static String	FRAGMENT_HOST							= "Fragment-Host";
+
+	/**
+	 * Manifest header attribute (named &quot;selection-filter&quot;) is used
+	 * for selection by filtering based upon system properties.
+	 * 
+	 * <p>
+	 * The attribute value is encoded in manifest headers like:
+	 * 
+	 * <pre>
+	 *   Bundle-NativeCode: libgtk.so; selection-filter=&quot;(ws=gtk)&quot;; ...
+	 * </pre>
+	 * 
+	 * @since 1.3
+	 */
+	public final static String	SELECTION_FILTER_ATTRIBUTE				= "selection-filter";
+
+	/**
+	 * Manifest header (named &quot;Bundle-ManifestVersion&quot;) identifying
+	 * the bundle manifest version. A bundle manifest may express the version of
+	 * the syntax in which it is written by specifying a bundle manifest
+	 * version. Bundles exploiting OSGi R4, or later, syntax must specify a
+	 * bundle manifest version.
+	 * <p>
+	 * The bundle manifest version defined by OSGi R4 or, more specifically, by
+	 * V1.3 of the OSGi Framework Specification is "2".
+	 * 
+	 * <p>
+	 * The attribute value may be retrieved from the <code>Dictionary</code>
+	 * object returned by the <code>Bundle.getHeaders</code> method.
+	 * 
+	 * @since 1.3
+	 */
+	public final static String	BUNDLE_MANIFESTVERSION					= "Bundle-ManifestVersion";
+
+	/**
+	 * Manifest header attribute (named &quot;version&quot;) identifying the
+	 * version of a package specified in the Export-Package or Import-Package
+	 * manifest header.
+	 * 
+	 * <p>
+	 * The attribute value is encoded in the Export-Package or Import-Package
+	 * manifest header like:
+	 * 
+	 * <pre>
+	 *   Import-Package: org.osgi.framework; version=&quot;1.1&quot;
+	 * </pre>
+	 * 
+	 * @since 1.3
+	 */
+	public final static String	VERSION_ATTRIBUTE						= "version";
+
+	/**
+	 * Manifest header attribute (named &quot;bundle-symbolic-name&quot;)
+	 * identifying the symbolic name of a bundle that exports a package
+	 * specified in the Import-Package manifest header.
+	 * 
+	 * <p>
+	 * The attribute value is encoded in the Import-Package manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Import-Package: org.osgi.framework; bundle-symbolic-name=&quot;com.acme.module.test&quot;
+	 * </pre>
+	 * 
+	 * @since 1.3
+	 */
+	public final static String	BUNDLE_SYMBOLICNAME_ATTRIBUTE			= "bundle-symbolic-name";
+
+	/**
+	 * Manifest header directive (named &quot;resolution&quot;) identifying the
+	 * resolution type in the Import-Package or Require-Bundle manifest header.
+	 * 
+	 * <p>
+	 * The directive value is encoded in the Import-Package or Require-Bundle
+	 * manifest header like:
+	 * 
+	 * <pre>
+	 *   Import-Package: org.osgi.framework; resolution:=&quot;optional&quot;
+	 *   Require-Bundle: com.acme.module.test; resolution:=&quot;optional&quot;
+	 * </pre>
+	 * 
+	 * @see Constants#RESOLUTION_MANDATORY
+	 * @see Constants#RESOLUTION_OPTIONAL
+	 * @since 1.3
+	 */
+	public final static String	RESOLUTION_DIRECTIVE					= "resolution";
+
+	/**
+	 * Manifest header directive value (named &quot;mandatory&quot;) identifying
+	 * a mandatory resolution type. A mandatory resolution type indicates that
+	 * the import package or require bundle must be resolved when the bundle is
+	 * resolved. If such an import or require bundle cannot be resolved, the
+	 * module fails to resolve.
+	 * 
+	 * <p>
+	 * The directive value is encoded in the Import-Package or Require-Bundle
+	 * manifest header like:
+	 * 
+	 * <pre>
+	 *   Import-Package: org.osgi.framework; resolution:=&quot;manditory&quot;
+	 *   Require-Bundle: com.acme.module.test; resolution:=&quot;manditory&quot;
+	 * </pre>
+	 * 
+	 * @see Constants#RESOLUTION_DIRECTIVE
+	 * @since 1.3
+	 */
+	public final static String	RESOLUTION_MANDATORY					= "mandatory";
+
+	/**
+	 * Manifest header directive value (named &quot;optional&quot;) identifying
+	 * an optional resolution type. An optional resolution type indicates that
+	 * the import or require bundle is optional and the bundle may be resolved
+	 * without the import or require bundle being resolved. If the import or
+	 * require bundle is not resolved when the bundle is resolved, the import or
+	 * require bundle may not be resolved before the bundle is refreshed.
+	 * 
+	 * <p>
+	 * The directive value is encoded in the Import-Package or Require-Bundle
+	 * manifest header like:
+	 * 
+	 * <pre>
+	 *   Import-Package: org.osgi.framework; resolution:=&quot;optional&quot;
+	 *   Require-Bundle: com.acme.module.test; resolution:=&quot;optional&quot;
+	 * </pre>
+	 * 
+	 * @see Constants#RESOLUTION_DIRECTIVE
+	 * @since 1.3
+	 */
+	public final static String	RESOLUTION_OPTIONAL						= "optional";
+
+	/**
+	 * Manifest header directive (named &quot;uses&quot;) identifying a list of
+	 * packages that an exported package uses.
+	 * 
+	 * <p>
+	 * The directive value is encoded in the Export-Package manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Export-Package: org.osgi.util.tracker; uses:=&quot;org.osgi.framework&quot;
+	 * </pre>
+	 * 
+	 * @since 1.3
+	 */
+	public final static String	USES_DIRECTIVE							= "uses";
+
+	/**
+	 * Manifest header directive (named &quot;include&quot;) identifying a list
+	 * of classes and/or resources of the specified package which must be
+	 * allowed to be exported in the Export-Package manifest header.
+	 * 
+	 * <p>
+	 * The directive value is encoded in the Export-Package manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Export-Package: org.osgi.framework; include:=&quot;MyStuff*&quot;
+	 * </pre>
+	 * 
+	 * @since 1.3
+	 */
+	public final static String	INCLUDE_DIRECTIVE						= "include";
+
+	/**
+	 * Manifest header directive (named &quot;exclude&quot;) identifying a list
+	 * of classes and/or resources of the specified package which must not be
+	 * allowed to be exported in the Export-Package manifest header.
+	 * 
+	 * <p>
+	 * The directive value is encoded in the Export-Package manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Export-Package: org.osgi.framework; exclude:=&quot;MyStuff*&quot;
+	 * </pre>
+	 * 
+	 * @since 1.3
+	 */
+	public final static String	EXCLUDE_DIRECTIVE						= "exclude";
+
+	/**
+	 * Manifest header directive (named &quot;mandatory&quot;) identifying names
+	 * of matching attributes which must be specified by matching Import-Package
+	 * statements in the Export-Package manifest header.
+	 * 
+	 * <p>
+	 * The directive value is encoded in the Export-Package manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Export-Package: org.osgi.framework; mandatory:=&quot;bundle-symbolic-name&quot;
+	 * </pre>
+	 * 
+	 * @since 1.3
+	 */
+	public final static String	MANDATORY_DIRECTIVE						= "mandatory";
+
+	/**
+	 * Manifest header directive (named &quot;visibility&quot;) identifying the
+	 * visibility of a reqiured bundle in the Require-Bundle manifest header.
+	 * 
+	 * <p>
+	 * The directive value is encoded in the Require-Bundle manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Require-Bundle: com.acme.module.test; visibility:=&quot;reexport&quot;
+	 * </pre>
+	 * 
+	 * @see Constants#VISIBILITY_PRIVATE
+	 * @see Constants#VISIBILITY_REEXPORT
+	 * @since 1.3
+	 */
+	public final static String	VISIBILITY_DIRECTIVE					= "visibility";
+
+	/**
+	 * Manifest header directive value (named &quot;private&quot;) identifying a
+	 * private visibility type. A private visibility type indicates that any
+	 * packages that are exported by the required bundle are not made visible on
+	 * the export signature of the requiring bundle.
+	 * 
+	 * <p>
+	 * The directive value is encoded in the Require-Bundle manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Require-Bundle: com.acme.module.test; visibility:=&quot;private&quot;
+	 * </pre>
+	 * 
+	 * @see Constants#VISIBILITY_DIRECTIVE
+	 * @since 1.3
+	 */
+	public final static String	VISIBILITY_PRIVATE						= "private";
+
+	/**
+	 * Manifest header directive value (named &quot;reexport&quot;) identifying
+	 * a reexport visibility type. A reexport visibility type indicates any
+	 * packages that are exported by the required bundle are re-exported by the
+	 * requiring bundle. Any arbitrary arbitrary matching attributes with which
+	 * they were exported by the required bundle are deleted.
+	 * 
+	 * <p>
+	 * The directive value is encoded in the Require-Bundle manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Require-Bundle: com.acme.module.test; visibility:=&quot;reexport&quot;
+	 * </pre>
+	 * 
+	 * @see Constants#VISIBILITY_DIRECTIVE
+	 * @since 1.3
+	 */
+	public final static String	VISIBILITY_REEXPORT						= "reexport";
+	/**
+	 * Manifest header directive (named &quot;extension&quot;)
+	 * identifying the type of the extension fragment.
+	 * 
+	 * <p>
+	 * The directive value is encoded in the Fragment-Host manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Fragment-Host: system.bundle; extension:=&quot;framework&quot;
+	 * </pre>
+	 * 
+	 * @see Constants#EXTENSION_FRAMEWORK
+	 * @see Constants#EXTENSION_BOOTCLASSPATH
+	 * @since 1.3
+	 */
+	public final static String	EXTENSION_DIRECTIVE			= "extension";
+
+	/**
+	 * Manifest header directive value (named &quot;framework&quot;) identifying 
+	 * the type of extension fragment. An extension fragment type of framework
+	 * indicates that the extension fragment is to be loaded by
+	 * the framework's class loader.
+	 * 
+	 * <p>
+	 * The directive value is encoded in the Fragment-Host manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Fragment-Host: system.bundle; extension:=&quot;framework&quot;
+	 * </pre>
+	 * 
+	 * @see Constants#EXTENSION_DIRECTIVE
+	 * @since 1.3
+	 */
+	public final static String	EXTENSION_FRAMEWORK				= "framework";
+
+	/**
+	 * Manifest header directive value (named &quot;bootclasspath&quot;) identifying 
+	 * the type of extension fragment. An extension fragment type of bootclasspath
+	 * indicates that the extension fragment is to be loaded by
+	 * the boot class loader.
+	 * 
+	 * <p>
+	 * The directive value is encoded in the Fragment-Host manifest header
+	 * like:
+	 * 
+	 * <pre>
+	 *   Fragment-Host: system.bundle; extension:=&quot;bootclasspath&quot;
+	 * </pre>
+	 * 
+	 * @see Constants#EXTENSION_DIRECTIVE
+	 * @since 1.3
+	 */
+	public final static String	EXTENSION_BOOTCLASSPATH			= "bootclasspath";
+
 }

Modified: incubator/felix/trunk/org.osgi.core/src/main/java/org/osgi/framework/Filter.java
URL: http://svn.apache.org/viewvc/incubator/felix/trunk/org.osgi.core/src/main/java/org/osgi/framework/Filter.java?view=diff&rev=465392&r1=465391&r2=465392
==============================================================================
--- incubator/felix/trunk/org.osgi.core/src/main/java/org/osgi/framework/Filter.java (original)
+++ incubator/felix/trunk/org.osgi.core/src/main/java/org/osgi/framework/Filter.java Wed Oct 18 15:01:22 2006
@@ -1,123 +1,123 @@
-/*
- * $Header: /cvshome/build/org.osgi.framework/src/org/osgi/framework/Filter.java,v 1.13 2006/03/14 01:21:02 hargrave Exp $
- * 
- * Copyright (c) OSGi Alliance (2000, 2005). 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.framework;
-
-import java.util.Dictionary;
-
-/**
- * An RFC 1960-based Filter.
- * <p>
- * <code>Filter</code> objects can be created by calling
- * {@link BundleContext#createFilter} with the chosen filter string.
- * <p>
- * A <code>Filter</code> object can be used numerous times to determine if the
- * match argument matches the filter string that was used to create the
- * <code>Filter</code> object.
- * <p>
- * Some examples of LDAP filters are:
- * 
- * <pre>
- *      &quot;(cn=Babs Jensen)&quot;
- *      &quot;(!(cn=Tim Howes))&quot;
- *      &quot;(&amp;(&quot; + Constants.OBJECTCLASS + &quot;=Person)(|(sn=Jensen)(cn=Babs J*)))&quot;
- *      &quot;(o=univ*of*mich*)&quot;
- * </pre>
- * 
- * @version $Revision: 1.13 $
- * @since 1.1
- * @see "Framework specification for a description of the filter string syntax."
- */
-public interface Filter {
-	/**
-	 * Filter using a service's properties.
-	 * <p>
-	 * The filter is executed using the keys and values of the referenced
-	 * service's properties. The keys are case insensitively matched with the
-	 * filter.
-	 * 
-	 * @param reference The reference to the service whose properties are used
-	 *        in the match.
-	 * 
-	 * @return <code>true</code> if the service's properties match this
-	 *         filter; <code>false</code> otherwise.
-	 */
-	public boolean match(ServiceReference reference);
-
-	/**
-	 * Filter using a <code>Dictionary</code> object. The Filter is executed
-	 * using the <code>Dictionary</code> object's keys and values. The keys
-	 * are case insensitively matched with the filter.
-	 * 
-	 * @param dictionary The <code>Dictionary</code> object whose keys are
-	 *        used in the match.
-	 * 
-	 * @return <code>true</code> if the <code>Dictionary</code> object's
-	 *         keys and values match this filter; <code>false</code>
-	 *         otherwise.
-	 * 
-	 * @throws IllegalArgumentException If <code>dictionary</code> contains
-	 *         case variants of the same key name.
-	 */
-	public boolean match(Dictionary dictionary);
-
-	/**
-	 * Returns this <code>Filter</code> object's filter string.
-	 * <p>
-	 * The filter string is normalized by removing whitespace which does not
-	 * affect the meaning of the filter.
-	 * 
-	 * @return Filter string.
-	 */
-	public String toString();
-
-	/**
-	 * Compares this <code>Filter</code> object to another object.
-	 * 
-	 * @param obj The object to compare against this <code>Filter</code>
-	 *        object.
-	 * 
-	 * @return If the other object is a <code>Filter</code> object, then
-	 *         returns <code>this.toString().equals(obj.toString()</code>;<code>false</code>
-	 *         otherwise.
-	 */
-	public boolean equals(Object obj);
-
-	/**
-	 * Returns the hashCode for this <code>Filter</code> object.
-	 * 
-	 * @return The hashCode of the filter string; that is,
-	 *         <code>this.toString().hashCode()</code>.
-	 */
-	public int hashCode();
-
-	/**
-	 * Filter with case sensitivity using a <code>Dictionary</code> object.
-	 * The Filter is executed using the <code>Dictionary</code> object's keys
-	 * and values. The keys are case sensitively matched with the filter.
-	 * 
-	 * @param dictionary The <code>Dictionary</code> object whose keys are
-	 *        used in the match.
-	 * 
-	 * @return <code>true</code> if the <code>Dictionary</code> object's
-	 *         keys and values match this filter; <code>false</code>
-	 *         otherwise.
-	 * 
-	 * @since 1.3
-	 */
-	public boolean matchCase(Dictionary dictionary);
-}
\ No newline at end of file
+/*
+ * $Header: /cvshome/build/org.osgi.framework/src/org/osgi/framework/Filter.java,v 1.14 2006/06/16 16:31:18 hargrave Exp $
+ * 
+ * Copyright (c) OSGi Alliance (2000, 2006). 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.framework;
+
+import java.util.Dictionary;
+
+/**
+ * An RFC 1960-based Filter.
+ * <p>
+ * <code>Filter</code> objects can be created by calling
+ * {@link BundleContext#createFilter} with the chosen filter string.
+ * <p>
+ * A <code>Filter</code> object can be used numerous times to determine if the
+ * match argument matches the filter string that was used to create the
+ * <code>Filter</code> object.
+ * <p>
+ * Some examples of LDAP filters are:
+ * 
+ * <pre>
+ *      &quot;(cn=Babs Jensen)&quot;
+ *      &quot;(!(cn=Tim Howes))&quot;
+ *      &quot;(&amp;(&quot; + Constants.OBJECTCLASS + &quot;=Person)(|(sn=Jensen)(cn=Babs J*)))&quot;
+ *      &quot;(o=univ*of*mich*)&quot;
+ * </pre>
+ * 
+ * @version $Revision: 1.14 $
+ * @since 1.1
+ * @see "Framework specification for a description of the filter string syntax."
+ */
+public interface Filter {
+	/**
+	 * Filter using a service's properties.
+	 * <p>
+	 * The filter is executed using the keys and values of the referenced
+	 * service's properties. The keys are case insensitively matched with the
+	 * filter.
+	 * 
+	 * @param reference The reference to the service whose properties are used
+	 *        in the match.
+	 * 
+	 * @return <code>true</code> if the service's properties match this
+	 *         filter; <code>false</code> otherwise.
+	 */
+	public boolean match(ServiceReference reference);
+
+	/**
+	 * Filter using a <code>Dictionary</code> object. The Filter is executed
+	 * using the <code>Dictionary</code> object's keys and values. The keys
+	 * are case insensitively matched with the filter.
+	 * 
+	 * @param dictionary The <code>Dictionary</code> object whose keys are
+	 *        used in the match.
+	 * 
+	 * @return <code>true</code> if the <code>Dictionary</code> object's
+	 *         keys and values match this filter; <code>false</code>
+	 *         otherwise.
+	 * 
+	 * @throws IllegalArgumentException If <code>dictionary</code> contains
+	 *         case variants of the same key name.
+	 */
+	public boolean match(Dictionary dictionary);
+
+	/**
+	 * Returns this <code>Filter</code> object's filter string.
+	 * <p>
+	 * The filter string is normalized by removing whitespace which does not
+	 * affect the meaning of the filter.
+	 * 
+	 * @return Filter string.
+	 */
+	public String toString();
+
+	/**
+	 * Compares this <code>Filter</code> object to another object.
+	 * 
+	 * @param obj The object to compare against this <code>Filter</code>
+	 *        object.
+	 * 
+	 * @return If the other object is a <code>Filter</code> object, then
+	 *         returns <code>this.toString().equals(obj.toString()</code>;<code>false</code>
+	 *         otherwise.
+	 */
+	public boolean equals(Object obj);
+
+	/**
+	 * Returns the hashCode for this <code>Filter</code> object.
+	 * 
+	 * @return The hashCode of the filter string; that is,
+	 *         <code>this.toString().hashCode()</code>.
+	 */
+	public int hashCode();
+
+	/**
+	 * Filter with case sensitivity using a <code>Dictionary</code> object.
+	 * The Filter is executed using the <code>Dictionary</code> object's keys
+	 * and values. The keys are case sensitively matched with the filter.
+	 * 
+	 * @param dictionary The <code>Dictionary</code> object whose keys are
+	 *        used in the match.
+	 * 
+	 * @return <code>true</code> if the <code>Dictionary</code> object's
+	 *         keys and values match this filter; <code>false</code>
+	 *         otherwise.
+	 * 
+	 * @since 1.3
+	 */
+	public boolean matchCase(Dictionary dictionary);
+}