ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dona...@apache.org
Subject cvs commit: jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmidon/framework/ant1 Ant1Project.java TaskAdapter.java
Date Tue, 05 Jun 2001 04:33:04 GMT
donaldp     01/06/04 21:33:04

  Added:       proposal/myrmidon/src/java/org/apache/myrmidon/framework/ant1
                        Ant1Project.java TaskAdapter.java
  Log:
  Start of Ant1 task adapter.
  
  Revision  Changes    Path
  1.1                  jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmidon/framework/ant1/Ant1Project.java
  
  Index: Ant1Project.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE file.
   */
  package org.apache.myrmidon.framework.ant1;
  
  import java.io.File;
  import org.apache.avalon.framework.context.Context;
  import org.apache.avalon.framework.context.Contextualizable;
  import org.apache.avalon.framework.logger.Loggable;
  import org.apache.log.Logger;
  import org.apache.myrmidon.api.TaskContext;
  import org.apache.tools.ant.*;
  import org.apache.tools.ant.Project;
  
  public class Ant1Project
      extends Project
      implements Loggable, Contextualizable
  {
      private Logger   m_logger;
  
      ///Variable to hold context for use by sub-classes
      private TaskContext            m_context;
  
      public void setLogger( final Logger logger )
      {
          m_logger = logger;
      }
  
      protected final Logger getLogger()
      {
          return m_logger;
      }
  
      /**
       * Retrieve context from container.
       *
       * @param context the context
       */
      public void contextualize( final Context context )
      {
          m_context = (TaskContext)context;
      }
  
      protected final TaskContext getContext()
      {
          return m_context;
      }
  
      /**
       * Initialise the project.
       */
      public void init()
          throws BuildException
      {
          setJavaVersionProperty();
      }
  
      public void setProperty( final String name, final String value )
      {
          try { getContext().setProperty( name, value ); }
          catch( final Exception e )
          {
              getLogger().warn( "Failed to set property " + name + " to " + value, e );
          }
      }
  
      public void setUserProperty( final String name, final String value )
      {
          setProperty( name, value );
      }
  
      public String getProperty( final String name )
      {
          return "" + getContext().getProperty( name );
      }
  
      public String getUserProperty( final String name )
      {
          return getProperty( name );
      }
  
      public String getName()
      {
          return "Ant1 Project";
      }
  
      public Task createTask( final String taskType )
          throws BuildException
      {
          throw new UnsupportedOperationException();
      }
  
      public Object createDataType( final String typeName )
          throws BuildException
      {
          throw new UnsupportedOperationException();
      }
  
      public File resolveFile( final String fileName )
      {
          try { return getContext().resolveFile( fileName ); }
          catch( final Exception e )
          {
              return null;
          }
      }
  
      protected void fireBuildStarted() {}
      protected void fireBuildFinished(Throwable exception) {}
      protected void fireTargetStarted(Target target) {}
      protected void fireTargetFinished(Target target, Throwable exception) {}
      protected void fireTaskStarted(Task task) {}
      protected void fireTaskFinished(Task task, Throwable exception) {}
  
      private void fireMessageLoggedEvent(BuildEvent event, String message, int priority)
      {
          messageLogged( message, priority );
      }
  
      protected void fireMessageLogged(Project project, String message, int priority)
      {
          messageLogged( message, priority );
      }
  
      protected void fireMessageLogged(Target target, String message, int priority)
      {
          messageLogged( message, priority );
      }
  
      protected void fireMessageLogged(Task task, String message, int priority)
      {
          messageLogged( message, priority );
      }
  
      private void messageLogged( String message, int priority )
      {
          switch( priority )
          {
          case MSG_ERR: getLogger().error( message ); break;
          case MSG_WARN: getLogger().warn( message ); break;
          case MSG_INFO: getLogger().info( message ); break;
          case MSG_VERBOSE: getLogger().debug( message ); break;
          case MSG_DEBUG: getLogger().debug( message ); break;
  
          default:
              getLogger().debug( message );
          }
      }
  }
  
  
  
  1.1                  jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmidon/framework/ant1/TaskAdapter.java
  
  Index: TaskAdapter.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE file.
   */
  package org.apache.myrmidon.framework.ant1;
  
  import org.apache.avalon.framework.configuration.Configurable;
  import org.apache.avalon.framework.configuration.Configuration;
  import org.apache.avalon.framework.configuration.ConfigurationException;
  import org.apache.myrmidon.api.DataType;
  import org.apache.myrmidon.api.TaskContext;
  import org.apache.myrmidon.api.TaskException;
  import org.apache.myrmidon.components.type.TypeException;
  import org.apache.myrmidon.components.type.TypeFactory;
  import org.apache.myrmidon.components.type.TypeManager;
  import org.apache.myrmidon.framework.AbstractContainerTask;
  import org.apache.tools.ant.Task;
  
  /**
   * This is the property "task" to declare a binding of a datatype to a name.
   *
   * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
   */
  public class TaskAdapter
      extends AbstractContainerTask
      implements Configurable
  {
      private Task         m_ant1Task;
      private Ant1Project  m_project = new Ant1Project();
  
      public TaskAdapter( final Task ant1Task )
      {
          m_ant1Task = ant1Task;
      }
  
      protected final Task getTask()
      {
          return m_ant1Task;
      }
  
      protected final Ant1Project getProject()
      {
          return m_project;
      }
  
      public void configure( final Configuration configuration )
          throws ConfigurationException
      {
          getTask().setTaskName( configuration.getName() );
  
          //do configuration
          configure( getTask(), configuration );
      }
  
      public void execute()
          throws TaskException
      {
          try
          {
              getProject().setLogger( getLogger() );
              getProject().contextualize( getContext() );
              getProject().init();
  
              //getTask().setProject( getProject() );
  
              getTask().init();
              getTask().execute();
          }
          catch( final Exception e )
          {
              throw new TaskException( e.getMessage(), e );
          }
      }
  }
  
  
  

Mime
View raw message