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"


Reply via email to