com.ibm.websphere.management.application
Class AppManagementProxy

java.lang.Object
  |
  +--com.ibm.websphere.management.application.AppManagementProxy
All Implemented Interfaces:
AppManagement

public class AppManagementProxy
extends java.lang.Object
implements AppManagement

AppManagementProxy provides a common implementation for AppManagement interface in local and JMX mode. This class provides static APIs to get AppManagementProxy instance for
1) AppManagement in local mode (which runs in the absence of WebSphere appserver
2) AppManagement MBean running in a server to be connected from a remote client
3) AppManagement MBean running in a server to be connected from an in-process client


Method Summary
 void changeServerToCluster(javax.management.ObjectName arg0, javax.management.ObjectName arg1, java.util.Hashtable arg2, java.lang.String arg3)
          Callback for admin clients when a server is turned into a cluster.
 boolean checkIfAppExists(java.lang.String arg0, java.util.Hashtable arg1, java.lang.String arg2)
          Checks if an application with the given name is installed in the configuration.
 void clusterMemberAdded(javax.management.ObjectName arg0, javax.management.ObjectName arg1, java.util.Hashtable arg2, java.lang.String arg3)
          Callback for admin clients when a cluster member is added.
 java.util.Vector compareSecurityPolicy(java.lang.String arg0, java.util.Hashtable arg1, java.lang.String arg2)
          Compares the policy data from was.policy file of the ear file with the filter.policy file from WebSphere.
 void deleteUserAndGroupEntries(java.lang.String appName, java.util.Hashtable prefs, java.lang.String wID)
          Deletes all the security binding information related to users and groups from application metadata.
 void exportApplication(java.lang.String arg0, java.lang.String arg1, java.util.Hashtable arg2, java.lang.String arg3)
          Exports the application to a given file.
 void extractDDL(java.lang.String arg0, java.lang.String arg1, java.lang.String arg2, java.util.Hashtable arg3, java.lang.String arg4)
          Exports Table.ddl from all the jars in the ear
 java.util.Vector getApplicationInfo(java.lang.String arg0, java.util.Hashtable arg1, java.lang.String arg2)
          Returns a Vector of AppDeploymentTask objects.
 java.util.Hashtable getGlobalSettings()
           
static AppManagement getJMXProxyForClient(AdminClient adminClient)
          Returns a proxy for AppManagement functions to be called in JMX mode.
static AppManagement getJMXProxyForServer()
          Returns a proxy for AppManagement functions to be called in JMX mode.
static AppManagement getLocalProxy()
          Returns proxy for local mode AppManagement functions.
 java.util.Vector getModuleInfo(java.lang.String arg0, java.util.Hashtable arg1, java.lang.String arg2, java.lang.String arg3)
          Returns a Vector of AppDeploymentTask objects.
 void installApplication(java.lang.String arg0, java.util.Hashtable arg1, java.lang.String arg2)
          Installs a J2EE application in WebSphere cell.
 void installApplication(java.lang.String arg0, java.lang.String arg1, java.util.Hashtable arg2, java.lang.String arg3)
          Installs a J2EE application with the given name in WebSphere cell.
 void installApplicationLocal(java.lang.String arg0, java.lang.String arg1, java.util.Hashtable arg2, AppNotification.Listener arg3)
          Installs a J2EE application with the given name in WebSphere cell.
 void installApplicationLocal(java.lang.String arg0, java.lang.String arg1, java.util.Hashtable arg2, AppNotification.Listener arg3, java.lang.String arg4)
          Installs a J2EE application with the given name in WebSphere cell.
 void installStandaloneRAR(java.lang.String arg0, java.util.Hashtable arg1, java.lang.String arg2)
           
 java.util.Vector listApplications(java.util.Hashtable arg0, java.lang.String arg1)
          Lists installed applications.
 java.lang.Object listModules(java.lang.String arg0, java.util.Hashtable arg1, java.lang.String arg2)
          Lists modules of an application.
 void moveModule(java.lang.String arg0, java.util.Hashtable arg1, java.lang.String arg2, javax.management.ObjectName arg3, java.lang.String arg4)
           
 void publishWSDL(java.lang.String arg0, java.lang.String arg1, java.util.Hashtable arg2, java.lang.String arg3)
          Publish wsdl files to a zip file
 void redeployApplication(java.lang.String arg0, java.lang.String arg1, java.util.Hashtable arg2, java.lang.String arg3)
          Updates an installed J2EE application with a new version of its binaries.
 void redeployApplicationLocal(java.lang.String arg0, java.lang.String arg1, java.util.Hashtable arg2, AppNotification.Listener arg3, java.lang.String arg4)
          Updates an installed J2EE application with a new version of its binaries.
 void removeAllAppsFromCluster(javax.management.ObjectName arg0, java.util.Hashtable arg1, java.lang.String arg2)
          Callback for admin clients when a cluster is removed.
 void removeAllAppsFromNode(java.lang.String arg0, java.lang.String arg1, java.util.Hashtable arg2, java.lang.String arg3)
          Removes all the applications from all the servers of a given node.
 void removeAllAppsFromServer(javax.management.ObjectName arg0, java.util.Hashtable arg1, java.lang.String arg2)
          Callback for admin clients when a server is removed.
 void sendJMXEvent(java.lang.Object arg0)
           
 void sendJMXEvent(java.lang.String s, java.lang.Object arg0)
           
 void setApplicationInfo(java.lang.String arg0, java.util.Hashtable arg1, java.lang.String arg2, java.util.Vector arg3)
          Sets the new binding information for an installed application.
 void setModuleInfo(java.lang.String arg0, java.util.Hashtable arg1, java.lang.String arg2, java.lang.String arg3, java.util.Vector arg4)
          Sets the new binding information for an installed application module.
 java.lang.String startApplication(java.lang.String appName, java.util.Hashtable prefs, java.lang.String wID)
           
 java.lang.String stopApplication(java.lang.String appName, java.util.Hashtable prefs, java.lang.String wID)
           
 void uninstallApplication(java.lang.String arg0, java.util.Hashtable arg1, java.lang.String arg2)
          Uninstalls an application from WebSphere cell.
 void uninstallApplicationLocal(java.lang.String arg0, java.util.Hashtable arg1, AppNotification.Listener arg2)
          Uninstalls an application from WebSphere cell.
 void uninstallApplicationLocal(java.lang.String arg0, java.util.Hashtable arg1, AppNotification.Listener arg2, java.lang.String arg3)
          Uninstalls an application from WebSphere cell.
 void updateAccessIDs(java.lang.String appName, java.lang.Boolean bAll, java.util.Hashtable prefs, java.lang.String wID)
          Populates the application bindings of the deployment with the access IDs for all the users and groups.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getLocalProxy

