/*
* Created on Jan 5, 2004 by mschilli
*/
package alma.acs.startup;
import alma.acs.commandcenter.engine.ExecuteContainer;
import alma.acs.commandcenter.engine.ExecuteManager;
import alma.acs.commandcenter.engine.ExecuteServices;
import alma.acs.commandcenter.engine.RunModelAdapter;
import alma.acs.commandcenter.engine.NativeCommand;
import alma.acs.util.ACSPorts;
/**
* Uses the AcsCommandCenter as a library to run ACS within a single VM.
*
* @author mschilli
*/
public class AcsStartLight extends RunModelAdapter implements NativeCommand.Listener {
public static void main (String[] args) {
new AcsStartLight().go(args);
}
protected String acsInstance;
protected String mgrPort;
protected String cdbPort;
protected String cntPort;
protected String cntName;
protected String cdbRoot;
protected ExecuteServices executeServices;
protected ExecuteManager executeManager;
protected ExecuteContainer executeContainer;
protected void go (String[] args) {
long soLong = System.currentTimeMillis();
config(args);
System.err.println("\n---> now starting cdb\n");
cdb();
System.err.println("\n---> now starting manager\n");
manager();
System.err.println("\n---> now starting container\n");
container();
System.err.println("\n---> finished (after " + (System.currentTimeMillis() - soLong) + "ms)\n");
}
protected void config (String[] args) {
if (args.length != 3) {
System.err.println("Usage: (this) <AcsInstance> <CdbRoot> <ContainerName>");
return;
}
try {
acsInstance = String.valueOf(Integer.parseInt(args[0].trim()));
} catch (NumberFormatException exc) {
System.err.println(" AcsInstance argument invalid, using 0");
acsInstance = "0";
}
mgrPort = "3" + acsInstance + "00";
cdbPort = "3" + acsInstance + "12";
cntPort = "3" + acsInstance + "51";
cdbRoot = args[1].trim();
cntName = args[2].trim();
}
protected void cdb () {
executeServices = new ExecuteServices(this);
executeServices.startLocalJava(this);
}
protected void manager () {
executeManager = new ExecuteManager(this);
executeManager.startLocalJava(this);
}
protected void container () {
executeContainer = new ExecuteContainer();
executeContainer.startLocalJava(this, this);
}
// --- RunModel interface implemenation ---
@Override
public String getScriptBase() {
return acsInstance;
}
@Override
public String getServicesLocalJavaPort () {
return cdbPort;
}
@Override
public String getServicesLocalJavaRoot () {
return cdbRoot;
}
@Override
public String getManagerLocalJavaPort () {
return mgrPort;
}
@Override
public String getContainerLocalJavaPort () {
return cntPort;
}
@Override
public String getManagerLocalJavaAgainstCDBHost () {
return ACSPorts.getIP();
}
@Override
public String getManagerLocalJavaAgainstCDBPort () {
return cdbPort;
}
@Override
public String getContainerAgainstManagerHost () {
return ACSPorts.getIP();
}
@Override
public String getContainerAgainstManagerPort () {
return mgrPort;
}
@Override
public String getContainerName () {
return cntName;
}
@Override
public String getContainerType () {
return "java";
}
// --- TaskListener interface implemenation ---
public void stdoutWritten (NativeCommand task, String additionalOutput) {
System.err.print(additionalOutput);
}
public void stderrWritten (NativeCommand task, String additionalOutput) {}
public void statusChanged (NativeCommand task, String status) {}
}