|
Glassfish example source code file (StartDomainCommand.java)
The Glassfish StartDomainCommand.java source code/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 1997-2011 Oracle and/or its affiliates. All rights reserved. * * The contents of this file are subject to the terms of either the GNU * General Public License Version 2 only ("GPL") or the Common Development * and Distribution License("CDDL") (collectively, the "License"). You * may not use this file except in compliance with the License. You can * obtain a copy of the License at * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html * or packager/legal/LICENSE.txt. See the License for the specific * language governing permissions and limitations under the License. * * When distributing the software, include this License Header Notice in each * file and include the License file at packager/legal/LICENSE.txt. * * GPL Classpath Exception: * Oracle designates this particular file as subject to the "Classpath" * exception as provided by Oracle in the GPL Version 2 section of the License * file that accompanied this code. * * Modifications: * If applicable, add the following below the License Header, with the fields * enclosed by brackets [] replaced by your own identifying information: * "Portions Copyright [year] [name of copyright owner]" * * Contributor(s): * If you wish your version of this file to be governed by only the CDDL or * only the GPL Version 2, indicate your decision by adding "[Contributor] * elects to include this software in this distribution under the [CDDL or GPL * Version 2] license." If you don't indicate a single choice of license, a * recipient has the option to distribute your version of this file under * either the CDDL, the GPL Version 2 or to extend the choice of license to * its licensees as provided above. However, if you add GPL Version 2 code * and therefore, elected the GPL Version 2 license, then the option applies * only if the new code is made subject to such option by the copyright * holder. */ package com.sun.enterprise.admin.cli; import java.io.*; import java.util.*; import java.util.logging.*; import org.jvnet.hk2.annotations.*; import org.jvnet.hk2.component.*; import org.glassfish.api.Param; import org.glassfish.api.admin.*; import com.sun.enterprise.util.net.NetUtils; import static com.sun.enterprise.admin.cli.CLIConstants.*; import com.sun.enterprise.admin.launcher.GFLauncher; import com.sun.enterprise.admin.launcher.GFLauncherException; import com.sun.enterprise.admin.launcher.GFLauncherFactory; import com.sun.enterprise.admin.launcher.GFLauncherInfo; import com.sun.enterprise.universal.i18n.LocalStringsImpl; import com.sun.enterprise.universal.process.ProcessStreamDrainer; import com.sun.enterprise.universal.xml.MiniXmlParserException; /** * The start-domain command. * * @author bnevins * @author Bill Shannon */ @Service(name = "start-domain") @Scoped(PerLookup.class) public class StartDomainCommand extends LocalDomainCommand implements StartServerCommand { private GFLauncherInfo info; private GFLauncher launcher; @Param(optional = true, shortName = "v", defaultValue = "false") private boolean verbose; @Param(optional = true, defaultValue = "false") private boolean upgrade; @Param(optional = true, defaultValue = "false") private boolean debug; @Param(name = "domain_name", primary = true, optional = true) private String domainName0; private static final LocalStringsImpl strings = new LocalStringsImpl(StartDomainCommand.class); // the name of the master password option private StartServerHelper helper; @Override public RuntimeType getType() { return RuntimeType.DAS; } @Override protected void validate() throws CommandException, CommandValidationException { setDomainName(domainName0); super.validate(); } @Override protected int executeCommand() throws CommandException { try { // createLauncher needs to go before the helper is created!! createLauncher(); final String mpv = getMasterPassword(); helper = new StartServerHelper( logger, programOpts.isTerse(), getServerDirs(), launcher, mpv, debug); if (helper.prepareForLaunch() == false) return ERROR; if (!upgrade && launcher.needsManualUpgrade()) { logger.info(strings.get("manualUpgradeNeeded")); return ERROR; } doAutoUpgrade(mpv); // launch returns very quickly if verbose is not set // if verbose is set then it returns after the domain dies launcher.launch(); if (verbose || upgrade) { // we can potentially loop forever here... while (true) { int returnValue = launcher.getExitValue(); switch (returnValue) { case RESTART_NORMAL: logger.info(strings.get("restart")); break; case RESTART_DEBUG_ON: logger.info(strings.get("restartChangeDebug", "on")); info.setDebug(true); break; case RESTART_DEBUG_OFF: logger.info(strings.get("restartChangeDebug", "off")); info.setDebug(false); break; default: return returnValue; } if (CLIConstants.debugMode) System.setProperty(CLIConstants.WALL_CLOCK_START_PROP, "" + System.currentTimeMillis()); launcher.relaunch(); } } else { helper.waitForServer(); helper.report(); return SUCCESS; } } catch (GFLauncherException gfle) { throw new CommandException(gfle.getMessage()); } catch (MiniXmlParserException me) { throw new CommandException(me); } } /** * Create a launcher for the domain specified by arguments to * this command. The launcher is for a server of the specified type. * Sets the launcher and info fields. * It has to be public because it is part of an interface */ @Override public void createLauncher() throws GFLauncherException, MiniXmlParserException { launcher = GFLauncherFactory.getInstance(getType()); info = launcher.getInfo(); info.setDomainName(getDomainName()); info.setDomainParentDir(getDomainsDir().getPath()); info.setVerbose(verbose || upgrade); info.setDebug(debug); info.setUpgrade(upgrade); info.setRespawnInfo(programOpts.getClassName(), programOpts.getClassPath(), respawnArgs()); launcher.setup(); } /** * Return the asadmin command line arguments necessar to start * this domain admin server. */ private String[] respawnArgs() { List<String> args = new ArrayList Other Glassfish examples (source code examples)Here is a short list of links related to this Glassfish StartDomainCommand.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.