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";
}
}