public static AppManagement getLocalProxy()
                                   throws java.lang.Exception
Returns proxy for local mode AppManagement functions. This proxy does not talk to WebSphere server. This proxy should not be used when WebSphere server is running on the same machine.

Returns:
The AppManagement proxy instance
java.lang.Exception

getJMXProxyForClient

public static AppManagement getJMXProxyForClient(AdminClient adminClient)
                                          throws java.lang.Exception
Returns a proxy for AppManagement functions to be called in JMX mode. This proxy delegates to AppManagement MBean using AdminClient. This proxy should be used by clients that reside outside of server process.

Parameters:
adminClient - The AdminClient instance to communicate with the server process
Returns:
The AppManagement proxy instance
java.lang.Exception

getJMXProxyForServer

public static AppManagement getJMXProxyForServer()
                                          throws java.lang.Exception
Returns a proxy for AppManagement functions to be called in JMX mode. This proxy delegates to in-process AppManagement MBean. This proxy should be used by clients that reside in the same process as WebSphere server.

Returns:
The AppManagement proxy instance
java.lang.Exception

sendJMXEvent

public void sendJMXEvent(java.lang.Object arg0)
Specified by:
sendJMXEvent in interface AppManagement

sendJMXEvent

public void sendJMXEvent(java.lang.String s,
                         java.lang.Object arg0)
Specified by:
sendJMXEvent in interface AppManagement

getGlobalSettings

public java.util.Hashtable getGlobalSettings()
Specified by:
getGlobalSettings in interface AppManagement

clusterMemberAdded

public void clusterMemberAdded(javax.management.ObjectName arg0,
                               javax.management.ObjectName arg1,
                               java.util.Hashtable arg2,
                               java.lang.String arg3)
                        throws AdminException
Description copied from interface: AppManagement
Callback for admin clients when a cluster member is added. If this is the first member then all the deployments are searched and server index entries for this member are updated. If there are other members in the cluster then deployment entries from their server index documents are copied for the new member.

Specified by:
clusterMemberAdded in interface AppManagement
Parameters:
arg1 - The javax.management.ObjectName for the cluster. This is of the form Websphere:cell=cellName,cluster=clusterName
arg2 - The preferences object containing locale information.
Throws:
AdminException - Throws AdminException if operation fails.

changeServerToCluster

public void changeServerToCluster(javax.management.ObjectName arg0,
                                  javax.management.ObjectName arg1,
                                  java.util.Hashtable arg2,
                                  java.lang.String arg3)
                           throws AdminException
Description copied from interface: AppManagement
Callback for admin clients when a server is turned into a cluster. This method is called after a server is changed into a cluster.

Specified by:
changeServerToCluster in interface AppManagement
Parameters:
arg0 - The javax.management.ObjectName for the server. This is of the form Websphere:cell=cellName,node=nodeName,server=serverName
arg1 - The javax.management.ObjectName for the cluster. This is of the form Websphere:cell=cellName,cluster=clusterName
arg2 - The preferences object containing locale information.
arg3 - The workspace ID
Throws:
AdminException - Throws AdminException if operation fails.

removeAllAppsFromCluster

