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

📄 borlanddeploymenttool.java

📁 ant源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        }        if (version == BES) {            verifyBorlandJarV5(sourceJar);            return;        }        log("verify jar skipped because the version is invalid ["            + version + "]", Project.MSG_WARN);    }    /**     * Verify the produced jar file by invoking the Borland iastool tool     * @param sourceJar java.io.File representing the produced jar file     */    private void verifyBorlandJarV5(File sourceJar) {        log("verify BES " + sourceJar, Project.MSG_INFO);        try {            ExecTask execTask = null;            execTask = new ExecTask(getTask());            execTask.setDir(new File("."));            execTask.setExecutable("iastool");            //classpath            if (getCombinedClasspath() != null)  {                execTask.createArg().setValue("-VBJclasspath");                execTask.createArg().setValue(getCombinedClasspath().toString());            }            if (java2iiopdebug) {                execTask.createArg().setValue("-debug");            }            execTask.createArg().setValue("-verify");            execTask.createArg().setValue("-src");            // ejb jar file to verify            execTask.createArg().setValue(sourceJar.getPath());            log("Calling iastool", Project.MSG_VERBOSE);            execTask.execute();        } catch (Exception e) {            // Have to catch this because of the semantics of calling main()            String msg = "Exception while calling generateclient Details: "                + e.toString();            throw new BuildException(msg, e);        }    }    /**     * Verify the produced jar file by invoking the Borland verify tool     * @param sourceJar java.io.File representing the produced jar file     */    private void verifyBorlandJarV4(File sourceJar) {        org.apache.tools.ant.taskdefs.Java javaTask = null;        log("verify BAS " + sourceJar, Project.MSG_INFO);        try  {            String args = verifyArgs;            args += " " + sourceJar.getPath();            javaTask = new Java(getTask());            javaTask.setTaskName("verify");            javaTask.setClassname(VERIFY);            Commandline.Argument arguments = javaTask.createArg();            arguments.setLine(args);            Path classpath = getCombinedClasspath();            if (classpath != null)  {                javaTask.setClasspath(classpath);                javaTask.setFork(true);            }            log("Calling " + VERIFY + " for " + sourceJar.toString(),                Project.MSG_VERBOSE);            javaTask.execute();        } catch (Exception e) {            //TO DO : delete the file if it is not a valid file.            String msg = "Exception while calling " + VERIFY + " Details: "                + e.toString();            throw new BuildException(msg, e);        }    }    /**     * Generate the client jar corresponding to the jar file passed as parameter     * the method uses the BorlandGenerateClient task.     * @param sourceJar java.io.File representing the produced jar file     */    private void generateClient(File sourceJar) {        getTask().getProject().addTaskDefinition("internal_bas_generateclient",            org.apache.tools.ant.taskdefs.optional.ejb.BorlandGenerateClient.class);        org.apache.tools.ant.taskdefs.optional.ejb.BorlandGenerateClient gentask = null;        log("generate client for " + sourceJar, Project.MSG_INFO);        try {            Project project = getTask().getProject();            gentask                = (BorlandGenerateClient) project.createTask("internal_bas_generateclient");            gentask.setEjbjar(sourceJar);            gentask.setDebug(java2iiopdebug);            Path classpath = getCombinedClasspath();            if (classpath != null) {                gentask.setClasspath(classpath);            }            gentask.setVersion(version);            gentask.setTaskName("generate client");            gentask.execute();        } catch (Exception e) {            //TO DO : delete the file if it is not a valid file.            String msg = "Exception while calling " + VERIFY + " Details: "                + e.toString();            throw new BuildException(msg, e);        }    }    /**     * Generate stubs & skeleton for each home found into the DD     * Add all the generate class file into the ejb files     * @param ithomes : iterator on home class     */    private void buildBorlandStubs(Iterator ithomes) {        Execute execTask = null;        execTask = new Execute(this);        Project project = getTask().getProject();        execTask.setAntRun(project);        execTask.setWorkingDirectory(project.getBaseDir());        Commandline commandline = new Commandline();        commandline.setExecutable(JAVA2IIOP);        //debug ?        if (java2iiopdebug) {            commandline.createArgument().setValue("-VBJdebug");        }        //set the classpath        commandline.createArgument().setValue("-VBJclasspath");        commandline.createArgument().setPath(getCombinedClasspath());        //list file        commandline.createArgument().setValue("-list_files");        //no TIE classes        commandline.createArgument().setValue("-no_tie");        if (java2iioparams != null) {            log("additional  " + java2iioparams + " to java2iiop ", 0);            commandline.createArgument().setValue(java2iioparams);        }        //root dir        commandline.createArgument().setValue("-root_dir");        commandline.createArgument().setValue(getConfig().srcDir.getAbsolutePath());        //compiling order        commandline.createArgument().setValue("-compile");        //add the home class        while (ithomes.hasNext()) {            commandline.createArgument().setValue(ithomes.next().toString());        }        try {            log("Calling java2iiop", Project.MSG_VERBOSE);            log(commandline.describeCommand(), Project.MSG_DEBUG);            execTask.setCommandline(commandline.getCommandline());            int result = execTask.execute();            if (Execute.isFailure(result)) {                String msg = "Failed executing java2iiop (ret code is "                    + result + ")";                throw new BuildException(msg, getTask().getLocation());            }        } catch (java.io.IOException e) {            log("java2iiop exception :" + e.getMessage(), Project.MSG_ERR);            throw new BuildException(e, getTask().getLocation());        }    }    /**     * Method used to encapsulate the writing of the JAR file. Iterates over the     * filenames/java.io.Files in the Hashtable stored on the instance variable     * ejbFiles.     * @param baseName the base name.     * @param jarFile  the jar file to write to.     * @param files    the files to write to the jar.     * @param publicId the id to use.     * @throws BuildException if there is an error.     */    protected void writeJar(String baseName, File jarFile, Hashtable files, String publicId)        throws BuildException {        //build the home classes list.        Vector homes = new Vector();        Iterator it = files.keySet().iterator();        while (it.hasNext()) {            String clazz = (String) it.next();            if (clazz.endsWith("Home.class")) {                //remove .class extension                String home = toClass(clazz);                homes.add(home);                log(" Home " + home, Project.MSG_VERBOSE);            }        }        buildBorlandStubs(homes.iterator());        //add the gen files to the collection        files.putAll(genfiles);        super.writeJar(baseName, jarFile, files, publicId);        if (verify) {            verifyBorlandJar(jarFile);        }        if (generateclient) {            generateClient(jarFile);        }    }    /**     * convert a class file name : A/B/C/toto.class     * into    a class name: A.B.C.toto     */    private String toClass(String filename) {        //remove the .class        String classname = filename.substring(0, filename.lastIndexOf(".class"));        classname = classname.replace('\\', '.');        return classname;    }    /**     * convert a file name : A/B/C/toto.java     * into    a class name: A/B/C/toto.class     */    private  String toClassFile(String filename) {        //remove the .class        String classfile = filename.substring(0, filename.lastIndexOf(".java"));        classfile = classfile + ".class";        return classfile;    }    // implementation of org.apache.tools.ant.taskdefs.ExecuteStreamHandler interface    /** {@inheritDoc}. */    public void start() throws IOException  { }    /** {@inheritDoc}. */    public void stop()  {  }    /** {@inheritDoc}. */    public void setProcessInputStream(OutputStream param1) throws IOException   { }    /**     * Set the output stream of the process.     * @param is the input stream.     * @throws IOException if there is an error.     */    public void setProcessOutputStream(InputStream is) throws IOException {        try {            BufferedReader reader = new BufferedReader(new InputStreamReader(is));            String javafile;            while ((javafile = reader.readLine()) != null) {                if (javafile.endsWith(".java")) {                    String classfile = toClassFile(javafile);                    String key = classfile.substring(                        getConfig().srcDir.getAbsolutePath().length() + 1);                    genfiles.put(key, new File(classfile));                }            }            reader.close();        } catch (Exception e) {            String msg = "Exception while parsing  java2iiop output. Details: " + e.toString();            throw new BuildException(msg, e);        }    }    /**     * Set the error stream of the process.     * @param is the input stream.     * @throws IOException if there is an error.     */    public void setProcessErrorStream(InputStream is) throws IOException {        BufferedReader reader = new BufferedReader(new InputStreamReader(is));        String s = reader.readLine();        if (s != null) {            log("[java2iiop] " + s, Project.MSG_ERR);        }    }}

⌨️ 快捷键说明

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