public class ConfigurationProvider extends Object
Configuration
instances,
using a configurable provider. This class cannot be instantiated. The
configuration provider can be specified by providing a resource named
"META-INF/services/net.jini.config.Configuration" containing the name of the
provider class. If multiple resources with that name are available, then the
one used will be the last one returned by ClassLoader.getResources
. If the resource is not found, the ConfigurationFile
class is used.
Downloaded code can specify its own class loader in a call to getInstance(String[], ClassLoader)
in
order to use the configuration provider specified in the JAR file from which
it was downloaded.
The provider class must be a public, non-abstract class that implements
Configuration
, and has a public constructor that has
String[]
and ClassLoader
parameters. The
String[]
parameter supplies provider-specific options, for
example specifying a source location or values for particular entries. The
constructor should throw ConfigurationNotFoundException
if the
configuration specified by the String[]
options argument cannot
be found, or if null
was specified for the options argument and
the class does not provide defaults. The constructor should use the class
loader argument when loading resources and classes, and should interpret a
null
class loader argument as signifying the context class
loader.
The resource file should contain the fully qualified name of the provider class. Space and tab characters surrounding each name, as well as blank lines, are ignored. The comment character is '#' (0x23); on each line, all characters following the first comment character are ignored. The resource file must be encoded in UTF-8.
Modifier and Type | Method and Description |
---|---|
static Configuration |
getInstance(String[] options)
Creates and returns an instance of the configuration provider, using the
specified options.
|
static Configuration |
getInstance(String[] options,
ClassLoader cl)
Creates and returns an instance of the configuration provider, using the
specified options and class loader.
|
public static Configuration getInstance(String[] options) throws ConfigurationException
null
for options
uses provider-specific default options, if available. Uses the current
thread's context class loader to load resources and classes, and
supplies null
as the class loader to the provider
constructor.options
- values to use when constructing the configuration, or
null
if default options should be usednull
for the class loaderConfigurationNotFoundException
- if options
specifies
a source location that cannot be found, or if options
is
null
and the provider does not supply default optionsConfigurationException
- if an I/O exception occurs; if there are
problems with the options
argument or the format of the
contents of any source location it specifies; if there is a problem with
the contents of the resource file that names the configuration provider;
if the configured provider class does not exist, is not public, is
abstract, does not implement Configuration
, or does not
have a public constructor that has String[]
and
ClassLoader
parameters; if the calling thread does not have
permission to obtain information from the specified source; or if the
provider does not have permission to access the context class
loader. Any Error
thrown while creating the provider
instance is propagated to the caller; it is not wrapped in a
ConfigurationException
.public static Configuration getInstance(String[] options, ClassLoader cl) throws ConfigurationException
null
for
options
uses provider-specific default options, if
available. Uses the specified class loader to load resources and
classes, or the current thread's context class loader if cl
is null
. Supplies cl
as the class loader to
the provider constructor. Downloaded code can specify its own class loader in a call to this method in order to use the configuration provider specified in the JAR file from which it was downloaded.
options
- values to use when constructing the configuration, or
null
if default options should be usedcl
- the class loader to load resources and classes, and to pass
when constructing the provider. If null
, uses the context
class loader.ConfigurationNotFoundException
- if options
specifies
a source location that cannot be found, or if options
is
null
and the provider does not supply default optionsConfigurationException
- if an I/O exception occurs; if there are
problems with the options
argument or the format of the
contents of any source location it specifies; if there is a problem with
the contents of the resource file that names the configuration provider;
if the configured provider class does not exist, is not public, is
abstract, does not implement Configuration
, or does not
have a public constructor that has String[]
and
ClassLoader
parameters; if the calling thread does not have
permission to obtain information from the specified source; or if
cl
is null
and the provider does not have
permission to access the context class loader. Any Error
thrown while creating the provider instance is propagated to the caller;
it is not wrapped in a ConfigurationException
.