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 "System Bundle".
- */
- 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 "system.bundle".
- *
- * @since 1.3
- */
- public static final String SYSTEM_BUNDLE_SYMBOLICNAME = "system.bundle";
-
- /**
- * Manifest header (named "Bundle-Category") 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 "Bundle-ClassPath") 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 "Bundle-Copyright") 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 "Bundle-Description") 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 "Bundle-Name") 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 "Bundle-NativeCode") 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 "Export-Package") 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 "Export-Service") 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 "Import-Package") 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 "DynamicImport-Package") 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 "Import-Service") 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 "Bundle-Vendor") 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 "Bundle-Version") 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 "Bundle-DocURL") 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 "Bundle-ContactAddress") 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 "Bundle-Activator")
- * 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 "Bundle-UpdateLocation") 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 "specification-version")
- * 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="1.1"
- * </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 "processor") 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 "osname") 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 "osversion") 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="2.34" ...
- * </pre>
- */
- public static final String BUNDLE_NATIVECODE_OSVERSION = "osversion";
-
- /**
- * Manifest header attribute (named "language") 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 "Bundle-RequiredExecutionEnvironment")
- * 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
- * "org.osgi.framework.version") 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
- * "org.osgi.framework.vendor") 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
- * "org.osgi.framework.language") 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
- * "org.osgi.framework.os.name") 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
- * "org.osgi.framework.os.version") 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
- * "org.osgi.framework.processor") 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
- * "org.osgi.framework.executionenvironment") 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
- * "org.osgi.framework.bootdelegation") 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
- * "org.osgi.framework.system.packages") 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
- * "org.osgi.supports.framework.extension") 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
- * "org.osgi.supports.bootclasspath.extension") 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
- * "org.osgi.supports.framework.fragment") 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
- * "org.osgi.supports.framework.requirebundle") 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 "objectClass") 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 "service.id") 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 "service.pid") 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 "service.ranking") 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 "service.vendor") 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 "service.description") 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 "Bundle-SymbolicName") 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 "singleton") 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 "fragment-attachment")
- * identifying if and when a fragment may attach to a host bundle. The
- * default value is <code>"always"</code>.
- *
- * <p>
- * The directive value is encoded in the Bundle-SymbolicName manifest header
- * like:
- *
- * <pre>
- * Bundle-SymbolicName: com.acme.module.test; fragment-attachment:="never"
- * </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 "always") 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:="always"
- * </pre>
- *
- * @see Constants#FRAGMENT_ATTACHMENT_DIRECTIVE
- * @since 1.3
- */
- public final static String FRAGMENT_ATTACHMENT_ALWAYS = "always";
-
- /**
- * Manifest header directive value (named "resolve-time")
- * 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:="resolve-time"
- * </pre>
- *
- * @see Constants#FRAGMENT_ATTACHMENT_DIRECTIVE
- * @since 1.3
- */
- public final static String FRAGMENT_ATTACHMENT_RESOLVETIME = "resolve-time";
-
- /**
- * Manifest header directive value (named "never") 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:="never"
- * </pre>
- *
- * @see Constants#FRAGMENT_ATTACHMENT_DIRECTIVE
- * @since 1.3
- */
- public final static String FRAGMENT_ATTACHMENT_NEVER = "never";
-
- /**
- * Manifest header (named "Bundle-Localization") 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 "Require-Bundle") 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 "bundle-version") 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="1.1"
- * Require-Bundle: com.acme.module.test; bundle-version="[1.0,2.0)"
- * </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 "Fragment-Host") 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 "selection-filter") 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="(ws=gtk)"; ...
- * </pre>
- *
- * @since 1.3
- */
- public final static String SELECTION_FILTER_ATTRIBUTE = "selection-filter";
-
- /**
- * Manifest header (named "Bundle-ManifestVersion") 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 "version") 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="1.1"
- * </pre>
- *
- * @since 1.3
- */
- public final static String VERSION_ATTRIBUTE = "version";
-
- /**
- * Manifest header attribute (named "bundle-symbolic-name")
- * 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="com.acme.module.test"
- * </pre>
- *
- * @since 1.3
- */
- public final static String BUNDLE_SYMBOLICNAME_ATTRIBUTE = "bundle-symbolic-name";
-
- /**
- * Manifest header directive (named "resolution") 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:="optional"
- * Require-Bundle: com.acme.module.test; resolution:="optional"
- * </pre>
- *
- * @see Constants#RESOLUTION_MANDATORY
- * @see Constants#RESOLUTION_OPTIONAL
- * @since 1.3
- */
- public final static String RESOLUTION_DIRECTIVE = "resolution";
-
- /**
- * Manifest header directive value (named "mandatory") 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:="manditory"
- * Require-Bundle: com.acme.module.test; resolution:="manditory"
- * </pre>
- *
- * @see Constants#RESOLUTION_DIRECTIVE
- * @since 1.3
- */
- public final static String RESOLUTION_MANDATORY = "mandatory";
-
- /**
- * Manifest header directive value (named "optional") 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:="optional"
- * Require-Bundle: com.acme.module.test; resolution:="optional"
- * </pre>
- *
- * @see Constants#RESOLUTION_DIRECTIVE
- * @since 1.3
- */
- public final static String RESOLUTION_OPTIONAL = "optional";
-
- /**
- * Manifest header directive (named "uses") 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:="org.osgi.framework"
- * </pre>
- *
- * @since 1.3
- */
- public final static String USES_DIRECTIVE = "uses";
-
- /**
- * Manifest header directive (named "include") 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:="MyStuff*"
- * </pre>
- *
- * @since 1.3
- */
- public final static String INCLUDE_DIRECTIVE = "include";
-
- /**
- * Manifest header directive (named "exclude") 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:="MyStuff*"
- * </pre>
- *
- * @since 1.3
- */
- public final static String EXCLUDE_DIRECTIVE = "exclude";
-
- /**
- * Manifest header directive (named "mandatory") 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:="bundle-symbolic-name"
- * </pre>
- *
- * @since 1.3
- */
- public final static String MANDATORY_DIRECTIVE = "mandatory";
-
- /**
- * Manifest header directive (named "visibility") 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:="reexport"
- * </pre>
- *
- * @see Constants#VISIBILITY_PRIVATE
- * @see Constants#VISIBILITY_REEXPORT
- * @since 1.3
- */
- public final static String VISIBILITY_DIRECTIVE = "visibility";
-
- /**
- * Manifest header directive value (named "private") 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:="private"
- * </pre>
- *
- * @see Constants#VISIBILITY_DIRECTIVE
- * @since 1.3
- */
- public final static String VISIBILITY_PRIVATE = "private";
-
- /**
- * Manifest header directive value (named "reexport") 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:="reexport"
- * </pre>
- *
- * @see Constants#VISIBILITY_DIRECTIVE
- * @since 1.3
- */
- public final static String VISIBILITY_REEXPORT = "reexport";
- /**
- * Manifest header directive (named "extension")
- * 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:="framework"
- * </pre>
- *
- * @see Constants#EXTENSION_FRAMEWORK
- * @see Constants#EXTENSION_BOOTCLASSPATH
- * @since 1.3
- */
- public final static String EXTENSION_DIRECTIVE = "extension";
-
- /**
- * Manifest header directive value (named "framework") 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:="framework"
- * </pre>
- *
- * @see Constants#EXTENSION_DIRECTIVE
- * @since 1.3
- */
- public final static String EXTENSION_FRAMEWORK = "framework";
-
- /**
- * Manifest header directive value (named "bootclasspath") 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:="bootclasspath"
- * </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 "System Bundle".
+ */
+ 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 "system.bundle".
+ *
+ * @since 1.3
+ */
+ public static final String SYSTEM_BUNDLE_SYMBOLICNAME = "system.bundle";
+
+ /**
+ * Manifest header (named "Bundle-Category") 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 "Bundle-ClassPath") 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 "Bundle-Copyright") 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 "Bundle-Description") 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 "Bundle-Name") 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 "Bundle-NativeCode") 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 "Export-Package") 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 "Export-Service") 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 "Import-Package") 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 "DynamicImport-Package") 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 "Import-Service") 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 "Bundle-Vendor") 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 "Bundle-Version") 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 "Bundle-DocURL") 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 "Bundle-ContactAddress") 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 "Bundle-Activator")
+ * 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 "Bundle-UpdateLocation") 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 "specification-version")
+ * 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="1.1"
+ * </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 "processor") 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 "osname") 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 "osversion") 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="2.34" ...
+ * </pre>
+ */
+ public static final String BUNDLE_NATIVECODE_OSVERSION = "osversion";
+
+ /**
+ * Manifest header attribute (named "language") 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 "Bundle-RequiredExecutionEnvironment")
+ * 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
+ * "org.osgi.framework.version") 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
+ * "org.osgi.framework.vendor") 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
+ * "org.osgi.framework.language") 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
+ * "org.osgi.framework.os.name") 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
+ * "org.osgi.framework.os.version") 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
+ * "org.osgi.framework.processor") 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
+ * "org.osgi.framework.executionenvironment") 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
+ * "org.osgi.framework.bootdelegation") 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
+ * "org.osgi.framework.system.packages") 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
+ * "org.osgi.supports.framework.extension") 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
+ * "org.osgi.supports.bootclasspath.extension") 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
+ * "org.osgi.supports.framework.fragment") 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
+ * "org.osgi.supports.framework.requirebundle") 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 "objectClass") 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 "service.id") 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 "service.pid") 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 "service.ranking") 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 "service.vendor") 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 "service.description") 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 "Bundle-SymbolicName") 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 "singleton") 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 "fragment-attachment")
+ * identifying if and when a fragment may attach to a host bundle. The
+ * default value is <code>"always"</code>.
+ *
+ * <p>
+ * The directive value is encoded in the Bundle-SymbolicName manifest header
+ * like:
+ *
+ * <pre>
+ * Bundle-SymbolicName: com.acme.module.test; fragment-attachment:="never"
+ * </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 "always") 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:="always"
+ * </pre>
+ *
+ * @see Constants#FRAGMENT_ATTACHMENT_DIRECTIVE
+ * @since 1.3
+ */
+ public final static String FRAGMENT_ATTACHMENT_ALWAYS = "always";
+
+ /**
+ * Manifest header directive value (named "resolve-time")
+ * 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:="resolve-time"
+ * </pre>
+ *
+ * @see Constants#FRAGMENT_ATTACHMENT_DIRECTIVE
+ * @since 1.3
+ */
+ public final static String FRAGMENT_ATTACHMENT_RESOLVETIME = "resolve-time";
+
+ /**
+ * Manifest header directive value (named "never") 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:="never"
+ * </pre>
+ *
+ * @see Constants#FRAGMENT_ATTACHMENT_DIRECTIVE
+ * @since 1.3
+ */
+ public final static String FRAGMENT_ATTACHMENT_NEVER = "never";
+
+ /**
+ * Manifest header (named "Bundle-Localization") 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 "Require-Bundle") 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 "bundle-version") 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="1.1"
+ * Require-Bundle: com.acme.module.test; bundle-version="[1.0,2.0)"
+ * </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 "Fragment-Host") 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 "selection-filter") 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="(ws=gtk)"; ...
+ * </pre>
+ *
+ * @since 1.3
+ */
+ public final static String SELECTION_FILTER_ATTRIBUTE = "selection-filter";
+
+ /**
+ * Manifest header (named "Bundle-ManifestVersion") 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 "version") 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="1.1"
+ * </pre>
+ *
+ * @since 1.3
+ */
+ public final static String VERSION_ATTRIBUTE = "version";
+
+ /**
+ * Manifest header attribute (named "bundle-symbolic-name")
+ * 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="com.acme.module.test"
+ * </pre>
+ *
+ * @since 1.3
+ */
+ public final static String BUNDLE_SYMBOLICNAME_ATTRIBUTE = "bundle-symbolic-name";
+
+ /**
+ * Manifest header directive (named "resolution") 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:="optional"
+ * Require-Bundle: com.acme.module.test; resolution:="optional"
+ * </pre>
+ *
+ * @see Constants#RESOLUTION_MANDATORY
+ * @see Constants#RESOLUTION_OPTIONAL
+ * @since 1.3
+ */
+ public final static String RESOLUTION_DIRECTIVE = "resolution";
+
+ /**
+ * Manifest header directive value (named "mandatory") 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:="manditory"
+ * Require-Bundle: com.acme.module.test; resolution:="manditory"
+ * </pre>
+ *
+ * @see Constants#RESOLUTION_DIRECTIVE
+ * @since 1.3
+ */
+ public final static String RESOLUTION_MANDATORY = "mandatory";
+
+ /**
+ * Manifest header directive value (named "optional") 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:="optional"
+ * Require-Bundle: com.acme.module.test; resolution:="optional"
+ * </pre>
+ *
+ * @see Constants#RESOLUTION_DIRECTIVE
+ * @since 1.3
+ */
+ public final static String RESOLUTION_OPTIONAL = "optional";
+
+ /**
+ * Manifest header directive (named "uses") 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:="org.osgi.framework"
+ * </pre>
+ *
+ * @since 1.3
+ */
+ public final static String USES_DIRECTIVE = "uses";
+
+ /**
+ * Manifest header directive (named "include") 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:="MyStuff*"
+ * </pre>
+ *
+ * @since 1.3
+ */
+ public final static String INCLUDE_DIRECTIVE = "include";
+
+ /**
+ * Manifest header directive (named "exclude") 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:="MyStuff*"
+ * </pre>
+ *
+ * @since 1.3
+ */
+ public final static String EXCLUDE_DIRECTIVE = "exclude";
+
+ /**
+ * Manifest header directive (named "mandatory") 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:="bundle-symbolic-name"
+ * </pre>
+ *
+ * @since 1.3
+ */
+ public final static String MANDATORY_DIRECTIVE = "mandatory";
+
+ /**
+ * Manifest header directive (named "visibility") 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:="reexport"
+ * </pre>
+ *
+ * @see Constants#VISIBILITY_PRIVATE
+ * @see Constants#VISIBILITY_REEXPORT
+ * @since 1.3
+ */
+ public final static String VISIBILITY_DIRECTIVE = "visibility";
+
+ /**
+ * Manifest header directive value (named "private") 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:="private"
+ * </pre>
+ *
+ * @see Constants#VISIBILITY_DIRECTIVE
+ * @since 1.3
+ */
+ public final static String VISIBILITY_PRIVATE = "private";
+
+ /**
+ * Manifest header directive value (named "reexport") 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:="reexport"
+ * </pre>
+ *
+ * @see Constants#VISIBILITY_DIRECTIVE
+ * @since 1.3
+ */
+ public final static String VISIBILITY_REEXPORT = "reexport";
+ /**
+ * Manifest header directive (named "extension")
+ * 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:="framework"
+ * </pre>
+ *
+ * @see Constants#EXTENSION_FRAMEWORK
+ * @see Constants#EXTENSION_BOOTCLASSPATH
+ * @since 1.3
+ */
+ public final static String EXTENSION_DIRECTIVE = "extension";
+
+ /**
+ * Manifest header directive value (named "framework") 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:="framework"
+ * </pre>
+ *
+ * @see Constants#EXTENSION_DIRECTIVE
+ * @since 1.3
+ */
+ public final static String EXTENSION_FRAMEWORK = "framework";
+
+ /**
+ * Manifest header directive value (named "bootclasspath") 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:="bootclasspath"
+ * </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>
- * "(cn=Babs Jensen)"
- * "(!(cn=Tim Howes))"
- * "(&(" + Constants.OBJECTCLASS + "=Person)(|(sn=Jensen)(cn=Babs J*)))"
- * "(o=univ*of*mich*)"
- * </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>
+ * "(cn=Babs Jensen)"
+ * "(!(cn=Tim Howes))"
+ * "(&(" + Constants.OBJECTCLASS + "=Person)(|(sn=Jensen)(cn=Babs J*)))"
+ * "(o=univ*of*mich*)"
+ * </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);
+}