org.apache.geronimo.system.plugin
Class PluginInstallerGBean

java.lang.Object
  extended by org.apache.geronimo.system.plugin.PluginInstallerGBean
All Implemented Interfaces:
PluginInstaller

public class PluginInstallerGBean
extends Object
implements PluginInstaller

A GBean that knows how to download configurations from a Maven repository.


Field Summary
static GBeanInfo GBEAN_INFO
           
 
Constructor Summary
PluginInstallerGBean(ConfigurationManager configManager, WritableListableRepository repository, ConfigurationStore configStore, ServerInfo serverInfo, ThreadPool threadPool, PluginAttributeStore store)
           
 
Method Summary
 DownloadResults checkOnInstall(Object key)
          Gets the current progress of a download operation.
static GBeanInfo getGBeanInfo()
           
 Map getInstalledPlugins()
          Lists the plugins installed in the local Geronimo server, by name and ID.
 PluginMetadata getPluginMetadata(Artifact moduleId)
          Gets a CofigurationMetadata for a configuration installed in the local server.
 void install(File carFile, String username, String password, DownloadPoller poller)
          Installs from a pre-downloaded CAR file
 DownloadResults install(PluginList pluginsToInstall, String username, String password)
          Installs a configuration from a remote repository into the local Geronimo server, including all its dependencies.
 void install(PluginList pluginsToInstall, String username, String password, DownloadPoller poller)
          Installs a configuration from a remote repository into the local Geronimo server, including all its dependencies.
 PluginList listPlugins(URL mavenRepository, String username, String password)
          Lists the plugins available for download in a particular Geronimo repository.
 Object startInstall(File carFile, String username, String password)
          Installs a configuration downloaded from a remote repository into the local Geronimo server, including all its dependencies.
 Object startInstall(PluginList pluginsToInstall, String username, String password)
          Installs a configuration from a remote repository into the local Geronimo server, including all its dependencies.
 void updatePluginMetadata(PluginMetadata metadata)
          Saves a ConfigurationMetadata for a particular plugin, if the server is able to record it.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

GBEAN_INFO

public static final GBeanInfo GBEAN_INFO
Constructor Detail

PluginInstallerGBean

public PluginInstallerGBean(ConfigurationManager configManager,
                            WritableListableRepository repository,
                            ConfigurationStore configStore,
                            ServerInfo serverInfo,
                            ThreadPool threadPool,
                            PluginAttributeStore store)
Method Detail

getInstalledPlugins

public Map getInstalledPlugins()
Lists the plugins installed in the local Geronimo server, by name and ID.

Specified by:
getInstalledPlugins in interface PluginInstaller
Returns:
A Map with key type String (plugin name) and value type Artifact (config ID of the plugin).

getPluginMetadata

public PluginMetadata getPluginMetadata(Artifact moduleId)
Gets a CofigurationMetadata for a configuration installed in the local server. Should load a saved one if available, or else create a new default one to the best of its abilities.

Specified by:
getPluginMetadata in interface PluginInstaller
Parameters:
moduleId - Identifies the configuration. This must match a configuration currently installed in the local server. The configId must be fully resolved (isResolved() == true)

updatePluginMetadata

public void updatePluginMetadata(PluginMetadata metadata)
Saves a ConfigurationMetadata for a particular plugin, if the server is able to record it. This can be used if you later re-export the plugin, or just want to review the information for a particular installed plugin.

Specified by:
updatePluginMetadata in interface PluginInstaller
Parameters:
metadata - The data to save. The contained configId (which must be fully resolved) identifies the configuration to save this for.

listPlugins

public PluginList listPlugins(URL mavenRepository,
                              String username,
                              String password)
                       throws IOException,
                              FailedLoginException
Lists the plugins available for download in a particular Geronimo repository.