public void removeAllAppsFromCluster(javax.management.ObjectName arg0,
                                     java.util.Hashtable arg1,
                                     java.lang.String arg2)
                              throws AdminException
Description copied from interface: AppManagement
Callback for admin clients when a cluster is removed. The serverindex documents are updated by removing deployment entries for all members and all the deployments are updated by removing any references to the cluster or its members.

Specified by:
removeAllAppsFromCluster in interface AppManagement
Parameters:
arg0 - The javax.management.ObjectName for the cluster. This objectName should contains cell, cluster name. e.g. Websphere:cell=cellName,cluster=clusterName
arg1 - The preferences object containing locale information.
arg2 - The workspace ID
Throws:
AdminException - Throws AdminException if operation fails.

removeAllAppsFromServer

public void removeAllAppsFromServer(javax.management.ObjectName arg0,
                                    java.util.Hashtable arg1,
                                    java.lang.String arg2)
                             throws AdminException
Description copied from interface: AppManagement
Callback for admin clients when a server is removed. The serverindex document is updated by removing deployment entries for that server and all the deployments are updated by removing any references to the server to be removed.

Specified by:
removeAllAppsFromServer in interface AppManagement
Parameters:
arg0 - The javax.management.ObjectName for the server. This objectName should contains cell, node, server name. e.g. Websphere:cell=cellName,node=nodeName,server=serverName
arg1 - The preferences object containing locale information.
arg2 - The workspace ID
Throws:
AdminException - Throws AdminException if operation fails.

removeAllAppsFromNode

public void removeAllAppsFromNode(java.lang.String arg0,
                                  java.lang.String arg1,
                                  java.util.Hashtable arg2,
                                  java.lang.String arg3)
                           throws AdminException
Description copied from interface: AppManagement
Removes all the applications from all the servers of a given node. The applications are not uninstalled. Only the server targets are removed. The modules can be then moved to servers on other nodes.

Specified by:
removeAllAppsFromNode in interface AppManagement
Parameters:
arg0 - The node name
arg1 - The cell name of the node.
arg2 - The preferences object containing locale information.
arg3 - The workspace ID
Throws:
AdminException - Throws AdminException if operation fails.

checkIfAppExists

public boolean checkIfAppExists(java.lang.String arg0,
                                java.util.Hashtable arg1,
                                java.lang.String arg2)
                         throws AdminException
Description copied from interface: AppManagement
Checks if an application with the given name is installed in the configuration.

Specified by:
checkIfAppExists in interface AppManagement
Parameters:
arg0 - The application name
arg1 - The preferences object containing locale information.
arg2 - The workspace ID
Returns:
true if the app is installed, false otherwise.
Throws:
AdminException - Throws AdminException if operation fails.

installStandaloneRAR

public void installStandaloneRAR(java.lang.String arg0,
                                 java.util.Hashtable arg1,
                                 java.lang.String arg2)
                          throws AdminException
Specified by:
installStandaloneRAR in interface AppManagement
Parameters:
arg0 - Fully qualified RAR file name
arg1 - A properties hashtable that specifies more information about RAR install. The only required parameter is the scope which can be specified by the key AppConstants.APPDEPL_SERVER, or AppConstants.APPDEPL_NODE or AppConstants.APPDEPL_CELL. The resources.xml file from this specified scope is used to store the J2CResourceAdapter created by this method. Additionally the properties table can also specify name (key: AppConstants.RARDEPL_NAME), description (key: AppConstants.RARDEPL_DESCRIPTION), archivePath (key: AppConstants.RARDEPL_ARCHIVEPATH), and locale (key: APPDEPL_LOCALE).
arg2 - The workspace ID
Throws:
AdminException - Throws AdminException if operation fails.

compareSecurityPolicy

public java.util.Vector compareSecurityPolicy(java.lang.String arg0,
                                              java.util.Hashtable arg1,
                                              java.lang.String arg2)
                                       throws AdminException
Description copied from interface: AppManagement
Compares the policy data from was.policy file of the ear file with the filter.policy file from WebSphere. If there is any policy in was.policy file that appears in the filter.policy, an exception is thrown. For custom permissions defined in was.policy a vector of warnings is returned. This method is called during application installation.

Specified by:
compareSecurityPolicy in interface AppManagement
Parameters:
arg0 - The contents of was.policy file from ear
arg2 - The workspace ID
Returns:
a Vector of custom policies for application
Throws:
AdminException - Throws AdminException if operation fails.

listModules

public java.lang.Object listModules(java.lang.String arg0,
                                    java.util.Hashtable arg1,
                                    java.lang.String arg2)
                             throws AdminException
Description copied from interface: AppManagement
Lists modules of an application.

Specified by:
listModules in interface AppManagement
Parameters:
arg0 - The application name
arg2 - The workspace ID
Returns:
An instance of com.ibm.websphere.management.application.AppDeploymentTask that lists module information. The two dimensional array of String data in the task instance specifies the module name, unique module URI and the module targets.
Throws:
AdminException - Throws AdminException if operation fails.

