⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jonashotdeploymenttool.java

📁 Use the links below to download a source distribution of Ant from one of our mirrors. It is good pra
💻 JAVA
字号:
/* *  Licensed to the Apache Software Foundation (ASF) under one or more *  contributor license agreements.  See the NOTICE file distributed with *  this work for additional information regarding copyright ownership. *  The ASF licenses this file to You under the Apache License, Version 2.0 *  (the "License"); you may not use this file except in compliance with *  the License.  You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * *  Unless required by applicable law or agreed to in writing, software *  distributed under the License is distributed on an "AS IS" BASIS, *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *  See the License for the specific language governing permissions and *  limitations under the License. * */package org.apache.tools.ant.taskdefs.optional.j2ee;import java.io.File;import org.apache.tools.ant.BuildException;import org.apache.tools.ant.taskdefs.Java;import org.apache.tools.ant.types.Path;/** *  An Ant wrapper task for the weblogic.deploy tool. This is used *  to hot-deploy J2EE applications to a running WebLogic server. *  This is <b>not</b> the same as creating the application *  archive. This task assumes the archive (EAR, JAR, or WAR) file *  has been assembled and is supplied as the "source" attribute. *  <p> * *  In the end, this task assembles the commadline parameters and *  runs the weblogic.deploy tool in a seperate JVM. * *@see org.apache.tools.ant.taskdefs.optional.j2ee.HotDeploymentTool *@see org.apache.tools.ant.taskdefs.optional.j2ee.AbstractHotDeploymentTool *@see org.apache.tools.ant.taskdefs.optional.j2ee.ServerDeploy */public class JonasHotDeploymentTool extends GenericHotDeploymentTool implements HotDeploymentTool {    /**     *  Description of the Field     */    protected static final String DEFAULT_ORB = "RMI";    /**     *  The classname of the tool to run *     */    private static final String JONAS_DEPLOY_CLASS_NAME = "org.objectweb.jonas.adm.JonasAdmin";    /**     *  All the valid actions that weblogic.deploy permits *     */    private static final String[] VALID_ACTIONS        = {ACTION_DELETE, ACTION_DEPLOY, ACTION_LIST, ACTION_UNDEPLOY, ACTION_UPDATE};    /**     *  Description of the Field     */    private File jonasroot;    /**     *  Description of the Field     */    private String orb = null;    /**     *  Description of the Field     */    private String davidHost;    /**     *  Description of the Field     */    private int davidPort;    /**     *  Set the host for the David ORB; required if     *  ORB==david.     *     *@param  inValue  The new davidhost value     */    public void setDavidhost(final String inValue) {        davidHost = inValue;    }    /**     *  Set the port for the David ORB; required if     *  ORB==david.     *     *@param  inValue  The new davidport value     */    public void setDavidport(final int inValue) {        davidPort = inValue;    }    /**     *  set the jonas root directory (-Dinstall.root=). This     *  element is required.     *     *@param  inValue  The new jonasroot value     */    public void setJonasroot(final File inValue) {        jonasroot = inValue;    }    /**     *     * Choose your ORB : RMI, JEREMIE, DAVID, ...; optional.     * If omitted, it defaults     * to the one present in classpath. The corresponding JOnAS JAR is     * automatically added to the classpath. If your orb is DAVID (RMI/IIOP) you must     * specify davidhost and davidport properties.     *     *@param  inValue  RMI, JEREMIE, DAVID,...     */    public void setOrb(final String inValue) {        orb = inValue;    }    /**     *  gets the classpath field.     *     *@return    A Path representing the "classpath" attribute.     */    public Path getClasspath() {        Path aClassPath = super.getClasspath();        if (aClassPath == null) {            aClassPath = new Path(getTask().getProject());        }        if (orb != null) {            String aOrbJar = new File(jonasroot, "lib/" + orb + "_jonas.jar").toString();            String aConfigDir = new File(jonasroot, "config/").toString();            Path aJOnASOrbPath = new Path(aClassPath.getProject(),                    aOrbJar + File.pathSeparator + aConfigDir);            aClassPath.append(aJOnASOrbPath);        }        return aClassPath;    }    /**     *  Validates the passed in attributes. <p>     *     *  The rules are:     *  <ol>     *    <li> If action is "deploy" or "update" the "application"     *    and "source" attributes must be supplied.     *    <li> If action is "delete" or "undeploy" the     *    "application" attribute must be supplied.     *     *@exception  BuildException                       Description     *      of Exception     */    public void validateAttributes() throws BuildException {        // super.validateAttributes(); // don't want to call this method        Java java = getJava();        String action = getTask().getAction();        if (action == null) {            throw new BuildException("The \"action\" attribute must be set");        }        if (!isActionValid()) {            throw new BuildException("Invalid action \"" + action + "\" passed");        }        if (getClassName() == null) {            setClassName(JONAS_DEPLOY_CLASS_NAME);        }        if (jonasroot == null || jonasroot.isDirectory()) {            java.createJvmarg().setValue("-Dinstall.root=" + jonasroot);            java.createJvmarg().setValue("-Djava.security.policy=" + jonasroot                + "/config/java.policy");            if ("DAVID".equals(orb)) {                java.createJvmarg().setValue("-Dorg.omg.CORBA.ORBClass"                    + "=org.objectweb.david.libs.binding.orbs.iiop.IIOPORB");                java.createJvmarg().setValue("-Dorg.omg.CORBA.ORBSingletonClass="                    + "org.objectweb.david.libs.binding.orbs.ORBSingletonClass");                java.createJvmarg().setValue("-Djavax.rmi.CORBA.StubClass="                    + "org.objectweb.david.libs.stub_factories.rmi.StubDelegate");                java.createJvmarg().setValue("-Djavax.rmi.CORBA.PortableRemoteObjectClass="                    + "org.objectweb.david.libs.binding.rmi.ORBPortableRemoteObjectDelegate");                java.createJvmarg().setValue("-Djavax.rmi.CORBA.UtilClass="                    + "org.objectweb.david.libs.helpers.RMIUtilDelegate");                java.createJvmarg().setValue("-Ddavid.CosNaming.default_method=0");                java.createJvmarg().setValue("-Ddavid.rmi.ValueHandlerClass="                    + "com.sun.corba.se.internal.io.ValueHandlerImpl");                if (davidHost != null) {                    java.createJvmarg().setValue("-Ddavid.CosNaming.default_host="                        + davidHost);                }                if (davidPort != 0) {                    java.createJvmarg().setValue("-Ddavid.CosNaming.default_port="                        + davidPort);                }            }        }        if (getServer() != null) {            java.createArg().setLine("-n " + getServer());        }        if (action.equals(ACTION_DEPLOY)            || action.equals(ACTION_UPDATE)            || action.equals("redeploy")) {            java.createArg().setLine("-a " + getTask().getSource());        } else if (action.equals(ACTION_DELETE) || action.equals(ACTION_UNDEPLOY)) {            java.createArg().setLine("-r " + getTask().getSource());        } else if (action.equals(ACTION_LIST)) {            java.createArg().setValue("-l");        }    }    /**     *  Determines if the action supplied is valid. <p>     *     *  Valid actions are contained in the static array     *  VALID_ACTIONS     *     *@return    true if the action attribute is valid, false if     *      not.     */    protected boolean isActionValid() {        boolean valid = false;        String action = getTask().getAction();        for (int i = 0; i < VALID_ACTIONS.length; i++) {            if (action.equals(VALID_ACTIONS[i])) {                valid = true;                break;            }        }        return valid;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -