org.apache.http.util
Class VersionInfo

java.lang.Object
  extended by org.apache.http.util.VersionInfo

public class VersionInfo
extends Object

Provides access to version information for HTTP components. Static methods are used to extract version information from property files that are automatically packaged with HTTP component release JARs.

All available version information is provided in strings, where the string format is informal and subject to change without notice. Version information is provided for debugging output and interpretation by humans, not for automated processing in applications.

Since:
4.0

Field Summary
static String PROPERTY_MODULE
           
static String PROPERTY_RELEASE
           
static String PROPERTY_TIMESTAMP
           
static String UNAVAILABLE
          A string constant for unavailable information.
static String VERSION_PROPERTY_FILE
          The filename of the version information files.
 
Constructor Summary
protected VersionInfo(String pckg, String module, String release, String time, String clsldr)
          Instantiates version information.
 
Method Summary
protected static VersionInfo fromMap(String pckg, Map<?,?> info, ClassLoader clsldr)
          Instantiates version information from properties.
 String getClassloader()
          Obtains the classloader used to read the version information.
 String getModule()
          Obtains the name of the versioned module or informal unit.
 String getPackage()
          Obtains the package name.
 String getRelease()
          Obtains the release of the versioned module or informal unit.
 String getTimestamp()
          Obtains the timestamp of the versioned module or informal unit.
static String getUserAgent(String name, String pkg, Class<?> cls)
          Sets the user agent to "<name>/<release> (Java/<java.version>)".
static VersionInfo[] loadVersionInfo(String[] pckgs, ClassLoader clsldr)
          Loads version information for a list of packages.
static VersionInfo loadVersionInfo(String pckg, ClassLoader clsldr)
          Loads version information for a package.
 String toString()
          Provides the version information in human-readable format.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

UNAVAILABLE

public static final String UNAVAILABLE
A string constant for unavailable information.

See Also:
Constant Field Values

VERSION_PROPERTY_FILE

public static final String VERSION_PROPERTY_FILE
The filename of the version information files.

See Also:
Constant Field Values

PROPERTY_MODULE

public static final String PROPERTY_MODULE
See Also:
Constant Field Values

PROPERTY_RELEASE

public static final String PROPERTY_RELEASE
See Also:
Constant Field Values

PROPERTY_TIMESTAMP

public static final String PROPERTY_TIMESTAMP
See Also:
Constant Field Values
Constructor Detail

VersionInfo

protected VersionInfo(String pckg,
                      String module,
                      String release,
                      String time,
                      String clsldr)
Instantiates version information.

Parameters:
pckg - the package
module - the module, or null
release - the release, or null
time - the build time, or null
clsldr - the class loader, or null
Method Detail

getPackage

public final String getPackage()
Obtains the package name. The package name identifies the module or informal unit.

Returns:
the package name, never null

getModule

public final String getModule()
Obtains the name of the versioned module or informal unit. This data is read from the version information for the package.

Returns:
the module name, never null

getRelease

public final String getRelease()
Obtains the release of the versioned module or informal unit. This data is read from the version information for the package.

Returns:
the release version, never null

getTimestamp

public final String getTimestamp()
Obtains the timestamp of the versioned module or informal unit. This data is read from the version information for the package.

Returns:
the timestamp, never null

getClassloader

public final String getClassloader()
Obtains the classloader used to read the version information. This is just the toString output of the classloader, since the version information should not keep a reference to the classloader itself. That could prevent garbage collection.

Returns:
the classloader description, never null

toString

public String toString()
Provides the version information in human-readable format.

Overrides:
toString in class Object
Returns:
a string holding this version information

loadVersionInfo

public static VersionInfo[] loadVersionInfo(String[] pckgs,
                                            ClassLoader clsldr)
Loads version information for a list of packages.

Parameters:
pckgs - the packages for which to load version info
clsldr - the classloader to load from, or null for the thread context classloader
Returns:
the version information for all packages found, never null

loadVersionInfo

public static VersionInfo loadVersionInfo(String pckg,
                                          ClassLoader clsldr)
Loads version information for a package.

Parameters:
pckg - the package for which to load version information, for example "org.apache.http". The package name should NOT end with a dot.
clsldr - the classloader to load from, or null for the thread context classloader
Returns:
the version information for the argument package, or null if not available

fromMap

protected static VersionInfo fromMap(String pckg,
                                     Map<?,?> info,
                                     ClassLoader clsldr)
Instantiates version information from properties.

Parameters:
pckg - the package for the version information
info - the map from string keys to string values, for example Properties
clsldr - the classloader, or null
Returns:
the version information

getUserAgent

public static String getUserAgent(String name,
                                  String pkg,
                                  Class<?> cls)
Sets the user agent to "<name>/<release> (Java/<java.version>)".

For example:

"Apache-HttpClient/4.3 (Java/1.6.0_35)"

Parameters:
name - the component name, like "Apache-HttpClient".
pkg - the package for which to load version information, for example "org.apache.http". The package name should NOT end with a dot.
cls - the class' class loader to load from, or null for the thread context class loader
Since:
4.3


Copyright © 2005–2020 The Apache Software Foundation. All rights reserved.