listApplications

public java.util.Vector listApplications(java.util.Hashtable arg0,
                                         java.lang.String arg1)
                                  throws AdminException
Description copied from interface: AppManagement
Lists installed applications.

Specified by:
listApplications in interface AppManagement
Parameters:
arg0 - The preferences object containing locale information.
Returns:
An array of application names
Throws:
AdminException - Throws AdminException if operation fails.

extractDDL

public void extractDDL(java.lang.String arg0,
                       java.lang.String arg1,
                       java.lang.String arg2,
                       java.util.Hashtable arg3,
                       java.lang.String arg4)
                throws AdminException
Description copied from interface: AppManagement
Exports Table.ddl from all the jars in the ear

Specified by:
extractDDL in interface AppManagement
Parameters:
arg0 - The application name
arg1 - The prefix for DDL files
arg2 - The destination dir name
arg3 - The preferences object containing locale information.
arg4 - The workspace ID
Throws:
AdminException - Throws AdminException if operation fails.

exportApplication

public void exportApplication(java.lang.String arg0,
                              java.lang.String arg1,
                              java.util.Hashtable arg2,
                              java.lang.String arg3)
                       throws AdminException
Description copied from interface: AppManagement
Exports the application to a given file.

Specified by:
exportApplication in interface AppManagement
Parameters:
arg0 - The application name
arg1 - The destination file name
arg2 - The preferences object containing locale information.
arg3 - The workspace ID
Throws:
AdminException - Throws AdminException if operation fails.

moveModule

public void moveModule(java.lang.String arg0,
                       java.util.Hashtable arg1,
                       java.lang.String arg2,
                       javax.management.ObjectName arg3,
                       java.lang.String arg4)
                throws AdminException
Specified by:
moveModule in interface AppManagement
Parameters:
arg0 - The application name
arg1 - The preferences object containing locale information.
arg2 - The unique module URI string.
arg3 - The JMX object name of destination.
arg4 - The workspace ID
Throws:
AdminException - Throws AdminException if operation fails.

setModuleInfo

public void setModuleInfo(java.lang.String arg0,
                          java.util.Hashtable arg1,
                          java.lang.String arg2,
                          java.lang.String arg3,
                          java.util.Vector arg4)
                   throws AdminException
Description copied from interface: AppManagement
Sets the new binding information for an installed application module. The binding information is represented by a set of AppDeploymentTask objects. A task represents a step in collecting application-specific binding information (such as virtual hosts for web modules or JNDI names for EJBs) during application installation or editing. Each task contains a two-dimensional array of Strings containing task-specific data.

Specified by:
setModuleInfo in interface AppManagement
Parameters:
arg0 - The application name
arg1 - The preferences object containing locale information.
arg2 - The unique module URI string.
arg3 - The workspace ID
arg4 - The vector of tasks
Throws:
AdminException - Throws AdminException if operation fails.

setApplicationInfo

public void setApplicationInfo(java.lang.String arg0,
                               java.util.Hashtable arg1,
                               java.lang.String arg2,
                               java.util.Vector arg3)
                        throws AdminException
Description copied from interface: AppManagement
Sets the new binding information for an installed application. The binding information is represented by a set of AppDeploymentTask objects. A task represents a step in collecting application-specific binding information (such as virtual hosts for web modules or JNDI names for EJBs) during application installation or editing. Each task contains a two-dimensional array of Strings containing task-specific data.

Specified by:
setApplicationInfo in interface AppManagement
Parameters:
arg0 - The application name
arg1 - The preferences object containing locale information.
arg3 - The vector of tasks
arg2 - The workspace ID
Throws:
AdminException - Throws AdminException if operation fails.

getModuleInfo

public java.util.Vector getModuleInfo(java.lang.String arg0,
                                      java.util.Hashtable arg1,
                                      java.lang.String arg2,
                                      java.lang.String arg3)
                               throws AdminException
Description copied from interface: AppManagement
Returns a Vector of AppDeploymentTask objects. A task represents a step in collecting application-specific binding information (such as virtual hosts for web modules or JNDI names for EJBs) during application installation or editing. Each task contains a two-dimensional array of Strings containing task-specific data. The caller can manipulate the returned tasks and call setModuleInfo to set the new binding information in the installed module.

Specified by:
getModuleInfo in interface AppManagement
Parameters:
arg0 - The application name
arg1 - The preferences object containing locale information.
arg2 - The unique module URI string.
arg3 - The workspace ID
Returns:
The module-specific tasks
Throws:
AdminException - Throws AdminException if operation fails.

getApplicationInfo

public java.util.Vector getApplicationInfo(java.lang.String arg0,
                                           java.util.Hashtable arg1,
                                           java.lang.String arg2)
                                    throws AdminException
