Index: admingui/common/src/main/java/org/glassfish/admingui/common/util/DeployUtil.java =================================================================== --- admingui/common/src/main/java/org/glassfish/admingui/common/util/DeployUtil.java (revision 45038) +++ admingui/common/src/main/java/org/glassfish/admingui/common/util/DeployUtil.java (working copy) @@ -62,6 +62,10 @@ import java.util.HashMap; import java.util.logging.Level; import java.util.Map; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.FutureTask; import javax.enterprise.deploy.spi.Target; /** * @@ -79,20 +83,56 @@ //GuiUtil.prepareAlert("success", mesg, null); } } - - public static boolean invokeDeploymentFacility(String[] targets, Properties props, String archivePath, HandlerContext handlerCtx, String warningMsgKey) + + public static boolean invokeDeploymentFacility(String[] targets, final Properties props, final String archivePath, final HandlerContext handlerCtx, final String warningMsgKey) + throws Exception { + final String[] targetList = (targets != null) ? targets : new String[]{"domain"}; + final DeploymentFacility df = GuiUtil.getDeploymentFacility(); + Callable callable = new Callable() { + @Override + public Boolean call() { + if (archivePath == null) { + GuiUtil.getLogger().info("invokeDeploymentFacility(): archivePath = NULL"); + //Localize this message. + GuiUtil.handleError(handlerCtx, "invokeDeploymentFacility: " + GuiUtil.getMessage("msg.deploy.nullArchiveError")); + } + + File filePath = new File(archivePath); + URI source = filePath.toURI(); + DFProgressObject progressObject = null; + progressObject = df.deploy(df.createTargets(targetList), source, null, props); //null for deployment plan + progressObject.waitFor(); + DFDeploymentStatus status = progressObject.getCompletedStatus(); + boolean ret = checkDeployStatus(status, handlerCtx, true, warningMsgKey); + return ret; + } + }; + FutureTask task = new FutureTask(callable); + try { + ExecutorService executor = Executors.newFixedThreadPool(10); + executor.execute(task); + Boolean ret = task.get(); + return ret; + } catch (Exception ex) { + ex.printStackTrace(); + GuiUtil.handleException(handlerCtx, ex); + return false; + } + } + + public static boolean invokeDeploymentFacility2(String[] targets, Properties props, String archivePath, HandlerContext handlerCtx, String warningMsgKey) throws Exception { if(archivePath == null) { GuiUtil.getLogger().info("invokeDeploymentFacility(): archivePath = NULL"); //Localize this message. GuiUtil.handleError(handlerCtx, "invokeDeploymentFacility: " + GuiUtil.getMessage("msg.deploy.nullArchiveError")); } - + if (targets == null){ String defaultTarget = "domain" ; targets = new String[] {defaultTarget}; } - + File filePath = new File(archivePath); URI source = filePath.toURI(); DeploymentFacility df = GuiUtil.getDeploymentFacility();