You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by jv...@apache.org on 2003/01/02 08:30:25 UTC

cvs commit: jakarta-turbine-maven/src/java/org/apache/maven/jelly JellyBuildListener.java MavenJellyContext.java

jvanzyl     2003/01/01 23:30:25

  Modified:    src/java/org/apache/maven AntProjectBuilder.java
                        MavenConstants.java
               src/java/org/apache/maven/jelly MavenJellyContext.java
  Added:       src/java/org/apache/maven/jelly JellyBuildListener.java
  Log:
  o Various cleanups. Moved the JellyBuildListener from Werkz into Maven. Will
    do the same with Grant tomorrow.
  
  Revision  Changes    Path
  1.2       +1 -1      jakarta-turbine-maven/src/java/org/apache/maven/AntProjectBuilder.java
  
  Index: AntProjectBuilder.java
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-maven/src/java/org/apache/maven/AntProjectBuilder.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AntProjectBuilder.java	31 Dec 2002 07:00:52 -0000	1.1
  +++ AntProjectBuilder.java	2 Jan 2003 07:30:25 -0000	1.2
  @@ -5,7 +5,7 @@
   import org.apache.maven.jelly.JellyPropsHandler;
   import org.apache.maven.project.Project;
   
  -import com.werken.werkz.jelly.JellyBuildListener;
  +import org.apache.maven.jelly.JellyBuildListener;
   
   public class AntProjectBuilder
   {
  
  
  
  1.21      +1 -2      jakarta-turbine-maven/src/java/org/apache/maven/MavenConstants.java
  
  Index: MavenConstants.java
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-maven/src/java/org/apache/maven/MavenConstants.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- MavenConstants.java	31 Dec 2002 07:00:15 -0000	1.20
  +++ MavenConstants.java	2 Jan 2003 07:30:25 -0000	1.21
  @@ -175,5 +175,4 @@
   
       /**  Dependency classpath tag. */
       public static final String SESSION = "maven.session";
  -
   }
  
  
  
  1.25      +14 -4     jakarta-turbine-maven/src/java/org/apache/maven/jelly/MavenJellyContext.java
  
  Index: MavenJellyContext.java
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-maven/src/java/org/apache/maven/jelly/MavenJellyContext.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- MavenJellyContext.java	31 Dec 2002 07:03:20 -0000	1.24
  +++ MavenJellyContext.java	2 Jan 2003 07:30:25 -0000	1.25
  @@ -255,10 +255,20 @@
        */
       public Boolean getBoolean( String key )
       {
  -        String value = (String) getVariable( key );
  +        // After changing the processing everything is now a Boolean already
  +        // but I want to keep the type check for the time being.
   
  -        if (    "true".equalsIgnoreCase( value )
  -             || "on".equalsIgnoreCase( value )
  +        Object value = getVariable( key );
  +
  +        if ( value instanceof Boolean )
  +        {
  +            return (Boolean) value;
  +        }
  +
  +        String stringValue = (String) value;
  +
  +        if (    "true".equalsIgnoreCase( stringValue )
  +             || "on".equalsIgnoreCase( stringValue )
                || "1".equals( value ) )
           {
               return Boolean.TRUE;
  
  
  
  1.1                  jakarta-turbine-maven/src/java/org/apache/maven/jelly/JellyBuildListener.java
  
  Index: JellyBuildListener.java
  ===================================================================
  package org.apache.maven.jelly;
  
  /*
   $Id: JellyBuildListener.java,v 1.1 2003/01/02 07:30:25 jvanzyl Exp $
  
   Copyright 2002 (C) The Werken Company. All Rights Reserved.
  
   Redistribution and use of this software and associated documentation
   ("Software"), with or without modification, are permitted provided
   that the following conditions are met:
  
   1. Redistributions of source code must retain copyright
      statements and notices.  Redistributions must also contain a
      copy of this document.
  
   2. Redistributions in binary form must reproduce the
      above copyright notice, this list of conditions and the
      following disclaimer in the documentation and/or other
      materials provided with the distribution.
  
   3. The name "werkz" must not be used to endorse or promote
      products derived from this Software without prior written
      permission of The Werken Company.  For written permission,
      please contact bob@werken.com.
  
   4. Products derived from this Software may not be called "werkz"
      nor may "werkz" appear in their names without prior written
      permission of The Werken Company. "werkz" is a registered
      trademark of The Werken Company.
  
   5. Due credit should be given to "the werkz project"
      (http://werkz.werken.com/).
  
   THIS SOFTWARE IS PROVIDED BY THE WERKEN COMPANY AND CONTRIBUTORS
   ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
   NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
   THE WERKEN COMPANY OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
   OF THE POSSIBILITY OF SUCH DAMAGE.
  
   */
  
  import java.io.IOException;
  import java.util.Stack;
  
  import org.apache.commons.jelly.XMLOutput;
  import org.apache.tools.ant.BuildEvent;
  import org.apache.tools.ant.BuildListener;
  import org.apache.tools.ant.Project;
  import org.xml.sax.SAXException;
  
  public class JellyBuildListener implements BuildListener
  {
      private XMLOutput out;
  
      private Stack taskStack;
  
      private boolean debug;
  
      /** Whether or not to use emacs-style output */
      protected boolean emacsMode = false;
  
      public JellyBuildListener( XMLOutput out )
      {
          this.taskStack = new Stack();
          this.out = out;
          this.debug = false;
      }
  
      /**
       * Sets this logger to produce emacs (and other editor) friendly output.
       *
       * @param emacsMode <code>true</code> if output is to be unadorned so that
       *                  emacs and other editors can parse files names, etc.
       */
      public void setEmacsMode( boolean emacsMode )
      {
          this.emacsMode = emacsMode;
      }
  
      public boolean isDebug()
      {
          return this.debug;
      }
  
      public void isDebug( boolean debug )
      {
          this.debug = debug;
      }
  
      public void buildFinished( BuildEvent event )
      {
      }
  
      public void buildStarted( BuildEvent event )
      {
      }
  
      public void messageLogged( BuildEvent event )
      {
  
          // System.err.println( "messageLogged(" + event + ")" );
  
          if ( event.getPriority() > Project.MSG_INFO
              &&
              !isDebug() )
          {
              return;
          }
  
          try
          {
              if ( emacsMode )
              {
                  out.write( event.getMessage() + "\n" );
                  out.flush();
                  return;
              }
  
              if ( !this.taskStack.isEmpty() )
              {
                  out.write( "    [" + this.taskStack.peek() + "] " );
              }
  
              switch ( event.getPriority() )
              {
                  case ( Project.MSG_ERR ):
                      {
                          out.write( "[ERROR] " );
                          break;
                      }
                  case ( Project.MSG_WARN ):
                      {
                          // out.write( "[WARN] ");
                          break;
                      }
                  case ( Project.MSG_INFO ):
                      {
                          // normal, do nothing.
                          break;
                      }
                  case ( Project.MSG_VERBOSE ):
                      {
                          out.write( "[VERBOSE] " );
                          break;
                      }
                  case ( Project.MSG_DEBUG ):
                      {
                          out.write( "[DEBUG] " );
                          break;
                      }
              }
  
              out.write( event.getMessage() + "\n" );
              out.flush();
          }
          catch ( SAXException e )
          {
              // fall-back to stderr.
              System.err.println( event.getMessage() );
              System.err.flush();
          }
          catch ( IOException e )
          {
              // ignore
          }
  
      }
  
      public void targetFinished( BuildEvent event )
      {
      }
  
      public void targetStarted( BuildEvent event )
      {
      }
  
      public void taskFinished( BuildEvent event )
      {
          this.taskStack.pop();
      }
  
      public void taskStarted( BuildEvent event )
      {
          this.taskStack.push( event.getTask().getTaskName() );
      }
  }