Description copied from interface: AppManagement
Returns a Vector of AppDeploymentTask objects. A task represents a step in collecting application-specific binding information (such as virtual hosts for web modules or JNDI names for EJBs) during application installation or editing. Each task contains a two-dimensional array of Strings containing task-specific data. The caller can manipulate the returned tasks and call setApplicationInfo to set the new binding information in the installed application.

Specified by:
getApplicationInfo in interface AppManagement
Parameters:
arg0 - The application name
arg1 - The preferences object containing locale information.
arg2 - The workspace ID
Returns:
The application tasks
Throws:
AdminException - Throws AdminException if operation fails.

redeployApplication

public void redeployApplication(java.lang.String arg0,
                                java.lang.String arg1,
                                java.util.Hashtable arg2,
                                java.lang.String arg3)
                         throws AdminException
Description copied from interface: AppManagement
Updates an installed J2EE application with a new version of its binaries. The older version of the application is uninstalled and the newer version is installed. When the configuration is saved (and synchronized in ND configuration) the new binaries are extracted in the install destination. If the old application was running then it is stopped prior to replacing the binaries and cycled after binaries are extracted. This is an asynchronous call to AppManagement MBean. The caller should register for MBean events to listen to the progress of update.

Sample code for application update:-
Refer to sample code for installApplication.

Specified by:
redeployApplication in interface AppManagement
Parameters:
arg0 - Fully qualified ear file name
arg1 - The application name
arg2 - The app install properties table
arg3 - The workspaceID
Throws:
AdminException - Throws AdminException if redeployment fails.

redeployApplicationLocal

public void redeployApplicationLocal(java.lang.String arg0,
                                     java.lang.String arg1,
                                     java.util.Hashtable arg2,
                                     AppNotification.Listener arg3,
                                     java.lang.String arg4)
                              throws AdminException
Description copied from interface: AppManagement
Updates an installed J2EE application with a new version of its binaries. The older version of the application is uninstalled and the newer version is installed. When the configuration is saved (and synchronized in ND configuration) the new binaries are extracted in the install destination. If the old application was running then it is stopped prior to replacing the binaries and cycled after binaries are extracted. This is an asynchronous call. The caller should pass in a listener object to learn about progress of update. This method should only be invoked when AppManagement instance is created in local mode.

Specified by:
redeployApplicationLocal in interface AppManagement
Parameters:
arg0 - Fully qualified ear file name
arg1 - The application name
arg2 - The app install properties table
arg3 - A local event listener that the AppManagement logic notifies of update progress.
arg4 - The workspaceID
Throws:
AdminException - Throws AdminException if redeployment fails.

uninstallApplication

public void uninstallApplication(java.lang.String arg0,
                                 java.util.Hashtable arg1,
                                 java.lang.String arg2)
                          throws AdminException
Description copied from interface: AppManagement
Uninstalls an application from WebSphere cell. The application is removed from all the target servers and clusters. This is an asynchronous call to AppManagement MBean. The caller should register for MBean events to listen to the progress of uninstallation. When configuration changes are saved the application binaries are deleted from all the nodes that the application runs on. The application is stopped prior to deleting binaries.

Sample code to uninstall application:- Refer to sample code for installing an application for creating AppManagementProxy object and adding a JMX listener to listen to AppManagement MBean events.

 Hashtable props = new Hashtable();
 props.put (AppConstants.APPDEPL_LOCALE, Locale.getDefault()):
 appM.uninstallApplication (appName, props, null);
 

Specified by:
uninstallApplication in interface AppManagement
Parameters:
arg0 - The name of installed application
arg2 - The workspace ID
Throws:
AdminException - Throws AdminException if uninstall fails.

uninstallApplicationLocal

public void uninstallApplicationLocal(java.lang.String arg0,
                                      java.util.Hashtable arg1,
                                      AppNotification.Listener arg2,
                                      java.lang.String arg3)
                               throws AdminException
Description copied from interface: AppManagement
Uninstalls an application from WebSphere cell. The application is removed from all the target servers and clusters. This is an asynchronous call. The caller should pass in a listener object to learn about progress of installation. This method should only be invoked when AppManagement instance is created in local mode.

Specified by:
uninstallApplicationLocal in interface AppManagement
Parameters:
arg0 - The name of installed application
arg2 - A local event listener that the AppManagement logic notifies of uninstallation progress.
arg3 - The workspace ID
Throws:
AdminException - Throws AdminException if uninstall fails.

uninstallApplicationLocal

public void uninstallApplicationLocal(java.lang.String arg0,
                                      java.util.Hashtable arg1,
                                      AppNotification.Listener arg2)
                               throws AdminException
Description copied from interface: AppManagement
Uninstalls an application from WebSphere cell. The application is removed from all the target servers and clusters. This is an asynchronous call. The caller should pass in a listener object to learn about progress of installation. This method should only be invoked when AppManagement instance is created in local mode.

Specified by:
uninstallApplicationLocal in interface AppManagement
Parameters:
arg0 - The name of installed application
arg2 - A local event listener that the AppManagement logic notifies of uninstallation progress.
Throws:
AdminException - Throws AdminException if uninstall fails.

