Author: jdcasey Date: Fri May 25 08:12:57 2007 New Revision: 541687 URL: http://svn.apache.org/viewvc?view=rev&rev=541687 Log: Resurrecting part of c-builds as a shared module, so we can (later) consolidate it with maven-ant in shared/
Added: maven/sandbox/trunk/shared/maven-antcall/ maven/sandbox/trunk/shared/maven-antcall/pom.xml (with props) maven/sandbox/trunk/shared/maven-antcall/src/ maven/sandbox/trunk/shared/maven-antcall/src/main/ maven/sandbox/trunk/shared/maven-antcall/src/main/java/ maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/ maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/ maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/ maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/ maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/ maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntCallLogger.java (with props) maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntCaller.java (with props) maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntExecutionException.java (with props) maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntPropertyHelper.java (with props) maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/FlatLevelMojoLogAdapter.java (with props) maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/MojoLogAdapter.java (with props) maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/SysoutLogAdapter.java (with props) Added: maven/sandbox/trunk/shared/maven-antcall/pom.xml URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-antcall/pom.xml?view=auto&rev=541687 ============================================================================== --- maven/sandbox/trunk/shared/maven-antcall/pom.xml (added) +++ maven/sandbox/trunk/shared/maven-antcall/pom.xml Fri May 25 08:12:57 2007 @@ -0,0 +1,42 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-antcall</artifactId> + <version>1.0-alpha-4-SNAPSHOT</version> + <name>Ant Caller</name> + <description>Runs ant tasks using API calls</description> + <developers> + <developer> + <id>jdcasey</id> + <name>John Casey</name> + <email>[EMAIL PROTECTED]</email> + </developer> + <developer> + <id>kenney</id> + <name>Kenney Westerhof</name> + <email>[EMAIL PROTECTED]</email> + </developer> + </developers> + <dependencies> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-project</artifactId> + <version>2.0.5</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-plugin-api</artifactId> + <version>2.0</version> + </dependency> + <dependency> + <groupId>ant</groupId> + <artifactId>ant</artifactId> + <version>1.6.5</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + <version>1.0-alpha-9-stable-1</version> + </dependency> + </dependencies> +</project> Propchange: maven/sandbox/trunk/shared/maven-antcall/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/sandbox/trunk/shared/maven-antcall/pom.xml ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntCallLogger.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntCallLogger.java?view=auto&rev=541687 ============================================================================== --- maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntCallLogger.java (added) +++ maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntCallLogger.java Fri May 25 08:12:57 2007 @@ -0,0 +1,60 @@ +package org.codehaus.mojo.tools.antcall; + +/* + * 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.util.Arrays; +import java.util.List; + +/** + * Interface for logging within maven-antcall. CharSequence's are used to avoid the need + * to convert StringBuffers to Strings. + */ +public interface AntCallLogger +{ + + static final String MESSAGE_LEVEL_VERBOSE = "verbose"; + static final String MESSAGE_LEVEL_DEBUG = "debug"; + static final String MESSAGE_LEVEL_INFO = "info"; + static final String MESSAGE_LEVEL_WARN = "warn"; + static final String MESSAGE_LEVEL_ERROR = "error"; + static final String MESSAGE_LEVEL_SUPPRESS = "suppress"; + + static final List MESSAGE_LEVELS = Arrays.asList( new String[]{ + MESSAGE_LEVEL_VERBOSE, + MESSAGE_LEVEL_DEBUG, + MESSAGE_LEVEL_INFO, + MESSAGE_LEVEL_WARN, + MESSAGE_LEVEL_ERROR, + MESSAGE_LEVEL_SUPPRESS + } ); + + void debug( CharSequence message ); + + void debug( CharSequence message, Throwable error ); + + void info( CharSequence message ); + + void info( CharSequence message, Throwable error ); + + void warn( CharSequence message ); + + void warn( CharSequence message, Throwable error ); + + void error( CharSequence message ); + + void error( CharSequence message, Throwable error ); + +} Propchange: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntCallLogger.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntCallLogger.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntCaller.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntCaller.java?view=auto&rev=541687 ============================================================================== --- maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntCaller.java (added) +++ maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntCaller.java Fri May 25 08:12:57 2007 @@ -0,0 +1,234 @@ +package org.codehaus.mojo.tools.antcall; + +/* + * 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 java.io.PrintStream; + +import org.apache.maven.project.MavenProject; +import org.apache.tools.ant.DefaultLogger; +import org.apache.tools.ant.Project; +import org.apache.tools.ant.PropertyHelper; +import org.apache.tools.ant.Target; +import org.apache.tools.ant.Task; + +/** + * Convenience api used to call Ant APIs directly from Java code. + * + * @author <a href="mailto:[EMAIL PROTECTED]">John Casey</a> + * @author <a href="mailto:[EMAIL PROTECTED]">Kenney Westerhof</a> + */ +public class AntCaller +{ + private Project antProject; + + private Target tasks; + + private DefaultLogger antLogger; + + private final AntCallLogger logger; + + private String messageLevel = AntCallLogger.MESSAGE_LEVEL_INFO; + + private PrintStream outStream = System.out; + + private PrintStream errStream = System.err; + + // private InputStream inStream = System.in; + + public AntCaller( AntCallLogger logger ) + { + this.logger = logger; + } + + public boolean hasTasks() + { + if ( tasks == null ) + { + return false; + } + + Task[] taskArray = tasks.getTasks(); + + return taskArray != null && taskArray.length > 0; + } + + public void addTask( Task task ) + { + checkOrCreateProjectAndTarget(); + + task.setProject( antProject ); + tasks.addTask( task ); + } + + public void setProjectBasedir( File basedir ) + { + checkOrCreateProjectAndTarget(); + + antProject.setBaseDir( basedir ); + } + + private void checkOrCreateProjectAndTarget() + { + if ( antProject == null ) + { + antProject = new Project(); + } + + if ( tasks == null ) + { + tasks = new Target(); + tasks.setProject( antProject ); + } + } + + public void setMessageLevel( String messageLevel ) + { + this.messageLevel = messageLevel; + } + + public String getProjectProperty( String property ) + { + return antProject.getProperty( property ); + } + + public void setOutputStream( PrintStream printStream ) + { + this.outStream = printStream; + } + + public PrintStream getOutputStream() + { + return this.outStream; + } + + public void setErrorStream( PrintStream printStream ) + { + this.errStream = printStream; + } + + public PrintStream getErrorStream() + { + return this.errStream; + } + + // public void setInputStream( InputStream inStream ) + // { + // this.inStream = inStream; + // } + // + // public InputStream getInputStream() + // { + // return this.inStream; + // } + + private void initializeLogger() + { + int idx = AntCallLogger.MESSAGE_LEVELS.indexOf( messageLevel ); + + if ( idx < 0 ) + { + throw new IllegalArgumentException( "Invalid message level: \'" + messageLevel + "\'" ); + } + else + { + if ( antLogger == null ) + { + antLogger = new DefaultLogger(); + antLogger.setOutputPrintStream( outStream ); + antLogger.setErrorPrintStream( errStream ); + } + + switch ( idx ) + { + case ( 0 ): + { + antLogger.setMessageOutputLevel( Project.MSG_VERBOSE ); + break; + } + case ( 1 ): + { + antLogger.setMessageOutputLevel( Project.MSG_DEBUG ); + break; + } + case ( 3 ): + { + antLogger.setMessageOutputLevel( Project.MSG_WARN ); + break; + } + case ( 4 ): + { + antLogger.setMessageOutputLevel( Project.MSG_ERR ); + break; + } + case ( 5 ): + { + antLogger.setMessageOutputLevel( -1 ); + break; + } + default: + { + antLogger.setMessageOutputLevel( Project.MSG_INFO ); + } + } + } + } + + public void executeTasks( MavenProject mavenProject ) throws AntExecutionException + { + if ( !hasTasks() ) + { + logger.warn( "No tasks defined. Skipping Ant-API execution." ); + return; + } + + try + { + PropertyHelper propertyHelper = PropertyHelper.getPropertyHelper( antProject ); + + propertyHelper.setNext( new AntPropertyHelper( mavenProject, logger ) ); + + initializeLogger(); + + antProject.addBuildListener( antLogger ); + + File basedir = mavenProject.getBasedir(); + if ( basedir != null && basedir.exists() && basedir.isDirectory() ) + { + antProject.setBaseDir( mavenProject.getBasedir() ); + } + + logger.debug( "Executing tasks: " ); + + Task[] taskArray = tasks.getTasks(); + for ( int i = 0; i < taskArray.length; i++ ) + { + if ( taskArray[i].getTaskName() != null ) + logger.debug( taskArray[i].getTaskName() ); + else + logger.debug( "Unknown Task" ); + } + + tasks.execute(); + + logger.debug( "Executed tasks" ); + } + catch ( Exception e ) + { + throw new AntExecutionException( "Error executing ant tasks", e ); + } + } +} Propchange: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntCaller.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntCaller.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntExecutionException.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntExecutionException.java?view=auto&rev=541687 ============================================================================== --- maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntExecutionException.java (added) +++ maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntExecutionException.java Fri May 25 08:12:57 2007 @@ -0,0 +1,37 @@ +package org.codehaus.mojo.tools.antcall; + +/* + * 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. + * + */ + +/** + * Signals an error while executing Ant APIs from Java code. + */ +public class AntExecutionException + extends Exception +{ + + static final long serialVersionUID = 1; + + public AntExecutionException( String message, Throwable cause ) + { + super( message, cause ); + } + + public AntExecutionException( String message ) + { + super( message ); + } + +} Propchange: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntExecutionException.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntExecutionException.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntPropertyHelper.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntPropertyHelper.java?view=auto&rev=541687 ============================================================================== --- maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntPropertyHelper.java (added) +++ maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntPropertyHelper.java Fri May 25 08:12:57 2007 @@ -0,0 +1,70 @@ +package org.codehaus.mojo.tools.antcall; + +/* + * 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 org.apache.maven.project.MavenProject; +import org.apache.tools.ant.PropertyHelper; +import org.codehaus.plexus.util.introspection.ReflectionValueExtractor; + +/** + * Makes the ${expressions} used in Maven available to Ant as properties. + * + * @author <a href="mailto:[EMAIL PROTECTED]">Kenney Westerhof</a> + */ +public class AntPropertyHelper + extends PropertyHelper +{ + private final MavenProject mavenProject; + private final AntCallLogger logger; + + public AntPropertyHelper( MavenProject project, AntCallLogger logger ) + { + this.mavenProject = project; + this.logger = logger; + } + + public synchronized Object getPropertyHook( String ns, String name, boolean user ) + { + logger.debug( "getProperty(ns=" + ns + ", name=" + name + ", user=" + user + ")" ); + + try + { + if ( name.startsWith( "project." ) || name.equals( "basedir" ) ) + { + Object val = ReflectionValueExtractor.evaluate( name.substring( "project.".length() ), mavenProject ); + + if ( val != null ) + { + return val; + } + } + } + catch ( Exception e ) + { + logger.info( "Error evaluating expression '" + name + "'", e ); + e.printStackTrace(); + } + + Object val = super.getPropertyHook( ns, name, user ); + + if ( val == null ) + { + val = System.getProperty( name.toString() ); + } + + return val; + } +} Propchange: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntPropertyHelper.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/AntPropertyHelper.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/FlatLevelMojoLogAdapter.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/FlatLevelMojoLogAdapter.java?view=auto&rev=541687 ============================================================================== --- maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/FlatLevelMojoLogAdapter.java (added) +++ maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/FlatLevelMojoLogAdapter.java Fri May 25 08:12:57 2007 @@ -0,0 +1,132 @@ +package org.codehaus.mojo.tools.antcall; + +/* + * 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 org.apache.maven.plugin.logging.Log; + +/** + * Adapter class to make a mojo Log instance look like an antcall logger. + * This adapter is the only API dependency on maven-plugin-api, and therefore + * may belong somewhere else, in order to keep this APIs dependency set simple. + */ +public class FlatLevelMojoLogAdapter + implements AntCallLogger +{ + + private final Log mojoLog; + private final String level; + + public FlatLevelMojoLogAdapter( Log mojoLog, String level ) + { + this.mojoLog = mojoLog; + this.level = level; + } + + /** + * Never sink below the radar...only go as low as INFO. + */ + public void debug( CharSequence message, Throwable error ) + { + log( message, error ); + } + + /** + * Never sink below the radar...only go as low as INFO. + */ + public void debug( CharSequence message ) + { + log( message ); + } + + public void error( CharSequence message, Throwable error ) + { + log( message, error ); + } + + public void error( CharSequence message ) + { + log( message ); + } + + public void info( CharSequence message, Throwable error ) + { + log( message, error ); + } + + public void info( CharSequence message ) + { + log( message ); + } + + public void warn( CharSequence message, Throwable error ) + { + log( message, error ); + } + + public void warn( CharSequence message ) + { + log( message ); + } + + private void log( CharSequence message, Throwable error ) + { + if ( MESSAGE_LEVEL_DEBUG.equalsIgnoreCase( level ) ) + { + mojoLog.debug( message, error ); + } + else if ( MESSAGE_LEVEL_ERROR.equalsIgnoreCase( level ) ) + { + mojoLog.error( message, error ); + } + else if ( MESSAGE_LEVEL_VERBOSE.equalsIgnoreCase( level ) ) + { + mojoLog.debug( message, error ); + } + else if ( MESSAGE_LEVEL_WARN.equalsIgnoreCase( level ) ) + { + mojoLog.warn( message, error ); + } + else if ( !MESSAGE_LEVEL_SUPPRESS.equalsIgnoreCase( level ) ) + { + mojoLog.info( message, error ); + } + } + + private void log( CharSequence message ) + { + if ( MESSAGE_LEVEL_DEBUG.equalsIgnoreCase( level ) ) + { + mojoLog.debug( message ); + } + else if ( MESSAGE_LEVEL_ERROR.equalsIgnoreCase( level ) ) + { + mojoLog.error( message ); + } + else if ( MESSAGE_LEVEL_VERBOSE.equalsIgnoreCase( level ) ) + { + mojoLog.debug( message ); + } + else if ( MESSAGE_LEVEL_WARN.equalsIgnoreCase( level ) ) + { + mojoLog.warn( message ); + } + else if ( !MESSAGE_LEVEL_SUPPRESS.equalsIgnoreCase( level ) ) + { + mojoLog.info( message ); + } + } + +} Propchange: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/FlatLevelMojoLogAdapter.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/FlatLevelMojoLogAdapter.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/MojoLogAdapter.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/MojoLogAdapter.java?view=auto&rev=541687 ============================================================================== --- maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/MojoLogAdapter.java (added) +++ maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/MojoLogAdapter.java Fri May 25 08:12:57 2007 @@ -0,0 +1,97 @@ +package org.codehaus.mojo.tools.antcall; + +/* + * 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 org.apache.maven.plugin.logging.Log; + +/** + * Adapter class to make a mojo Log instance look like an antcall logger. + * This adapter is the only API dependency on maven-plugin-api, and therefore + * may belong somewhere else, in order to keep this APIs dependency set simple. + */ +public class MojoLogAdapter + implements AntCallLogger +{ + + private final Log mojoLog; + + public MojoLogAdapter( Log mojoLog ) + { + this.mojoLog = mojoLog; + } + + /** + * Never sink below the radar...only go as low as INFO. + */ + public void debug( CharSequence message, Throwable error ) + { + mojoLog.info( message, error ); + } + + /** + * Never sink below the radar...only go as low as INFO. + */ + public void debug( CharSequence message ) + { + mojoLog.info( message ); + } + + public void error( CharSequence message, Throwable error ) + { + mojoLog.error( message, error ); + } + + public void error( CharSequence message ) + { + mojoLog.error( message ); + } + + public void info( CharSequence message, Throwable error ) + { + mojoLog.info( message, error ); + } + + public void info( CharSequence message ) + { + mojoLog.info( message ); + } + + public void warn( CharSequence message, Throwable error ) + { + mojoLog.warn( message, error ); + } + + public void warn( CharSequence message ) + { + mojoLog.warn( message ); + } + + public int hashCode() + { + return 11 + mojoLog.hashCode(); + } + + public boolean equals( Object other ) + { + if ( other instanceof MojoLogAdapter ) + { + return mojoLog.equals( ((MojoLogAdapter) other).mojoLog ); + } + + return false; + } + +} Propchange: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/MojoLogAdapter.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/MojoLogAdapter.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/SysoutLogAdapter.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/SysoutLogAdapter.java?view=auto&rev=541687 ============================================================================== --- maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/SysoutLogAdapter.java (added) +++ maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/SysoutLogAdapter.java Fri May 25 08:12:57 2007 @@ -0,0 +1,92 @@ +package org.codehaus.mojo.tools.antcall; + +/* + * 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.PrintWriter; +import java.io.StringWriter; + +/** + * Adapter class to make a mojo Log instance look like an antcall logger. + * This adapter is the only API dependency on maven-plugin-api, and therefore + * may belong somewhere else, in order to keep this APIs dependency set simple. + */ +public class SysoutLogAdapter + implements AntCallLogger +{ + + /** + * Never sink below the radar...only go as low as INFO. + */ + public void debug( CharSequence message, Throwable error ) + { + log( message, error ); + } + + /** + * Never sink below the radar...only go as low as INFO. + */ + public void debug( CharSequence message ) + { + log( message ); + } + + public void error( CharSequence message, Throwable error ) + { + log( message, error ); + } + + public void error( CharSequence message ) + { + log( message ); + } + + public void info( CharSequence message, Throwable error ) + { + log( message, error ); + } + + public void info( CharSequence message ) + { + log( message ); + } + + public void warn( CharSequence message, Throwable error ) + { + log( message, error ); + } + + public void warn( CharSequence message ) + { + log( message ); + } + + private void log( CharSequence message, Throwable error ) + { + StringWriter writer = new StringWriter(); + PrintWriter pWriter = new PrintWriter( writer ); + + pWriter.println( message ); + error.printStackTrace( pWriter ); + + System.out.println( writer.toString() ); + } + + private void log( CharSequence message ) + { + System.out.println( message ); + } + +} Propchange: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/SysoutLogAdapter.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/sandbox/trunk/shared/maven-antcall/src/main/java/org/codehaus/mojo/tools/antcall/SysoutLogAdapter.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision"