You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by co...@apache.org on 2001/11/28 08:43:42 UTC

cvs commit: jakarta-avalon-cornerstone/apps/overlord/src/java/org/apache/avalon/overlord CollectorTarget.java Overlord.java

colus       01/11/27 23:43:42

  Modified:    apps/overlord/src/java/org/apache/avalon/overlord
                        CollectorTarget.java Overlord.java
  Log:
  Refactored.
  
  Revision  Changes    Path
  1.2       +12 -6     jakarta-avalon-cornerstone/apps/overlord/src/java/org/apache/avalon/overlord/CollectorTarget.java
  
  Index: CollectorTarget.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/overlord/src/java/org/apache/avalon/overlord/CollectorTarget.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- CollectorTarget.java	2001/11/25 07:34:01	1.1
  +++ CollectorTarget.java	2001/11/28 07:43:42	1.2
  @@ -24,27 +24,33 @@
       private static final Resources REZ =
           ResourceManager.getPackageResources( CollectorTarget.class );
   
  -    private Collector   m_collector;
  +    private GatheringServer     m_server;
  +    private String              m_taskName;
  +    private String              m_collectorName;
   
  -    public CollectorTarget( final Collector collector )
  +    public CollectorTarget( final GatheringServer server,
  +                            final String taskName,
  +                            final String collectorName )
       {
  -        m_collector = collector;
  +        m_server = server;
  +        m_taskName = taskName;
  +        m_collectorName = collectorName;
       }
   
       public void targetTriggered( final String triggerName )
       {
           try
           {
  -            m_collector.execute();
  +            m_server.collect( m_collectorName );
   
               final String message = REZ.getString( "target.notice.execute",
  -                                                  triggerName  );
  +                                                  m_taskName  );
               getLogger().info( message );
           }
           catch ( final Exception e )
           {
               final String message = REZ.getString( "target.error.execute",
  -                                                  triggerName );
  +                                                  m_taskName );
               getLogger().error( message, e );
           }
       }
  
  
  
  1.3       +74 -39    jakarta-avalon-cornerstone/apps/overlord/src/java/org/apache/avalon/overlord/Overlord.java
  
  Index: Overlord.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/overlord/src/java/org/apache/avalon/overlord/Overlord.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Overlord.java	2001/11/27 13:21:42	1.2
  +++ Overlord.java	2001/11/28 07:43:42	1.3
  @@ -42,7 +42,7 @@
    */
   public class Overlord
       extends AbstractLogEnabled
  -    implements GatheringServer, Block, Contextualizable, Composable, Configurable, Initializable, Disposable
  +    implements Contextualizable, Composable, Configurable, Initializable, Disposable, Block, GatheringServer
   {
       private static final Resources REZ = 
           ResourceManager.getPackageResources( Overlord.class );
  @@ -51,8 +51,9 @@
       private ComponentManager            m_componentManager;
       private Configuration               m_configuration;
       private TimeScheduler               m_scheduler;
  +    private TimeTriggerFactory          m_triggerFactory;
       private Map                         m_collectors;
  -    private List                        m_tasks;
  +    private List                        m_taskNames;
   
       public void contextualize( final Context context )
       {
  @@ -77,6 +78,8 @@
       private void initializeCollectors( final Configuration configuration )
           throws Exception
       {
  +        final Logger logger = getLogger().getChildLogger( "collectors" );
  +
           m_collectors = new HashMap();
   
           final Configuration[] confs = configuration.getChildren( "collector" );
  @@ -89,10 +92,10 @@
               final Collector collector =
                   (Collector)Class.forName( clazz ).newInstance();
               setupComponent( collector,
  -                            getLogger().getChildLogger( name ),
  +                            logger.getChildLogger( name ),
                               m_context, m_componentManager, conf );
   
  -            m_collectors.put( name, collector );
  +            addCollector( name, collector );
   
               getLogger().info( REZ.getString( "overlord.notice.collector.add", name, clazz ) );
           }
  @@ -101,7 +104,7 @@
       private void initializeTasks( final Configuration configuration )
           throws Exception
       {
  -        m_tasks = new ArrayList();
  +        m_taskNames = new ArrayList();
   
           final Configuration[] taskConfs = configuration.getChildren( "task" );
           for ( int i = 0; i < taskConfs.length; i++ )
  @@ -109,9 +112,8 @@
               final Configuration conf = taskConfs[ i ];
               final String name = conf.getAttribute( "name" );
   
  -            final TimeTriggerFactory triggerFactory = new TimeTriggerFactory();
               final Configuration triggerConf = conf.getChild( "trigger" );
  -            final TimeTrigger trigger = triggerFactory.create( triggerConf );
  +            final TimeTrigger trigger = m_triggerFactory.create( triggerConf );
   
               final String targetName = conf.getChild( "target" ).getValue();
   
  @@ -122,6 +124,8 @@
       public void initialize()
           throws Exception
       {
  +        m_triggerFactory = new TimeTriggerFactory();
  +
           initializeCollectors( m_configuration.getChild( "collectors" ) );
           initializeTasks( m_configuration.getChild( "tasks" ) );
   
  @@ -136,13 +140,13 @@
   
       private void disposeTasks()
       {
  -        final Iterator taskNames = m_tasks.iterator();
  +        final Iterator taskNames = m_taskNames.iterator();
           while ( taskNames.hasNext() )
           {
               removeTask( (String)taskNames.next() );
           }
  -        m_tasks.clear();
  -        m_tasks = null;
  +        m_taskNames.clear();
  +        m_taskNames = null;
       }
   
       private void disposeCollectors()
  @@ -158,6 +162,28 @@
           m_collectors = null;
       }
   
  +    private void addCollector( final String name, final Collector collector )
  +    {
  +        if ( null == name || name.length() == 0 )
  +        {
  +            final String message = "Invalid collector name";
  +            throw new IllegalArgumentException( message );
  +        }
  +
  +        if ( m_collectors.containsKey( name ) )
  +        {
  +            final String message = "Collector named " + name + " already exists";
  +            throw new IllegalArgumentException( message );
  +        }
  +
  +        m_collectors.put( name, collector );
  +    }
  +
  +    private void removeCollector( final String name )
  +    {
  +        m_collectors.remove( name );
  +    }
  +
       /**
        * Add task.
        *
  @@ -168,7 +194,7 @@
       private void addTask( final String taskName, final TimeTrigger trigger,
                             final String collectorName )
       {
  -        if ( m_tasks.contains( taskName ) )
  +        if ( m_taskNames.contains( taskName ) )
           {
               final String msg = REZ.getString( "overlord.error.task.exists",
                                                 taskName );
  @@ -183,13 +209,15 @@
               throw new IllegalArgumentException( message );
           }
   
  -        final CollectorTarget target = new CollectorTarget( collector );
  -        setupLogger( target );
  +        final CollectorTarget target = new CollectorTarget( this, taskName, collectorName );
  +        setupLogger( target, "targets" );
   
           m_scheduler.addTrigger( this + taskName, trigger, target );
  -        m_tasks.add( taskName );
  +        m_taskNames.add( taskName );
   
  -        getLogger().info( REZ.getString( "overlord.notice.task.add", taskName ) );
  +        final String message =
  +            REZ.getString( "overlord.notice.task.add", taskName );
  +        getLogger().info( message );
       }
   
       /**
  @@ -200,9 +228,38 @@
       private void removeTask( final String taskName )
       {
           m_scheduler.removeTrigger( this + taskName );
  -        m_tasks.remove( taskName );
  +        m_taskNames.remove( taskName );
  +
  +        final String message =
  +            REZ.getString( "overlord.notice.task.remove", taskName );
  +        getLogger().info( message );
  +    }
  +
  +    public void collect( final String name )
  +        throws Exception
  +    {
  +        //lookup
  +        final Collector collector = (Collector)m_collectors.get( name );
  +        if ( null == collector )
  +        {
  +            final String message =
  +                REZ.getString( "overlord.error.collector.find", name );
  +            getLogger().error( message );
  +            throw new ComponentException( message );
  +        }
   
  -        getLogger().info( REZ.getString( "overlord.notice.task.remove", taskName ) );
  +        //execute
  +        try
  +        {
  +            collector.execute();
  +        }
  +        catch ( final Exception e )
  +        {
  +            final String message =
  +                REZ.getString( "overlord.error.collector.execute", name );
  +            getLogger().error( message, e );
  +            throw e;
  +        }
       }
   
       private void setupComponent( final Component component,
  @@ -243,28 +300,6 @@
           if ( component instanceof Disposable )
           {
               ((Disposable)component).dispose();
  -        }
  -    }
  -
  -    public void collect( final String name )
  -        throws Exception
  -    {
  -        final Collector collector = (Collector)m_collectors.get( name );
  -        if ( null == collector )
  -        {
  -            final String message = "Unable to find collector named " + name;
  -            throw new ComponentException( message );
  -        }
  -
  -        try
  -        {
  -            collector.execute();
  -        }
  -        catch ( final Exception e )
  -        {
  -            final String message = "Fail to execute collector " + name;
  -            getLogger().error( message, e );
  -            throw e;
           }
       }
   }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>