installApplicationLocal

public void installApplicationLocal(java.lang.String arg0,
                                    java.lang.String arg1,
                                    java.util.Hashtable arg2,
                                    AppNotification.Listener arg3,
                                    java.lang.String arg4)
                             throws AdminException
Description copied from interface: AppManagement
Installs a J2EE application with the given name in WebSphere cell. This is a local implementation used by local clients that run without the presence of a WebSphere server. This is an asynchronous call. The caller should pass in a listener object to learn about progress of installation. This method should only be invoked when AppManagement instance is created in local mode.

Specified by:
installApplicationLocal in interface AppManagement
Parameters:
arg0 - Fully qualified name of local ear file
arg1 - The application name
arg2 - The app install properties table
arg3 - A local event listener that the AppManagement logic notifies of installation progress.
arg4 - The workspace ID.
Throws:
AdminException - Throws AdminException if install fails.

installApplicationLocal

public void installApplicationLocal(java.lang.String arg0,
                                    java.lang.String arg1,
                                    java.util.Hashtable arg2,
                                    AppNotification.Listener arg3)
                             throws AdminException
Description copied from interface: AppManagement
Installs a J2EE application with the given name in WebSphere cell. This is a local implementation used by local clients that run without the presence of a WebSphere server. This is an asynchronous call. The caller should pass in a listener object to learn about progress of installation. This method should only be invoked when AppManagement instance is created in local mode.

Specified by:
installApplicationLocal in interface AppManagement
Parameters:
arg0 - Fully qualified name of local ear file.
arg1 - The application name
arg2 - The app install properties table
arg3 - A local event listener that the AppManagement logic notifies of installation progress.
Throws:
AdminException - Throws AdminException if install fails.

installApplication

public void installApplication(java.lang.String arg0,
                               java.lang.String arg1,
                               java.util.Hashtable arg2,
                               java.lang.String arg3)
                        throws AdminException
Description copied from interface: AppManagement
Installs a J2EE application with the given name in WebSphere cell. This is an asynchronous call to AppManagement MBean. The caller should register for MBean events to listen to the progress of installation.

Specified by:
installApplication in interface AppManagement
Parameters:
arg0 - Fully qualified ear file name. The EAR file must be on the same machine where the MBean is running.
arg1 - The application name. If specified, this name overrides the name specified in properties table or in application's deployment descriptor.
arg2 - The app install properties table
arg3 - The workspace ID.
Throws:
AdminException - Throws AdminException if install fails.

installApplication

public void installApplication(java.lang.String arg0,
                               java.util.Hashtable arg1,
                               java.lang.String arg2)
                        throws AdminException
Description copied from interface: AppManagement
Installs a J2EE application in WebSphere cell. This is an asynchronous call to AppManagement MBean. The caller should register for MBean events to listen to the progress of installation. This API takes an EAR file and a properties table that defines various options passed in for installation. The properties table contains all the information that is needed during installation but not stored in the EAR file. The following table lists possible options that can be passed in.

Note1: All the keys in this table are defined as constants in com.ibm.websphere.management.application.AppConstants class. Always use these constants instead of their values.

Note2: uniqueModuleURI - In the following table there are references to uniqueModuleURI. This is a string that specifies module URI and deployment descriptor (DD) URI for that module. The module URI is specified relative to the EAR root while the DD URI for default deployment descriptor is specified relative to the module. This forms a unique combination to locate a module in the EAR file. The string is formed by concatenating module URI, "+" and DD URI. For example, a module with URI beenthere.jar and using default EJB DD has uniqueModuleURI as "beenthere.jar+META-INF/ejb-jar.xml". For modules with Alt-DD the DD URI is relative to the root of the EAR.