Specified by:
listPlugins in interface PluginInstaller
Parameters:
mavenRepository - The base URL to the maven repository. This must contain the file geronimo-plugins.xml
username - Optional username, if the maven repo uses HTTP Basic authentication. Set this to null if no authentication is required.
password - Optional password, if the maven repo uses HTTP Basic authentication. Set this to null if no authentication is required.
Throws:
IOException
FailedLoginException

install

public DownloadResults install(PluginList pluginsToInstall,
                               String username,
                               String password)
Installs a configuration from a remote repository into the local Geronimo server, including all its dependencies. The caller will get the results when the operation completes. Note that this method does not throw exceptions on failure, but instead sets the failure property of the DownloadResults.

Specified by:
install in interface PluginInstaller
Parameters:
username - Optional username, if the maven repo uses HTTP Basic authentication. Set this to null if no authentication is required.
password - Optional password, if the maven repo uses HTTP Basic authentication. Set this to null if no authentication is required.
pluginsToInstall - The list of configurations to install

install

public void install(PluginList pluginsToInstall,
                    String username,
                    String password,
                    DownloadPoller poller)
Installs a configuration from a remote repository into the local Geronimo server, including all its dependencies. The method blocks until the operation completes, but the caller will be notified of progress frequently along the way (using the supplied DownloadPoller). Therefore the caller is meant to create the poller and then call this method in a background thread. Note that this method does not throw exceptions on failure, but instead sets the failure property of the DownloadPoller.

Specified by:
install in interface PluginInstaller
Parameters:
pluginsToInstall - The list of configurations to install
username - Optional username, if the maven repo uses HTTP Basic authentication. Set this to null if no authentication is required.
password - Optional password, if the maven repo uses HTTP Basic authentication. Set this to null if no authentication is required.
poller - Will be notified with status updates as the download proceeds

startInstall

public Object startInstall(PluginList pluginsToInstall,
                           String username,
                           String password)
Installs a configuration from a remote repository into the local Geronimo server, including all its dependencies. The method returns immediately, providing a key that can be used to poll the status of the download operation. Note that the installation does not throw exceptions on failure, but instead sets the failure property of the DownloadResults that the caller can poll for.

Specified by:
startInstall in interface PluginInstaller
Parameters:
pluginsToInstall - The list of configurations to install
username - Optional username, if the maven repo uses HTTP Basic authentication. Set this to null if no authentication is required.
password - Optional password, if the maven repo uses HTTP Basic authentication. Set this to null if no authentication is required.
Returns:
A key that can be passed to checkOnInstall

startInstall

public Object startInstall(File carFile,
                           String username,
                           String password)
Installs a configuration downloaded from a remote repository into the local Geronimo server, including all its dependencies. The method returns immediately, providing a key that can be used to poll the status of the download operation. Note that the installation does not throw exceptions on failure, but instead sets the failure property of the DownloadResults that the caller can poll for.

Specified by:
startInstall in interface PluginInstaller
Parameters:
carFile - A CAR file downloaded from a remote repository. This is a packaged configuration with included configuration information, but it may still have external dependencies that need to be downloaded separately. The metadata in the CAR file includes a repository URL for these downloads, and the username and password arguments are used in conjunction with that.
username - Optional username, if the maven repo uses HTTP Basic authentication. Set this to null if no authentication is required.
password - Optional password, if the maven repo uses HTTP Basic authentication. Set this to null if no authentication is required.
Returns:
A key that can be passed to checkOnInstall

checkOnInstall

public DownloadResults checkOnInstall(Object key)
Gets the current progress of a download operation. Note that once the DownloadResults is returned for this operation shows isFinished = true, the operation will be forgotten, so the caller should be careful not to call this again after the download has finished.

Specified by:
checkOnInstall in interface PluginInstaller
Parameters:
key - Identifies the operation to check on

install

public void install(File carFile,
                    String username,
                    String password,
                    DownloadPoller poller)
Installs from a pre-downloaded CAR file


getGBeanInfo

public static GBeanInfo getGBeanInfo()


Copyright © 2003-2007 Apache Software Foundation. All Rights Reserved.