|  | /* | 
|  | * Copyright (c) 2003, 2018 Oracle and/or its affiliates. All rights reserved. | 
|  | * | 
|  | * This program and the accompanying materials are made available under the | 
|  | * terms of the Eclipse Public License v. 2.0, which is available at | 
|  | * http://www.eclipse.org/legal/epl-2.0. | 
|  | * | 
|  | * This Source Code may also be made available under the following Secondary | 
|  | * Licenses when the conditions for such availability set forth in the | 
|  | * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, | 
|  | * version 2 with the GNU Classpath Exception, which is available at | 
|  | * https://www.gnu.org/software/classpath/license.html. | 
|  | * | 
|  | * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 | 
|  | */ | 
|  |  | 
|  | package tester; | 
|  |  | 
|  | import java.io.*; | 
|  | import java.util.*; | 
|  | import java.beans.*; | 
|  | import javax.enterprise.deploy.model.*; | 
|  | import javax.enterprise.deploy.shared.factories.*; | 
|  | import javax.enterprise.deploy.spi.factories.*; | 
|  | import javax.enterprise.deploy.spi.*; | 
|  | import javax.enterprise.deploy.spi.status.*; | 
|  | import javax.enterprise.deploy.shared.ModuleType; | 
|  |  | 
|  | import com.sun.enterprise.deployapi.DeploymentFactoryInstaller; | 
|  |  | 
|  | public class Deployer implements ProgressListener { | 
|  |  | 
|  | public static void main(String args[]) { | 
|  |  | 
|  | try { | 
|  | System.out.println(" inst at " + System.getProperty("com.sun.aas.installRoot")); | 
|  | Deployer deployer = new Deployer(); | 
|  | deployer.deploy(args); | 
|  | System.exit(0); | 
|  | } catch(Exception e) { | 
|  | e.printStackTrace(); | 
|  | System.exit(-1); | 
|  | } | 
|  | } | 
|  |  | 
|  |  | 
|  | public void deploy(String args[]) throws Exception { | 
|  |  | 
|  | DeploymentFactoryInstaller.getInstaller(); | 
|  | DeploymentManager dm = DeploymentFactoryManager.getInstance().getDeploymentManager("deployer:Sun:S1AS::localhost:4848", "admin", "adminadmin"); | 
|  | ProgressObject dpo; | 
|  | File archive = new File(args[0]); | 
|  | File deploymentPlan = new File(args[1]); | 
|  |  | 
|  | if (!deploymentPlan.exists()) { | 
|  | System.out.println("Warning, deploying with null deployment plan"); | 
|  | dpo = dm.distribute(dm.getTargets(), archive, null); | 
|  | } else { | 
|  | System.out.println("Deploying " + archive.getAbsolutePath() + " with plan " + deploymentPlan.getAbsoluteFile()); | 
|  | dpo = dm.distribute(dm.getTargets(), archive, deploymentPlan); | 
|  | } | 
|  | dpo.addProgressListener(this); | 
|  | System.out.println("Deployment returned " + dpo); | 
|  | if (dpo!=null) { | 
|  | DeploymentStatus deploymentStatus = dpo.getDeploymentStatus(); | 
|  | do { | 
|  | Thread.currentThread().sleep(200); | 
|  | } while (!(deploymentStatus.isCompleted() || deploymentStatus.isFailed())); | 
|  | System.out.println("Deployment status is " + deploymentStatus); | 
|  | } | 
|  | TargetModuleID[] targetModuleIDs = dpo.getResultTargetModuleIDs(); | 
|  | dumpResultModuleIDs("Deployed " , dpo); | 
|  |  | 
|  | //        ModuleType moduleType = ((SunTargetModuleID) targetModuleIDs[0]).getModuleType(); | 
|  |  | 
|  | //        listApplications(dm, moduleType , dm.getTargets(), null); | 
|  | } | 
|  |  | 
|  | private void dumpResultModuleIDs(String prefix, ProgressObject po) { | 
|  | TargetModuleID[] targetModuleIDs = po.getResultTargetModuleIDs(); | 
|  | for (int i=0;i<targetModuleIDs.length;i++) { | 
|  | dumpModulesIDs(prefix, targetModuleIDs[i]); | 
|  | } | 
|  | } | 
|  |  | 
|  | private void dumpModulesIDs(String prefix, TargetModuleID targetModuleID) { | 
|  | System.out.println(prefix + targetModuleID); | 
|  | TargetModuleID[] subs = targetModuleID.getChildTargetModuleID(); | 
|  | if (subs!=null) { | 
|  | for (int i=0;i<subs.length;i++) { | 
|  | System.out.println(" Child " + i + "\n" + subs[i]); | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | public void handleProgressEvent(javax.enterprise.deploy.spi.status.ProgressEvent progressEvent) { | 
|  | DeploymentStatus ds = progressEvent.getDeploymentStatus(); | 
|  | System.out.println("Received Progress Event state " + ds.getState() + " msg = " + ds.getMessage()); | 
|  | } | 
|  |  | 
|  | } |