com.sun.enterprise.admin.servermgmt
Class RepositoryManager

java.lang.Object
  extended by com.sun.enterprise.admin.servermgmt.KeystoreManager
      extended by com.sun.enterprise.admin.servermgmt.MasterPasswordFileManager
          extended by com.sun.enterprise.admin.servermgmt.RepositoryManager
Direct Known Subclasses:
PEDomainsManager

public class RepositoryManager
extends MasterPasswordFileManager

The RepositoryManager serves as a common base class for the following PEDomainsManager, PEInstancesManager, AgentManager (the SE Node Agent). Its purpose is to abstract out any shared functionality related to lifecycle management of domains, instances and node agents. This includes creation, deletion, listing, and starting and stopping.

Author:
kebbs

Nested Class Summary
protected  class RepositoryManager.RepositoryManagerMessages
          The RepositoryManagerMessages class is used to abstract out ResourceBundle messages that are specific to a domain, node-agent, or server instance.
 
Nested classes/interfaces inherited from class com.sun.enterprise.admin.servermgmt.KeystoreManager
KeystoreManager.KeytoolExecutor
 
Field Summary
protected  RepositoryManager.RepositoryManagerMessages _messages
           
protected static String CERTUTIL_CMD
           
static String DEBUG
           
protected static String NEW_LINE
           
 
Fields inherited from class com.sun.enterprise.admin.servermgmt.KeystoreManager
_fileLayout, CERTIFICATE_ALIAS, DEFAULT_MASTER_PASSWORD, INSTANCE_SECURE_ADMIN_ALIAS
 
Constructor Summary
RepositoryManager()
          Creates a new instance of RepositoryManager
 
Method Summary
protected  void changePasswordAliasKeystorePassword(RepositoryConfig config, String oldPassword, String newPassword)
          Change the password protecting the password alias keystore
protected  void checkRepository(RepositoryConfig config)
           
 void checkRepository(RepositoryConfig config, boolean existingRepository)
           
 void checkRepository(RepositoryConfig config, boolean existingRepository, boolean checkRootDir)
          Sanity check on the repository.
protected  void createAdminKeyFile(RepositoryConfig config, String user, String clearPwd)
          This method creates a separate administrative keyfile.
 void createHttpBCInstallRoot(PEFileLayout layout)
          This method is used to create httpsoapbc install root
 void createJavaEESEInstallRoot(PEFileLayout layout)
          This method is used to create Java EESE install root
protected  void createJBIInstance(String instanceName, RepositoryConfig config)
          Create JBI instance.
protected  void createKeyFile(RepositoryConfig config, String user, String password)
          Create the FileRealm kefile from the given user and password.
protected  void createMQInstance(RepositoryConfig config)
          Create MQ instance.
protected  void createPasswordAliasKeystore(RepositoryConfig config, String password)
          Create the password alias keystore (initially empty)
protected  void createServerPolicyFile(RepositoryConfig config)
          Create the default server.policy file.
protected  void createTimerDbn(RepositoryConfig config)
          Create the timer database dbn file.
protected  void createTimerWal(RepositoryConfig config)
          Create the timer database wal file.
 void createWSDLSLInstallRoot(PEFileLayout layout)
          This method is used to create WSDLSL install root
protected  void deleteRepository(RepositoryConfig config)
          Deletes the repository (domain, node agent, server instance).
protected  void deleteRepository(RepositoryConfig config, boolean deleteJMSProvider)
          Deletes the repository (domain, node agent, server instance).
protected  void generateFromTemplate(TokenValueSet tokens, File template, File destinationFile)
           
 String getClearPasswordForAlias(RepositoryConfig config, String password, String alias)
          retrieve clear password from password alias keystore
