ConfigurationFactory

public class ConfigurationFactory
extends Object implements IConfigurationFactory

java.lang.Object
   ↳ com.android.tradefed.config.ConfigurationFactory


Factory for creating IConfiguration.

Summary

Nested classes

class ConfigurationFactory.ConfigLoader

Implementation of IConfigDefLoader that tracks the included configurations from one root config, and throws an exception on circular includes. 

class ConfigurationFactory.ExceptionLoader

 

Protected constructors

ConfigurationFactory()

Public methods

void clearMapConfig()

In some particular case, we need to clear the map.

IConfiguration createConfigurationFromArgs(String[] arrayArgs, unconsumedArgs)

Create the IConfiguration from command line arguments.

IConfiguration createConfigurationFromArgs(String[] arrayArgs, unconsumedArgs, IKeyStoreClient keyStoreClient)

Create the IConfiguration from command line arguments with a key store.

IConfiguration createConfigurationFromArgs(String[] arrayArgs)

A convenience method which calls ERROR(/#createConfigurationFromArgs(String[],List)) with a null second argument.

IGlobalConfiguration createGlobalConfigurationFromArgs(String[] arrayArgs, remainingArgs)

Create a IGlobalConfiguration from command line arguments.

IConfiguration createPartialConfigurationFromArgs(String[] arrayArgs, IKeyStoreClient keyStoreClient, allowedObjects, TradefedDelegator delegator)

Create a configuration that only contains a set of selected objects.

void dumpConfig(String configName, PrintStream out)

Dumps the contents of the configuration to the given ERROR(/PrintStream)

getConfigList(String subPath, boolean loadFromEnv)

Variation of getConfigList() where can specify whether or not we also want to load the configuration from the environment.

getConfigList()

Return the list of names of all the configs found in the JARs on the classpath.

static IConfigurationFactory getInstance()

Get the singleton IConfigurationFactory instance.

void loadAllConfigs(boolean discardExceptions)

Loads all configurations found in classpath and test cases directories.

void loadAndPrintAllConfigs()

Utility method that checks that all configs can be loaded, parsed, and all option values set.

void printHelp(PrintStream out)

Prints help output for this factory.

void printHelpForConfig(String[] args, boolean importantOnly, PrintStream out)

Prints help output for the IConfiguration specified in command line arguments,

If 'args' refers to a known configuration, a IConfiguration object will be created from XML, and help for that IConfiguration will be outputted.

Protected methods

InputStream getBundledConfigStream(String name)
String getConfigPrefix()

Return the path prefix of config xml files on classpath

Exposed so unit tests can mock.

BufferedInputStream getConfigStream(String name)

Loads an InputStream for given config name

ConfigurationDef getConfigurationDef(String name, boolean isGlobal, templateMap)

Retrieve the ConfigurationDef for the given name

getMapConfig()

Exposed for testing.

boolean isDirectConfiguration(String configName)
String[] reorderArgs(String[] args)

Reorder the args so that template:map args are all moved to the front.

IRemoteFileResolver.ResolvedFile resolveRemoteFile(URI configURI, URI destDir)

Protected constructors

ConfigurationFactory

protected ConfigurationFactory ()

Public methods

clearMapConfig

public void clearMapConfig ()

In some particular case, we need to clear the map.

createConfigurationFromArgs

public IConfiguration createConfigurationFromArgs (String[] arrayArgs, 
                 unconsumedArgs)

Create the IConfiguration from command line arguments.

Expected format is "CONFIG [options]", where CONFIG is the built-in configuration name or a file path to a configuration xml file.

Parameters
arrayArgs String: the command line arguments

unconsumedArgs : a List which will be populated with the arguments that were not consumed by the Objects associated with the specified config. If this is null, then the implementation will throw ConfigurationException if any unprocessed args remain.

Returns
IConfiguration the loaded IConfiguration. The delegate object Option fields have been populated with values in args.

Throws
ConfigurationException

createConfigurationFromArgs

public IConfiguration createConfigurationFromArgs (String[] arrayArgs, 
                 unconsumedArgs, 
                IKeyStoreClient keyStoreClient)

Create the IConfiguration from command line arguments with a key store.

Expected format is "CONFIG [options]", where CONFIG is the built-in configuration name or a file path to a configuration xml file.

Parameters
arrayArgs String: the command line arguments

unconsumedArgs : a List which will be populated with the arguments that were not consumed by the Objects associated with the specified config. If this is null, then the implementation will throw ConfigurationException if any unprocessed args remain.

keyStoreClient IKeyStoreClient: a IKeyStoreClient which is used to obtain sensitive info in the args.

Returns
IConfiguration the loaded IConfiguration. The delegate object Option fields have been populated with values in args.

Throws
ConfigurationException

createConfigurationFromArgs

public IConfiguration createConfigurationFromArgs (String[] arrayArgs)

A convenience method which calls ERROR(/#createConfigurationFromArgs(String[],List)) with a null second argument. Thus, it will throw ConfigurationException if any unconsumed arguments remain.

Parameters
arrayArgs String

Returns
IConfiguration

Throws
ConfigurationException

createGlobalConfigurationFromArgs

public IGlobalConfiguration createGlobalConfigurationFromArgs (String[] arrayArgs, 
                 remainingArgs)

Create a IGlobalConfiguration from command line arguments.

Expected format is "CONFIG [options]", where CONFIG is the built-in configuration name or a file path to a configuration xml file.

Parameters
arrayArgs String: the command line arguments

remainingArgs : a list which will be populated with the arguments that weren't processed as global arguments

Returns
IGlobalConfiguration the loaded IGlobalConfiguration. The delegate object Option fields have been populated with values in args.

Throws
ConfigurationException

createPartialConfigurationFromArgs

public IConfiguration createPartialConfigurationFromArgs (String[] arrayArgs, 
                IKeyStoreClient keyStoreClient, 
                 allowedObjects, 
                TradefedDelegator delegator)

Create a configuration that only contains a set of selected objects.

Parameters
arrayArgs String: The command line arguments

keyStoreClient IKeyStoreClient: A IKeyStoreClient which is used to obtain sensitive info in the args.

allowedObjects : The set of allowed objects to be created

delegator TradefedDelegator

Returns
IConfiguration The loaded IConfiguration.

Throws
ConfigurationException

dumpConfig

public void dumpConfig (String configName, 
                PrintStream out)

Dumps the contents of the configuration to the given ERROR(/PrintStream)

Parameters
configName String: the configuration name

out PrintStream: the ERROR(/PrintStream) to dump output to

getConfigList

public  getConfigList (String subPath, 
                boolean loadFromEnv)

Variation of getConfigList() where can specify whether or not we also want to load the configuration from the environment.

Parameters
subPath String: name of the sub-directories to look in for configuration. If null, will have the same behavior as getConfigList().

loadFromEnv boolean: True if we should load the configuration in the environment variable.

Returns

getConfigList

public  getConfigList ()

Return the list of names of all the configs found in the JARs on the classpath. Does not attempt to load any of the configs, so it is possible to have non working config in this list.

Returns

getInstance

public static IConfigurationFactory getInstance ()

Get the singleton IConfigurationFactory instance.

Returns
IConfigurationFactory

loadAllConfigs

public void loadAllConfigs (boolean discardExceptions)

Loads all configurations found in classpath and test cases directories.

Parameters
discardExceptions boolean: true if any ConfigurationException should be ignored.

Throws
com.android.tradefed.config.ConfigurationException
ConfigurationException

loadAndPrintAllConfigs

public void loadAndPrintAllConfigs ()

Utility method that checks that all configs can be loaded, parsed, and all option values set. Only exposed so that depending project can validate their configs. Should not be exposed in the console.

Throws
ConfigurationException if one or more configs failed to load

printHelp

public void printHelp (PrintStream out)

Prints help output for this factory.

Prints a generic help info, and lists all available configurations.

Parameters
out PrintStream: the ERROR(/PrintStream) to dump output to

printHelpForConfig

public void printHelpForConfig (String[] args, 
                boolean importantOnly, 
                PrintStream out)

Prints help output for the IConfiguration specified in command line arguments,

If 'args' refers to a known configuration, a IConfiguration object will be created from XML, and help for that IConfiguration will be outputted. Note all other 'args' values will be ignored (ie the help text will describe the current values of Options as loaded from XML, and will not reflect option's values set by the command line args.

If 'args' does not reference a known IConfiguration, the generic printHelp(PrintStream) help will be displayed.

Parameters
args String: the command line arguments

importantOnly boolean: if true, print an abbreviated help listing only the important details

out PrintStream: the ERROR(/PrintStream) to dump output to

Protected methods

getBundledConfigStream

protected InputStream getBundledConfigStream (String name)

Parameters
name String

Returns
InputStream

getConfigPrefix

protected String getConfigPrefix ()

Return the path prefix of config xml files on classpath

Exposed so unit tests can mock.

Returns
String String path with trailing /

getConfigStream

protected BufferedInputStream getConfigStream (String name)

Loads an InputStream for given config name

Parameters
name String: the configuration name to load

Returns
BufferedInputStream a ERROR(/BufferedInputStream) for reading config contents

Throws
ConfigurationException if config could not be found

getConfigurationDef

protected ConfigurationDef getConfigurationDef (String name, 
                boolean isGlobal, 
                 templateMap)

Retrieve the ConfigurationDef for the given name

Parameters
name String: the name of a built-in configuration to load or a file path to configuration file to load

isGlobal boolean

templateMap

Returns
ConfigurationDef ConfigurationDef

Throws
ConfigurationException if an error occurred loading the config

getMapConfig

protected  getMapConfig ()

Exposed for testing. Return a copy of the Map.

Returns

isDirectConfiguration

protected boolean isDirectConfiguration (String configName)

Parameters
configName String

Returns
boolean

reorderArgs

protected String[] reorderArgs (String[] args)

Reorder the args so that template:map args are all moved to the front.

Parameters
args String

Returns
String[]

resolveRemoteFile

protected IRemoteFileResolver.ResolvedFile resolveRemoteFile (URI configURI, 
                URI destDir)

Parameters
configURI URI

destDir URI

Returns
IRemoteFileResolver.ResolvedFile

Throws
BuildRetrievalError