org.apache.maven.plugin.jdiff.JavadocBean.java Source code

Java tutorial

Introduction

Here is the source code for org.apache.maven.plugin.jdiff.JavadocBean.java

Source

package org.apache.maven.plugin.jdiff;

/*
 * Copyright 2001-2005 The Apache Software Foundation.
 *
 * Licensed 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.
 */

import java.io.File;
import org.apache.commons.lang.SystemUtils;
import org.apache.maven.reporting.MavenReportException;
import org.codehaus.plexus.util.cli.CommandLineUtils;
import org.codehaus.plexus.util.cli.Commandline;
import org.codehaus.plexus.util.cli.DefaultConsumer;

public class JavadocBean {
    private Commandline cmd = new Commandline();

    public JavadocBean() {
        cmd.setExecutable(getJavadocPath());
    }

    public void addArgumentPair(String argKey, String argValue) {
        cmd.createArgument().setValue("-" + argKey);

        cmd.createArgument().setValue(argValue);
    }

    public void addArgument(String arg) {
        cmd.createArgument().setValue(arg);
    }

    public void execute(String workingDir) throws MavenReportException {
        File dir = new File(workingDir);

        if (!dir.exists())
            dir.mkdirs();

        cmd.setWorkingDirectory(dir.getAbsolutePath());

        int exitCode = 0;

        try {
            exitCode = CommandLineUtils.executeCommandLine(cmd, new DefaultConsumer(), new DefaultConsumer());

            //Process p = Runtime.getRuntime().exec( cmd.toString() );

            //p.waitFor();

            //System.out.println( IOUtil.toString( p.getInputStream() ) );

            //exitCode = p.exitValue();
        } catch (Exception ex) {
            throw new MavenReportException("generateJDiff doclet failed.", ex);
        }

        if (exitCode != 0) {
            throw new MavenReportException("generate JDiff doclet failed.");
        }
    }

    private String getJavadocPath() {
        final String javadocCommand = "javadoc" + (SystemUtils.IS_OS_WINDOWS ? ".exe" : "");
        // For IBM's JDK 1.2
        final File javadocExe = (SystemUtils.IS_OS_AIX
                ? new File(SystemUtils.getJavaHome() + "/../sh", javadocCommand)
                : new File(SystemUtils.getJavaHome() + "/../bin", javadocCommand));

        //return javadocExe.getAbsolutePath();

        return "javadoc";
    }
}