示例#1
0
  public ServerResult start(ServerParameters rawParams) throws Exception {
    AppServerParameters params = (AppServerParameters) rawParams;
    instanceDir = createInstance(params);

    instanceDir.delete(); // createDomain will fail if directory already exists
    createDomain(params);

    modifyDomainConfig(params);

    setProperties(params, httpPort, instanceDir);

    final String cmd[] = getStartupCommand(params);
    final String nodeLogFile =
        new File(instanceDir.getParent(), instanceDir.getName() + ".log").getAbsolutePath();

    runner =
        new Thread("runner for " + params.instanceName()) {
          public void run() {
            try {
              Result result = Exec.execute(cmd, nodeLogFile, startupInput(), instanceDir);
              if (result.getExitCode() != 0) {
                System.err.println(result);
              }
            } catch (Throwable e) {
              e.printStackTrace();
            }
          }
        };
    runner.start();
    System.err.println("Starting " + params.instanceName() + " on port " + httpPort + "...");

    AppServerUtil.waitForPort(adminPort, START_STOP_TIMEOUT);

    System.err.println("Started " + params.instanceName() + " on port " + httpPort);

    deployWars(params.wars());

    return new AppServerResult(httpPort, this);
  }
示例#2
0
  private void createDomain(AppServerParameters params) throws Exception {
    File asAdminScript = getAsadminScript();

    List cmd = new ArrayList();
    cmd.add(asAdminScript.getAbsolutePath());
    cmd.add("create-domain");
    cmd.add("--interactive=false");
    cmd.add("--domaindir=" + sandboxDirectory());
    cmd.add("--adminport");
    cmd.add(String.valueOf(adminPort));
    cmd.add("--adminuser");
    cmd.add(ADMIN_USER);
    cmd.add("--passwordfile");
    cmd.add(getPasswdFile().getAbsolutePath());
    cmd.add("--instanceport");
    cmd.add(String.valueOf(httpPort));
    cmd.add("--savemasterpassword=true");
    cmd.add("--domainproperties");
    cmd.add(
        "jms.port="
            + pc.chooseRandomPort()
            + ":"
            + "orb.listener.port="
            + pc.chooseRandomPort()
            + ":"
            + "http.ssl.port="
            + pc.chooseRandomPort()
            + ":"
            + "orb.ssl.port="
            + pc.chooseRandomPort()
            + ":"
            + "orb.mutualauth.port="
            + pc.chooseRandomPort()
            + ":"
            + "domain.jmxPort="
            + pc.chooseRandomPort());
    cmd.add("--savelogin=true");
    cmd.add(params.instanceName());

    Result result =
        Exec.execute(
            (String[]) cmd.toArray(new String[] {}), null, null, asAdminScript.getParentFile());

    if (result.getExitCode() != 0) {
      throw new RuntimeException(result.toString());
    }
  }
示例#3
0
  private void appendDSOParams(Document doc, Node node, AppServerParameters params) {
    String[] jvmArgs = params.jvmArgs().replaceAll("'", "").split("\\s");

    for (int i = 0; i < jvmArgs.length; i++) {
      String arg = jvmArgs[i];

      Element element = doc.createElement("jvm-options");
      element.appendChild(doc.createTextNode(arg));
      node.appendChild(element);
    }

    // workaround for DSO early initialization of NIO stuff
    // XXX: when/if this can be magically worked around, this option can removed
    Element element = doc.createElement("jvm-options");
    element.appendChild(doc.createTextNode("-Dcom.sun.enterprise.server.ss.ASQuickStartup=false"));
    node.appendChild(element);
  }