sun.module.bootstrap
Class BootstrapRepository

java.lang.Object
  extended by java.module.Repository
      extended by sun.module.bootstrap.BootstrapRepository

public final class BootstrapRepository
extends Repository

Implementation of the bootstrap repository and its module system. It contains the platform modules ("java.se") and the classpath module ("java.classpath").

Since:
1.7
Version:
1.23, 06/20/07
Author:
Stanley M. Ho, Andreas Sterbenz, Dave Bristor

Method Summary
 List<ModuleDefinition> findModuleDefinitions(Query constraint)
          Find all matching module definitions in the repository.
static Repository getInstance()
           
static Module getJavaSeModule()
           
static Superpackage getJavaSeSuperpackage()
           
 void initialize(Map<String,String> config)
          Initializes the repository instance using the supplied configuration.
 ModuleArchiveInfo install(URL u)
          Install a module archive with the module definition into the repository.
 boolean isActive()
          Returns whether or not the repository instance is active.
 boolean isReadOnly()
          Returns whether or not this repository is read-only.
 List<ModuleArchiveInfo> list()
          Returns an unmodifiable list of the installed module archives' information in the repository.
 void reload()
          Reload the repository.
 void shutdown()
          Shutdown the repository.
 boolean uninstall(ModuleArchiveInfo m)
          Uninstall a module archive from the repository.
 
Methods inherited from class java.module.Repository
equals, find, find, find, findAll, getBootstrapRepository, getModuleSystem, getName, getParent, getSourceLocation, getSystemRepository, hashCode, initialize, shutdownOnExit, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Method Detail

getInstance

public static Repository getInstance()

getJavaSeModule

public static Module getJavaSeModule()

getJavaSeSuperpackage

public static Superpackage getJavaSeSuperpackage()

findModuleDefinitions

public List<ModuleDefinition> findModuleDefinitions(Query constraint)
Description copied from class: Repository
Find all matching module definitions in the repository. This method should be overridden by repository implementations for finding matching module definitions, and will be invoked by the find method after checking the parent repository for the requested module definitions.

If this repository instance has not been initialized when this method is called, it will be initialized automatically by calling the initialize method with no argument.

Specified by:
findModuleDefinitions in class Repository
Parameters:
constraint - the constraint.
Returns:
the collection of matching module definitions.

initialize

public void initialize(Map<String,String> config)
                throws IOException
Description copied from class: Repository
Initializes the repository instance using the supplied configuration. Configuration properties are described in the class description.

This method will not modify config or save a reference to it, but may save a clone.

Specified by:
initialize in class Repository
Parameters:
config - - config used to initialize the repository instance.
Throws:
IOException - if an I/O error occurs.

isReadOnly

public boolean isReadOnly()
Description copied from class: Repository
Returns whether or not this repository is read-only.

Specified by:
isReadOnly in class Repository
Returns:
true if this repository is read-only.

reload

public void reload()
            throws IOException
Description copied from class: Repository
Reload the repository. The behavior of this method depends on the implementation.

If a security manager is present, this method calls the security manager's checkPermission method with a ModuleSystemPermission("reloadRepository") permission to ensure it's ok to reload module definitions in a repository.

Specified by:
reload in class Repository
Throws:
IOException - If an error occurs while reloading the module definitions.

install

public ModuleArchiveInfo install(URL u)
                          throws IOException
Description copied from class: Repository
Install a module archive with the module definition into the repository.

If a security manager is present, this method calls the security manager's checkPermission method with a ModuleSystemPermission("installModuleArchive") permission to ensure it's ok to install a module archive into a repository.

Specified by:
install in class Repository
Parameters:
u - the URL to the module archive.
Returns:
the ModuleArchiveInfo object that represents the installed module archive.
Throws:
IOException - if an error occurs while installing the module archive.
ModuleFormatException - if the module archive format is not supported by this implementation.

uninstall

public boolean uninstall(ModuleArchiveInfo m)
                  throws IOException
Description copied from class: Repository
Uninstall a module archive from the repository.

If a security manager is present, this method calls the security manager's checkPermission method with a ModuleSystemPermission("uninstallModuleArchive") permission to ensure it's ok to uninstall a module archive from a repository.

Specified by:
uninstall in class Repository
Parameters:
m - the module archive to be uninstalled.
Returns:
true if the module archive is found and uninstalled, returns false otherwise.
Throws:
IOException - If an error occurs while uninstalling the module archive.

shutdown

public void shutdown()
              throws IOException
Description copied from class: Repository
Shutdown the repository. If a security manager is present, this method calls the security manager's checkPermission method with a ModuleSystemPermission("shutdownRepository") permission to ensure it's ok to shutdown a repository.

Specified by:
shutdown in class Repository
Throws:
IOException - if an I/O error occurs.

list

public List<ModuleArchiveInfo> list()
Description copied from class: Repository
Returns an unmodifiable list of the installed module archives' information in the repository. The list will contain a snapshot of the installed module archives in the repository at the time of the given invocation of this method.

If a security manager is present, this method calls the security manager's checkPermission method with a ModuleSystemPermission("listModuleArchive") permission to ensure it's ok to return the information of the installed module archives in a repository.

Specified by:
list in class Repository
Returns:
an unmodifiable list of the installed module archives' information.

isActive

public boolean isActive()
Description copied from class: Repository
Returns whether or not the repository instance is active.

A repository instance is active if it has been initialized but has not been shutdown.

Specified by:
isActive in class Repository
Returns:
true if this repository instance is active.