Key Value Description
AppConstants.APPDEPL_LOCALE java.util.Locale Optional. Used by server install code to generate messages. Default - default locale
AppConstants.APPDEPL_DISTRIBUTE_APP java.lang.Boolean Optional. Default - TRUE. Specifies if EAR file is expanded to (or deleted from) the install destination directory upon installation (or uninstallation). The application EAR is expanded by default to the install destination directory of each node where the application is expected to run. If this option is set to FALSE, it is user's responsibility to make sure that the application EAR is expanded at the install location on each node before application is started.
AppConstants.APPDEPL_USE_BINARY_CONFIG java.lang.Boolean Optional. Default - FALSE. Specifies if the runtime should read application metadata (dd / bindings/ extensions) from ear file. By default the metadata is read from config/cells/cellName/applications/appName.ear/deployments/appName directory in the repository.
AppConstants.APPDEPL_DEPLOYEJB_CMDARG java.lang.Boolean Optional. Default - FALSE Specifies if EJBDeploy tool should be invoked on the EAR during installation. The installation may take up to several minutes if this option is set to TRUE.
AppConstants.APPDEPL_DEPLOYEJB_OPTIONS java.util.Hashtable Required if AppConstants.APPDEPL_DEPLOYEJB_CMDARG is set to TRUE. The entires in this hashtable are as follows
AppConstants.APPDEPL_INSTALL_DIR java.lang.String Optional. Speficies the directory to which the application EAR file will be installed. The default value is ${APP_INSTALL_ROOT}/cell_name/appname.ear, where the APP_INSTALL_ROOT variable expands to install_root/installedApps; for example, C:\WebSphere\AppServer\installedApps\cell_name. You can specify an absolute path or use a pathmap variable such as ${MY_APPS}. You can use a pathmap variable in any installation though it is particularly needed when installing an application on a cluster with members on heterogeneous nodes because, in such cases, there might not be a single way to specify an absolute path. A WebSphere Application Server variable ${CELL} that denotes the current cell name can also be in the pathmap variable; for example, ${MY_APP}/${CELL}.
AppConstants.APPDEPL_MBEANFORRES java.lang.Boolean Optional. Default - TRUE. Specifies if MBeans are created for all the servlets, jsps and EJBs in the application. Turning this off may reduce memory usage and application startup time.
AppConstants.APPDEPL_RELOAD_ENABLED java.lang.Boolean Optional. Default - Not saved if not specified. Specifies whether the application's filesystem will be scanned for updated files, so that changes are dynamically reloaded. If not specified then the value is taken from the IBM extensions in the EAR file.
AppConstants.APPDEPL_RELOAD_INTERVAL java.lang.String Optional. Default - Not saved if not specified. The timeperiod (in seconds) in which the application's filesystem will be scanned for updated files. This setting takes effect only if class reloading is enabled. If not specified then the value is taken from the IBM extension in the EAR file.
AppConstants.APPDEPL_APP_NAME java.lang.String Optional. Specifies the application name. If not specified, then application name is taken from the deployment descriptor of the application. If not specified in the deployment descriptor then the name of the EAR is used as application name.
AppConstants.APPDEPL_PRECOMPILE_JSP java.lang.Boolean Optional. Default - FALSE Specifies whether to precompile jsps in all the Web modules. jsps are precompiled during installation if this attribute is set to TRUE.
AppConstants.APPDEPL_MODULE_TO_SERVER java.util.Hashtable Required. This table contains module - server relationships. All the EJB, Web, RAR modules that are to be deployed on specific targets should be listed in this table. The keys of this table are uniqueModuleURI strings. The values are Strings of the format "WebSphere:cell=cellName,node=nodeName, server=serverName" for server targets and "WebSphere:cell=cellName, cluster=clusterName" for cluster targets. Multiple targets can be specified by using "+" as a delimiter. An example entry in the table looks like -
Key = "abc.war+WEB-INF/web.xml"
Value = "WebSphere:cell=myNetwork,node=mynode,server=server1+ WebSphere:cell=myNetwork,cluster=MyCluster"
AppConstants.APPDEPL_DELETE_SRC_EAR java.lang.Boolean Optional. Default - FALSE Specifies whether to delete the ear file passed in as a parameter after installation.
AppConstants.APPDEPL_HANDBACK java.io.Serializable Optional. Default - N/A Specifies a serializable object that is passed back to the caller with notifications generated during installation. This handback object is useful when a single listener listens to JMX events from multiple concurrent installations.
AppConstants.APPDEPL_ZERO_BINARY_COPY java.lang.Boolean Optional. Default - FALSE When this option is specified, the install logic does not copy EAR file or application metadata in the repository. Only the deployment information is stored in the repository. Specifying this flag also means AppConstants.APPDEPL_DISTRIBUTE_APP=False and AppConstants.APPDEPL_USE_BINARY_CONFIG=True. In other words, values of APPDEPL_DISTRIBUTE_APP and APPDEPL_USE_BINARY_CONFIG are ignored. When an application is installed using this option all subsequent operations on the application such as edit, export, extractDDL (except uninstall) fail with an exception. An application installed using this option is not uploaded to the ND configuration during addNode even if -includeApps option is specified.


AppConstants.APPDEPL_DEPLOYEJB_OPTIONS
KeyValue
AppConstants.APPDEPL_DEPLOYEJB_DBTYPE_OPTION java.lang.String - db type (Optional)
AppConstants.APPDEPL_DEPLOYEJB_DBNAME_OPTION java.lang.String - db name (Optional)
AppConstants.APPDEPL_DEPLOYEJB_DBSCHEMA_OPTION java.lang.String - db schema name (Optional)
AppConstants.APPDEPL_DEPLOYEJB_CLASSPATH_OPTION java.lang.String - extract classpath (Optional)
AppConstants.APPDEPL_DEPLOYEJB_RMIC_OPTION java.lang.String - extra rmic options (Optional)
AppConstants.APPDEPL_DEPLOYEJB_VALIDATE_OPTION java.lang.Boolean - run validation during EJBDeploy (Optional)


