List assets using programming
We can list the assets that have been imported so that we can do further asset administration, such as deleting or exporting assets. An asset represents at least one binary file that implements business logic.
This task assumes a basic familiarity with command framework programming. Read about command framework programming in the APIs documentation.
We can list assets using programming, the admin console, or wsadmin.
We can list assets using programming, the admin console, or wsadmin. This page describes how to list assets using programming.
When you list assets, all the assets are listed unless you set the assetID to specify the asset to list. We can optionally include deployable units or a description of the assets when you list the assets. After you list the assets, we can use the information to do further administration, such as deleting or exporting assets.
Perform the following tasks to list assets using programming.
- Connect to the appserver.
The command framework allows the admin command to be created and run with or without being connected to the appserver. This step is optional if the application server is not running.
- Create the command manager.
The command manager provides the functionality to create a new admin command or query existing administrative commands.
- Optionally create the asynchronous command handler for listening to command notifications.
Business-level application commands are implemented as asynchronous commands. To monitor the progress of the running command, we have to create an asynchronous command handler to receive notifications that the command generates.
- Create the asynchronous command client.
An asynchronous command client provides a higher level interface to work with an asynchronous command. If we created an asynchronous command handler in the previous step, the handler is passed to the asynchronous command client. The asynchronous command client forwards the command notification to the handler and helps to control running of the command.
- Use the command manager createdd in a previous step to create and set up the command that lists assets.
The command name is listAssets. We can optionally set the assetID parameter to query for assets that match the ID. We can also optionally set the includeDescription parameter and the includeDeplUnit parameter to include the display of the asset description and its deployable units.
- Call the processCommandParameters method in the asynchronous command client to process the command parameters.
The command framework asynchronous command model requires this call.
- Call the asynchronous command client to list the asset.
You might have created an asynchronous command handler to implement the AsyncCommandHandlerIF interface class in a previous step. If we did, the asynchronous command client listens to command notifications and forwards the notifications to the handler. The handler performs any necessary actions while waiting for the command to complete.
- Check the command result when the command completes.
When the command finishes running, control is returned to the caller. We can then check the result by calling the command.getCommandResult method.
Results
After you successfully run the code, a list of assets is displayed.
Example
The following example shows how to list the assets based on the previous steps. Some statements are split on multiple lines for printing purposes.
package com.ibm.ws.management.application.task; import java.util.Properties; import com.ibm.websphere.management.AdminClient; import com.ibm.websphere.management.AdminClientFactory; import com.ibm.websphere.management.Session; import com.ibm.websphere.management.cmdframework.AdminCommand; import com.ibm.websphere.management.cmdframework.CommandMgr; import com.ibm.websphere.management.cmdframework.CommandResult; import com.ibm.websphere.management.async.client.AsyncCommandClient; public class ListAssets { public static void main(String[] args) { try { // Connect to the appserver. // This step is optional if we use the local // command manager. Comment out the lines to and including // CommandMgr cmdMgr = CommandMgr.getClientCommandMgr( // soapClient); // to get the soapClient soap client if we use the local // command manager. String host = "localhost"; String port = "8880"; // Change to the port number if // it is not 8880. Properties config = new Properties(); config.put(AdminClient.CONNECTOR_HOST, host); config.put(AdminClient.CONNECTOR_PORT, port); config.put(AdminClient.CONNECTOR_TYPE, AdminClient.CONNECTOR_TYPE_SOAP); System.out.println("Config: " + config); AdminClient soapClient = AdminClientFactory.createAdminClient(config); // Create the command manager. CommandMgr cmdMgr = CommandMgr.getClientCommandMgr(soapClient); // Comment out the previous lines to create a client command // manager if we are using a local command manager. // Uncomment the following line to create a local command // manager: // // CommandMgr cmdMgr = CommandMgr.getCommandMgr(); System.out.println("\nCreated command manager"); // Optionally create an asynchronous command handler. // Comment out the following line if no further handling // of command notification is required. AsyncCmdTaskHandler listener = new AsyncCmdTaskHandler(); // Create an asynchronous command client. // Set up the session. String id = Long.toHexString(System.currentTimeMillis()); String user = "content" + id; Session session = new Session(user, true); // If no command handler is used, replace listener with // null for the AsyncCommandClient object. AsyncCommandClient asyncCmdClientHelper = new AsyncCommandClient(session, listener); System.out.println("\nCreated async command client"); // Create the command that lists the assets. String cmdName = "listAssets"; AdminCommand cmd = cmdMgr.createCommand(cmdName); cmd.setConfigSession(session); // list all the assets // using the session created. System.out.println("\nCreated " + cmdName); // Optionally set the assetID parameter. // Uncomment the following code to set the assetID parameter to // only list the asset with the ID specified, otherwise all // assets are listed. Change the assetID parameter according to the // scenario. // Examples of valid formats for the assetID parameter are: // - aName // - assetname=aName // - WebSphere:assetname=aName // All assets that match the ID spec are listed. // The ID must include at least the asset name. // String assetID = "asset1.zip"; // cmd.setParameter("assetID", assetID); //System.out.println("\nSet assetID parameter to " // + cmd.getParameter("assetID")); // Optionally include a description by setting // the includeDescription parameter to true or false. String includeDescription = "true"; cmd.setParameter("includeDescription", includeDescription); System.out.println("\nSet includeDescription parameter to " + cmd.getParameter("includeDescription")); // Optionally include deployable units by setting // the includeDeplUnit parameter to true or false. String includeDeplUnit = "false"; cmd.setParameter("includeDeplUnit", includeDeplUnit); System.out.println("\nSet includeDeplUnit parameter to " + cmd.getParameter("includeDeplUnit")); // Call the asynchronous client helper to process parameters. try { asyncCmdClientHelper.processCommandParameters(cmd); System.out.println("\nCompleted process command " + "parameters"); } catch (Throwable th) { System.out.println("Failed from " + "asyncCmdClientHelper.processCommandParameters(cmd)."); th.printStackTrace(); System.exit(-1); } // Run the command to list assets. asyncCmdClientHelper.execute(cmd); System.out.println("\nCompleted running of the command"); // Check the command result. CommandResult result = cmd.getCommandResult(); if (result != null) { if (result.isSuccessful()) { System.out.println("\nCommand ran successfully " + "with result\n" + result.getResult()); } else { System.out.println("\nCommand ran with " + "Exception"); result.getException().printStackTrace(); } } } catch (Exception e) { e.printStackTrace(); } '} } package com.ibm.ws.management.application.task; import com.ibm.websphere.management.cmdframework.provider.CommandNotification; import com.ibm.websphere.management.async.client.AsyncCommandHandlerIF; public class AsyncCmdTaskHandler implements AsyncCommandHandlerIF { public void handleNotification(CommandNotification notification) { // Add our own code here to handle the received notification System.out.println("\nEXAMPLE: notification received: " + notification); } }
Next steps
We can complete other tasks associated with assets, such as deleting, editing, and exporting assets.
Additional Application Programming Interfaces (APIs)
Related tasks
Deploy business-level applications
Administer business-level applications using programming
Importing an asset using programming
Delete an asset using programming
Exporting an asset using programming
Edit an asset using programming
View an asset using programming
Manage assets with scripting
Related
BLAManagement