|
Glassfish example source code file (appclient.js)
The Glassfish appclient.js source code/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 1997-2010 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. */ var fso = WScript.CreateObject("Scripting.FileSystemObject"); var wshShell = WScript.CreateObject("WScript.Shell"); var envVars = wshShell.Environment("PROCESS"); var pathSep = ";"; var prelim_AS_INSTALL = new String(envVars("_AS_INSTALL")); var javaProgram = new String(quoteStringIfNeeded(envVars("JAVA"))); var driveLetter = prelim_AS_INSTALL.substring(0,1).toUpperCase(); var AS_INSTALL = driveLetter + prelim_AS_INSTALL.substring(1); var AS_INSTALL_MOD = AS_INSTALL + "\\modules"; var builtinEndorsedDirSetting = quoteMultiStringIfNeeded( AS_INSTALL + "\\lib\\endorsed" + pathSep + AS_INSTALL_MOD + "\\endorsed", pathSep); var mainClassIdentRequired = 1; var appcPath = envVars("APPCPATH"); var accJar=quoteStringIfNeeded(AS_INSTALL + "\\lib\\gf-client.jar"); var jvmArgs="-Dcom.sun.aas.installRoot=" + quoteStringIfNeeded(AS_INSTALL) + " -Djava.security.policy=" + quoteStringIfNeeded(AS_INSTALL + "\\lib\\appclient\\client.policy") + " -Djava.system.class.loader=org.glassfish.appclient.client.acc.agent.ACCAgentClassLoader" + " -Djava.security.auth.login.config=" + quoteStringIfNeeded(AS_INSTALL + "\\lib\\appclient\\appclientlogin.conf"); var VMARGS = envVars("VMARGS"); if (VMARGS != "") { jvmArgs += " " + VMARGS; } var inputArgs = new String(envVars("inputArgs")); var accArgs; var appArgs; var jvmMainArgs; var userEndorsedDirSetting; var accMainArgs; var mainClassIdent; var expecting; var ACCArgType; var JVMArgType; var matched = false; if (inputArgs.length == 0) { inputArgs="-usage"; } processArgs(); if (appcPath != "") { accArgs += ",appcpath=" + appcPath; } if (jvmMainArgs == "") { if (mainClassIdentRequired == 1) { inputArgs="-usage"; processArgs(); //recordACCArg("usage"); //accMainArgs = "-usage"; //jvmMainArgs = "-jar " + accJar; } } /* * The next statement emits a "set" command which assigns the java command to be * run to the env. variable "javaCmd." The calling script then * simply includes a line %javaCmd% to execute the generated * command. Defining the env. variable from this * script does not work; the scope is not right. */ var javaCmd = javaProgram + " " + finishJVMArgs() + " -javaagent:" + accJar + accArgs + "," + accMainArgs + " " + jvmMainArgs + " " + appArgs; WScript.StdOut.WriteLine("set javaCmd=" + javaCmd); // return to shell here function prepareArgProcessing() { accArgs = "=mode=acscript"; appArgs = ""; jvmMainArgs = ""; userEndorsedDirSetting = null; accMainArgs = ""; mainClassIdent = null; expecting=null; ACCArgType="ACC"; JVMArgType="JVM"; recordACCArg("-configxml", quoteStringIfNeeded(AS_INSTALL + "\\domains\\domain1\\config\\sun-acc.xml")); //matched = false; } function processArgs() { prepareArgProcessing(); var jvmValuedOptions = ["-classpath", "-cp", "-jar"]; var accValuedOptions = ["-client", "-mainclass", "-name", "-xml", "-configxml", "-user", "-password", "-passwordfile", "-targetserver"]; var accNonvaluedOptions = ["-textauth", "-noappinvoke", "-usage", "-help"]; //var re = new RegExp("\"([^\"]+)\"|[^\"\\s]+)","g"); var re = /"([^"]+)"|([^"\s]+)/g; // var tokens = inputArgs.split(" "); // var tokens = re.exec(inputArgs); var tokens = inputArgs.match(re); for (tokenIndex = 0; tokenIndex < tokens.length; tokenIndex++) { var token = tokens[tokenIndex]; var matched=null; matched = matchToWithType(token, jvmValuedOptions, "JVM"); if (matched == null) { matched = matchToWithType(token, accValuedOptions, "ACC"); } if (matched == null) { matched = matchTo(token, accNonvaluedOptions); if (matched != null) { recordACCArg(token); if ((token == "-usage") || (token == "-help")) { mainClassIdentRequired = 0; } } } if (matched == null) { var tokenString = new String(token); if (tokenString.charAt(0) == "-") { matched = token; recordNonACCOption(token); expecting = null; } } if (matched == null) { if (expecting != null) { recordArg(expectingArgType, expecting, token); } else { recordLoneArg(token); } expecting = null; } } } function matchToWithType(token, targets, argType) { var result = matchTo(token, targets); if (result != null) { expectingArgType = argType; expecting = result; } return result; } function matchTo(token, targets) { for (var candidate in targets) { if (token == targets[candidate]) { expecting = null; return token; } } return null; } function recordArg(argType, expecting, arg) { if (argType == "APP") { recordAPPArg(argType); recordAPPArg(arg); } else if (argType == "ACC") { recordACCArg(expecting, arg); } else if (argType == "JVM") { recordJVMArg(expecting, arg); } } function recordAPPArg(arg1, arg2) { appArgs += " " + arg1; if (arg2 != null) { appArgs += " " + arg2; } } function jvmMainArgsFor(value) { var valueStr = new String(value); var earEnding = /.ear$/ if (valueStr.match(earEnding)) { return "-jar " + accJar; } else { return "-jar " + value; } } function recordClientArg(value) { if (mainClassIdent == "final") { recordAPPArg("-client"); recordAPPArg(value); } else { // See if the client value is a folder. var objFSO = new ActiveXObject("Scripting.FileSystemObject"); if (objFSO.FolderExists(value)) { jvmMainArgs = "-jar " + accJar; accMainArgs = "client=dir=" + value; } else { jvmMainArgs = jvmMainArgsFor(value); accMainArgs = "client=jar=" + value; } mainClassIdent = "tentative"; mainClassIdentRequired = 0; } } function recordACCArg(arg1, arg2) { if (ACCArgType == "APP") { recordAPPArg(arg1); } else { if (arg1 == "-client") { recordClientArg(arg2); } else { accArgs += ",arg=" + arg1; if (arg2 != null) { accArgs += ",arg=" + arg2; } } } } function recordMainClass(arg1, arg2) { if (arg1 == "-jar") { jvmMainArgs = jvmMainArgsFor(arg2); accMainArgs = "client=jar=" + arg2; mainClassIdent = "final"; } else if (arg1 == "-client") { jvmMainArgs = jvmMainArgsFor(arg2); accMainArgs = "client=jar=" + arg2; mainClassIdent = "tentative"; } else { var _tmp = new String(arg2); if (_tmp.lastIndexOf(".class") != -1) { jvmMainArgs = "-jar " + accJar; accMainArgs = "client=classfile=" + arg2; mainClassIdent = "final"; } else { jvmMainArgs = arg1; accMainArgs = "client=class=" + arg1; mainClassIdent = "final"; } } ACCArgType = "APP"; JVMArgType = "APP"; mainClassIdentRequired = 0; } function recordJVMArg(arg1, arg2) { if (JVMArgType == "APP") { recordAppArg(arg1, arg2); } else { if (arg1 == "-jar") { recordMainClass(arg1, arg2); } else { if (arg1.match("-Djava\\.endorsed\\.dirs=") != null) { /* * We need to merge the user's setting with the path to the * app server's endorsed dir. So for now * just remember the user's setting * and do not add it to the jvm args...yet. */ userEndorsedDirSetting = arg2; } jvmArgs += " " + arg1; if (arg2 != null) { jvmArgs += " " + arg2; } } } } function finishJVMArgs() { /* * Note that the user's setting, if present, was stored including the * -Djava.endorsed.dirs= part. So we just add on if the user specified * anything but we must supply that part if the user did not specify anything. */ var endorsedDirSetting; if (userEndorsedDirSetting != null) { endorsedDirSetting = userEndorsedDirSetting + pathSep + builtinEndorsedDirSetting; } else { endorsedDirSetting = "-Djava.endorsed.dirs=" + builtinEndorsedDirSetting + pathSep + jreEndorsedDirValue(); } return jvmArgs + " " + endorsedDirSetting; } function recordNonACCOption(value) { if (mainClassIdent == null) { recordJVMArg(value); } else { recordAPPArg(value); } } function quoteStringIfNeeded(s) { var result = s; if (s.indexOf(" ") != -1) { result = "\"" + s + "\""; } return result; } function quoteMultiStringIfNeeded(s, sep) { var result = new String(); var sepLoc; var scanStart = 0; var parts = s.split(sep); for (var part in parts) { if (result.length > 0) { result = result + sep; } result = result + quoteStringIfNeeded(parts[part]); } return result; } function recordLoneArg(token) { if (mainClassIdent == null) { recordMainClass(token); } else { recordAPPArg(token); } } function jreEndorsedDirValue() { var osPath = envVars("PATH"); var jreHomePath = jreHome(osPath); var jreEndorsedDir = null; if (jreHomePath != null) { var endorsedPath = jreHomePath + "\\lib\\endorsed"; if (fso.FolderExists(endorsedPath)) { jreEndorsedDir = fso.getFolder(endorsedPath).Path; } } return quoteMultiStringIfNeeded(jreEndorsedDir, pathSep); } function jreHome(osPath) { var osPathElts = osPath.split(pathSep); var jreHome = null; for (i in osPathElts) { var osPathElt = osPathElts[i]; var javaExe = osPathElt + "\\java.exe"; if (fso.FileExists(javaExe)) { if (fso.FolderExists(osPathElt + "\\..\\jre")) { // This looks like a JDK installation. jreHome = osPathElt + "\\..\\jre"; break; } else { // Doesn't look like a JDK; maybe it's a JRE installation. var jrePath = osPathElt + "\\..\\..\\jre"; if (fso.FolderExists(jrePath)) { // This looks like a JRE. jreHome = osPathElt + "\\.."; break; } else { // This path element looks like neither a JDK nor a JRE. continue; } } } } return jreHome; } Other Glassfish examples (source code examples)Here is a short list of links related to this Glassfish appclient.js 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.