Sample code to install an application from a remote client:-

 // Assume an ear /tmp/xyz.ear which has 2 module testEJB.jar and testWEB.war.
 // The configuration has a server server1 and a cluster cluster1.
  
 // create AppManagement proxy to AppManagement MBean using AdminClient
 AppManagement appM = AppManagementProxy.getJMXProxyForClient (adminClient);

 // create event filter
 NotificationFilterSupport myFilter = new NotificationFilterSupport();
 myFilter.enableType (AppConstants.NotificationType); 
 
 //get AppManagement MBean's ObjectName
 ObjectName on = // get MBean (type=AppManagement)
 
 // add listener
 //assumes - listenerImpl which is implementation of javax.management.NotificationListener
 adminClient.addNotificationListener (on, listenerImpl, myFilter, null);
 
 // prepare properties table
 Hashtable props = new Hashtable();
 props.put (AppConstants.APPDEPL_LOCALE, Locale.getDefault());
 
 // create module to server relations table
 Hashtable module2server = new Hashtable();
 module2server.put ("testEJB.jar+META-INF/ejb-jar.xml", 
 			"WebSphere:cell=cellName,node=nodeName,server=server1");
 module2server.put ("testWEB.jar+WEB-INF/web.xml", 
 			"WebSphere:cell=cellName,cluster=cluster1");
 
 props.put (AppConstants.APPDEPL_MODULE_TO_SERVER, module2server);
 
 // call install
 appM.installApplication ("/tmp/xyz.ear", "AppName", props, null);

 ....
 
 // listen to events
 public void handleNotification  Notification(notf, Object handback)
 {
 	AppNotification ev = (AppNotification) notf.getUserData();
 	if (ev.taskName.equals (AppNotification.INSTALL))
 	{
 		if (ev.taskStatus.equals (AppNotification.STATUS_COMPLETED))
 		{
 			// install succeeded .. remove listener
 		}
 		else if (ev.taskStatus.equals (AppNotification.STATUS_FAILED))
 		{
 			// install failed .. remove listener
 		}
 		else
 		{
 			// install in progress
 		}
 	}
 
 }
 
 

Specified by:
installApplication in interface AppManagement
Parameters:
arg0 - Fully qualified ear file name. The EAR file must be on the same machine where the MBean is running.
arg1 - The app install properties table
arg2 - The workspace ID.
Throws:
AdminException - Throws AdminException if install fails.

updateAccessIDs

public void updateAccessIDs(java.lang.String appName,
                            java.lang.Boolean bAll,
                            java.util.Hashtable prefs,
                            java.lang.String wID)
                     throws AdminException
Description copied from interface: AppManagement
Populates the application bindings of the deployment with the access IDs for all the users and groups. This method only works in JMX mode. It is used to boost performance by caching access IDs in the application metadata. This saves a call to user registry at runtime. This method should be called after application installation or after editing user registry.

Specified by:
updateAccessIDs in interface AppManagement
Parameters:
appName - The application name
bAll - true means accessIDs are obtained from the registry even if they exist in bindings. false means only the empty entries from bindings are populated.
prefs - The preferences object containing locale information.
Throws:
AdminException - Throws AdminException if operation fails.

deleteUserAndGroupEntries

public void deleteUserAndGroupEntries(java.lang.String appName,
                                      java.util.Hashtable prefs,
                                      java.lang.String wID)
                               throws AdminException
Description copied from interface: AppManagement
Deletes all the security binding information related to users and groups from application metadata.

Specified by:
deleteUserAndGroupEntries in interface AppManagement
Parameters:
appName - The application name
prefs - The preferences object containing locale information.
Throws:
AdminException - Throws AdminException if operation fails.

startApplication

public java.lang.String startApplication(java.lang.String appName,
                                         java.util.Hashtable prefs,
                                         java.lang.String wID)
                                  throws AdminException
Specified by:
startApplication in interface AppManagement
AdminException

stopApplication

public java.lang.String stopApplication(java.lang.String appName,
                                        java.util.Hashtable prefs,
                                        java.lang.String wID)
                                 throws AdminException
Specified by:
stopApplication in interface AppManagement
AdminException

publishWSDL

public void publishWSDL(java.lang.String arg0,
                        java.lang.String arg1,
                        java.util.Hashtable arg2,
                        java.lang.String arg3)
                 throws AdminException
Description copied from interface: AppManagement
Publish wsdl files to a zip file

Specified by:
publishWSDL in interface AppManagement
Parameters:
arg0 - the name of application for which publishWSDL will be executed.
arg1 - the location where the wsdl file to be published. This path has to be valid before calling this method.
arg2 - contains both Locale and a nested data structure (AttributeList) for port endpoint addresses {moduleName {transport address}+}*
arg3 - the id to identify the current workspace
Throws:
AdminException - Throws AdminException if operation fails.


 

WebSphere is a trademark of the IBM Corporation in the United States, other countries, or both.

 

IBM is a trademark of the IBM Corporation in the United States, other countries, or both.