public void installDeployableUnit ( DeployableUnit du ) throws Exception { // Update the deployed components from SLEE updateDeployedComponents ( ) ; // Check if the DU is ready to be installed if ( du . isReadyToInstall ( true ) ) { // Get and Run the actions needed for installing this DU sciAction ( du . getInstallActions ( ) , du ) ; // Set the DU as installed du . setInstalled ( true ) ; // Add the DU to the installed list deployedDUs . add ( du ) ; // Update the deployed components from SLEE updateDeployedComponents ( ) ; // Go through the remaining DUs waiting for installation Iterator < DeployableUnit > duIt = waitingForInstallDUs . iterator ( ) ; while ( duIt . hasNext ( ) ) { DeployableUnit waitingDU = duIt . next ( ) ; // If it is ready for installation, follow the same procedure if ( waitingDU . isReadyToInstall ( false ) ) { // Get and Run the actions needed for installing this DU sciAction ( waitingDU . getInstallActions ( ) , waitingDU ) ; // Set the DU as installed waitingDU . setInstalled ( true ) ; // Add the DU to the installed list deployedDUs . add ( waitingDU ) ; // Update the deployed components from SLEE updateDeployedComponents ( ) ; // Remove the DU from the waiting list. waitingForInstallDUs . remove ( waitingDU ) ; // Let's start all over.. :) duIt = waitingForInstallDUs . iterator ( ) ; } } } else { logger . warn ( "Unable to INSTALL " + du . getDeploymentInfoShortName ( ) + " right now. Waiting for dependencies to be resolved." ) ; // The DU can't be installed now, let's wait... waitingForInstallDUs . add ( du ) ; } }
Method for installing a Deployable Unit into SLEE .