Package com.uwyn.drone

Source Code of com.uwyn.drone.Droned

/*
* Copyright 2002-2005 Uwyn bvba/sprl <info[remove] at uwyn dot com>
* Distributed under the terms of the GNU Lesser General Public
* License, v2.1 or later
*
* $Id: Droned.java 1739 2005-04-09 08:56:57Z gbevin $
*/
package com.uwyn.drone;

import com.uwyn.drone.core.BotsRunner;
import com.uwyn.drone.core.BotsRunnerListener;
import com.uwyn.rife.rep.Rep;
import com.uwyn.rife.resources.ResourceFinderClasspath;
import com.uwyn.rife.tools.FileUtils;
import com.uwyn.rife.tools.exceptions.FileUtilsErrorException;
import java.net.URL;

public class Droned implements BotsRunnerListener
{
  private static String  sVersion = null;
  private static Integer  msVersionMonitor = new Integer(0);
 
  private BotsRunner  mBotsRunner = null;
 
  private Droned(BotsRunner botsRunner)
  {
    assert botsRunner != null;
    mBotsRunner = botsRunner;
    mBotsRunner.addBotsRunnerListener(this);
  }
 
  private void waitForFinish()
  {
    synchronized (mBotsRunner)
    {
      while (mBotsRunner.isAlive())
      {
        try
        {
          mBotsRunner.wait();
        }
        catch (InterruptedException e)
        {
          // do nothing
        }
      }
    }
  }
 
  public static void main(String[] args)
  {
    Rep.initialize("rep/participants.xml");
   
    BotsRunner  bots_runner = (BotsRunner)Rep.getParticipant("com.uwyn.drone.core.DroneParticipant").getObject();
    Droned    drone = new Droned(bots_runner);
    drone.waitForFinish();
  }
 
  public void finished(BotsRunner botsRunner)
  {
    synchronized (mBotsRunner)
    {
      mBotsRunner.notifyAll();
    }
  }
 
  public static String getVersion()
  {
    if (null == sVersion)
    {
      synchronized (msVersionMonitor)
      {
        // check a second time since another thread could have modified
        // the version in the meantime
        if (null == sVersion)
        {
          ResourceFinderClasspath resource_finder = ResourceFinderClasspath.getInstance();
          URL            version_resource = resource_finder.getResource("DRONE_VERSION");
          if (version_resource != null)
          {
            try
            {
              sVersion = FileUtils.readString(version_resource);
            }
            catch (FileUtilsErrorException e)
            {
              sVersion = null;
            }
           
            if (sVersion != null)
            {
              sVersion = sVersion.trim();
            }
          }
          if (null == sVersion)
          {
            sVersion = "unknown version";
          }
        }
      }
    }
    return sVersion;
  }
}
TOP

Related Classes of com.uwyn.drone.Droned

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.