protected  RepositoryConfig getConfigForRepositoryStatus(RepositoryConfig config, String repository)
          Return all repositories (domains, node agents, server instances) and their corresponding status (e.g.
protected  String[] getInteractiveOptions(String user, String password, String masterPassword, HashMap extraPasswords)
          Cleans the mq broker instances created for all the server instances that are managed by this domain.
protected  RepositoryManager.RepositoryManagerMessages getMessages()
           
protected  File getRepositoryDir(RepositoryConfig config)
           
protected  File getRepositoryRootDir(RepositoryConfig config)
           
protected  void handleDerby(RepositoryConfig config)
           
static boolean isNSSSupportAvailable()
          Determines if the NSS support is available in this installation.
protected  boolean isValidRepository(File f)
           
protected  boolean isValidRepository(RepositoryConfig config)
           
protected  String[] listRepository(RepositoryConfig config)
          Return all repositories (domains, node agents, server instances)
protected  boolean repositoryExists(RepositoryConfig config)
           
protected  void setMessages(RepositoryManager.RepositoryManagerMessages messages)
           
protected  void setPermissions(RepositoryConfig repositoryConfig)
          Sets the permissions for the domain directory, its config directory, startserv/stopserv scripts etc.
 void validateMasterPassword(RepositoryConfig config, String password)
          We validate the master password by trying to open the password alias keystore.
 
Methods inherited from class com.sun.enterprise.admin.servermgmt.MasterPasswordFileManager
changeMasterPasswordInMasterPasswordFile, createMasterPasswordFile, deleteMasterPasswordFile, readMasterPasswordFile
 
Methods inherited from class com.sun.enterprise.admin.servermgmt.KeystoreManager
changeKeystorePassword, changeS1ASAliasPassword, changeSSLCertificateDatabasePassword, chmod, createKeyStore, createSSLCertificateDatabase, createTrustStore, getCertificateDN, getDASCertDN, getFileLayout, getInstanceCertDN
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CERTUTIL_CMD

protected static final String CERTUTIL_CMD

NEW_LINE

protected static final String NEW_LINE

_messages

protected RepositoryManager.RepositoryManagerMessages _messages

DEBUG

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

RepositoryManager

public RepositoryManager()
Creates a new instance of RepositoryManager

Method Detail

setMessages

protected void setMessages(RepositoryManager.RepositoryManagerMessages messages)

getMessages

protected RepositoryManager.RepositoryManagerMessages getMessages()

generateFromTemplate

protected void generateFromTemplate(TokenValueSet tokens,
                                    File template,
                                    File destinationFile)
                             throws IOException
Throws:
IOException

repositoryExists

protected boolean repositoryExists(RepositoryConfig config)

isValidRepository

protected boolean isValidRepository(File f)

isValidRepository

protected boolean isValidRepository(RepositoryConfig config)

getRepositoryDir

protected File getRepositoryDir(RepositoryConfig config)

getRepositoryRootDir

protected File getRepositoryRootDir(RepositoryConfig config)

checkRepository

protected void checkRepository(RepositoryConfig config)
                        throws RepositoryException
Throws:
RepositoryException

checkRepository

public void checkRepository(RepositoryConfig config,
                            boolean existingRepository)
                     throws RepositoryException
Throws:
RepositoryException

checkRepository

public void checkRepository(RepositoryConfig config,
                            boolean existingRepository,
                            boolean checkRootDir)
                     throws RepositoryException
Sanity check on the repository. This is executed prior to create/delete/start/stop.

Throws:
RepositoryException

setPermissions

protected void setPermissions(RepositoryConfig repositoryConfig)
                       throws RepositoryException
Sets the permissions for the domain directory, its config directory, startserv/stopserv scripts etc.

Throws:
RepositoryException

deleteRepository

protected void deleteRepository(RepositoryConfig config)
                         throws RepositoryException
Deletes the repository (domain, node agent, server instance).

Throws:
RepositoryException

deleteRepository

protected void deleteRepository(RepositoryConfig config,
                                boolean deleteJMSProvider)
                         throws RepositoryException
Deletes the repository (domain, node agent, server instance). If the deleteJMSProvider flag is set, we delete the jms instance. The jms instance is present in the domain only and not when the repository corresponds to a server instance or node agent.

Throws:
RepositoryException

listRepository

protected String[] listRepository(RepositoryConfig config)
                           throws RepositoryException
Return all repositories (domains, node agents, server instances)

Throws:
RepositoryException

getConfigForRepositoryStatus

protected RepositoryConfig getConfigForRepositoryStatus(RepositoryConfig config,
                                                        String repository)
Return all repositories (domains, node agents, server instances) and their corresponding status (e.g. running or stopped) in string form.


createAdminKeyFile

protected void createAdminKeyFile(RepositoryConfig config,
                                  String user,
                                  String clearPwd)
                           throws RepositoryException
This method creates a separate administrative keyfile. This is to separate the administrative users from other users. All the administrative operations will be authenticated against this file realm by default.

Throws:
RepositoryException
See Also:
PEFileLayout.ADMIN_KEY_FILE

createKeyFile

protected void createKeyFile(RepositoryConfig config,
                             String user,
                             String password)
                      throws RepositoryException
Create the FileRealm kefile from the given user and password.

Throws:
RepositoryException

createServerPolicyFile

protected void createServerPolicyFile(RepositoryConfig config)
                               throws RepositoryException
Create the default server.policy file.

Throws:
RepositoryException

validateMasterPassword

public void validateMasterPassword(RepositoryConfig config,
                                   String password)
                            throws RepositoryException
We validate the master password by trying to open the password alias keystore. This means that the keystore must already exist.

Parameters:
config -
password -
Throws:
RepositoryException

getClearPasswordForAlias

public String getClearPasswordForAlias(RepositoryConfig config,
                                       String password,
                                       String alias)
                                throws RepositoryException
retrieve clear password from password alias keystore

Parameters:
config -
password -
alias - for which the clear text password would returns
Throws:
RepositoryException

createPasswordAliasKeystore

protected void createPasswordAliasKeystore(RepositoryConfig config,
                                           String password)
                                    throws RepositoryException
Create the password alias keystore (initially empty)

Parameters:
config -
password - password protecting the keystore
Throws:
RepositoryException

changePasswordAliasKeystorePassword

protected void changePasswordAliasKeystorePassword(RepositoryConfig config,
                                                   String oldPassword,
                                                   String newPassword)
                                            throws RepositoryException
Change the password protecting the password alias keystore

Parameters:
config -
oldPassword - old password
newPassword - new password
Throws:
RepositoryException

createJBIInstance

protected void createJBIInstance(String instanceName,
                                 RepositoryConfig config)
                          throws RepositoryException
Create JBI instance.

Throws:
RepositoryException

createHttpBCInstallRoot

public void createHttpBCInstallRoot(PEFileLayout layout)
                             throws Exception
This method is used to create httpsoapbc install root

Parameters:
layout - PEFileLayout
Throws:
Exception

createJavaEESEInstallRoot

public void createJavaEESEInstallRoot(PEFileLayout layout)
                               throws Exception
This method is used to create Java EESE install root

Parameters:
layout - PEFileLayout
Throws:
Exception

createWSDLSLInstallRoot

public void createWSDLSLInstallRoot(PEFileLayout layout)
                             throws Exception
This method is used to create WSDLSL install root

Parameters:
layout - PEFileLayout
Throws:
Exception

createMQInstance

protected void createMQInstance(RepositoryConfig config)
                         throws RepositoryException
Create MQ instance.

Throws:
RepositoryException

createTimerWal

protected void createTimerWal(RepositoryConfig config)
                       throws RepositoryException
Create the timer database wal file.

Throws:
RepositoryException

createTimerDbn

protected void createTimerDbn(RepositoryConfig config)
                       throws RepositoryException
Create the timer database dbn file.

Throws:
RepositoryException

handleDerby

protected void handleDerby(RepositoryConfig config)
                    throws RepositoryException
Throws:
RepositoryException

getInteractiveOptions

protected String[] getInteractiveOptions(String user,
                                         String password,
                                         String masterPassword,
                                         HashMap extraPasswords)
Cleans the mq broker instances created for all the server instances that are managed by this domain. This method is added to this class for the following reasons 1) Depends on the preConditions of the deleteRespository method - like instance not running. 2) Requires the repository to exist.

Parameters:
config -
Throws:
RepositoryException

isNSSSupportAvailable

public static boolean isNSSSupportAvailable()
Determines if the NSS support is available in this installation. The check involves availability of the certutil executable.

Returns:
true if certutil exists false otherwise


Copyright © 2012 GlassFish Community. All Rights Reserved.