diff --git a/org.adempiere.base/src/org/compiere/process/AdempiereServer.java b/org.adempiere.base/src/org/compiere/process/AdempiereServer.java deleted file mode 100644 index f43e895e4c..0000000000 --- a/org.adempiere.base/src/org/compiere/process/AdempiereServer.java +++ /dev/null @@ -1,257 +0,0 @@ -/****************************************************************************** - * Product: Adempiere ERP & CRM Smart Business Solution * - * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. * - * This program is free software; you can redistribute it and/or modify it * - * under the terms version 2 of the GNU General Public License as published * - * by the Free Software Foundation. This program is distributed in the hope * - * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * - * See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along * - * with this program; if not, write to the Free Software Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * - * For the text or an alternative of this public license, you may reach us * - * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * - * or via info@compiere.org or http://www.compiere.org/license.html * - *****************************************************************************/ -package org.compiere.process; - -import java.sql.Timestamp; -import java.util.logging.Level; - -import org.compiere.model.PO; -import org.compiere.util.CLogger; - - -/** - * Adempiere Server Base - * - * @author Jorg Janke - * @version $Id: AdempiereServer.java,v 1.2 2006/07/30 00:54:44 jjanke Exp $ - */ -public abstract class AdempiereServer extends Thread -{ - /** - * AdempiereServer - * @param name server name - */ - public AdempiereServer (String name) - { - super (s_threadGroup, name); - } // AdempiereServer - - /** Thread Group */ - private static ThreadGroup s_threadGroup = new ThreadGroup("AdempiereServer"); - - /** Logger */ - protected CLogger log = CLogger.getCLogger(getClass()); - /** Working Status */ - private volatile boolean m_working = false; - /** Working Count */ - private int m_count = 0; - /** Poll Count */ - private int m_pollCount = 0; - /** Working Time (ms) */ - private volatile int m_time = 0; - /** Work Start */ - private volatile long m_start = 0; - /** Last Work Start */ - private volatile long m_lastStart = 0; - /** Sleep Seconds */ - private int m_sleepSeconds = 10; - /** Processor Instance */ - protected PO p_processor = null; - /** Server can continue */ - private boolean m_canContinue = true; - - - /** - * Is Working - * @return true if working - */ - public boolean isWorking() - { - return m_working; - } // isWorking - - /** - * Get Poll Count - * @return number of polls - */ - public int getPollCount() - { - return m_pollCount; - } // getPollCount - - /** - * Get Work Count - * @return number of work runs - */ - public int getWorkCount() - { - return m_count; - } // getWorkCount - - /** - * Get Working Time - * @return working time in ms - */ - public int getWorkTime() - { - return m_time; - } // getWorkTime - - /** - * Get Start of Server - * @return start of server - */ - public Timestamp getStart() - { - if (m_start == 0) - return null; - return new Timestamp (m_start); - } // getStart - - /** - * Get Last Start of Server - * @return last start of server - */ - public Timestamp getLastStart() - { - if (m_lastStart == 0) - return null; - return new Timestamp (m_lastStart); - } // getLastStart - - /** - * Get Sleep Seconds - * @return sleep seconds - */ - public int getSleepSeconds () - { - return m_sleepSeconds; - } // getSleepSeconds - - /** - * Set Sleep Seconds - * @param sleepSeconds sleep seconds - */ - public void setSleepSeconds (int sleepSeconds) - { - m_sleepSeconds = sleepSeconds; - } // setSleepSeconds - - /** - * Set Server Processor - * @param processor processor - */ - public void setProcessor (PO processor) - { - p_processor = processor; - setName(getProcessorName()); - } // setProcessor - - - - /** - * Statistics - * @return info - */ - public String getStatistics () - { - StringBuilder sb = new StringBuilder (); - sb.append("Alive=").append(isAlive()) - .append(", Start=").append(getStart()) - .append(", WorkCount=").append(getWorkCount()) - .append(", WorkTime=").append(getWorkTime()) - .append(", PollCount=").append(getPollCount()) - .append(", Working=").append(isWorking()) - .append(", Last=").append(getLastStart()) - // .append(", SleepSec=").append(getSleepSeconds()) - ; - return sb.toString (); - } // toString - - /** - * String Representation - * @return info - */ - public String toString () - { - StringBuilder sb = new StringBuilder ("AdempiereServer["); - sb.append(getStatistics()).append ("]"); - return sb.toString (); - } // toString - - /************************************************************************** - * Run - Do the Work - * @see java.lang.Runnable#run() - */ - public final void run () - { - if (m_start == 0) - m_start = System.currentTimeMillis(); - - m_canContinue = true; - while (m_canContinue) - { - if (isInterrupted()) - return; - - /********************/ - m_lastStart = System.currentTimeMillis(); - m_working = true; - try - { - m_pollCount++; - if (canDoWork()) - { - m_canContinue = doWork(); - m_count++; - } - } - catch (Exception e) - { - log.log(Level.SEVERE, "run", e); - } - m_working = false; - long end = System.currentTimeMillis(); - m_time += (end - m_lastStart); - /********************/ - - if (isInterrupted()) - return; - - try - { - if (log.isLoggable(Level.FINE)) log.fine("sleeping ... " + m_sleepSeconds); - sleep (m_sleepSeconds*1000); - } - catch (InterruptedException e1) - { - log.warning("run - " + e1.getLocalizedMessage()); - return; - } - } // while - } // run - - /** - * Get Processor Name - * @return Processor Name - */ - public abstract String getProcessorName(); - - /** - * Is there work for the Worker? - * @return true if doWork should be called - */ - public abstract boolean canDoWork(); - - /** - * Worker - do the work - * @return true if worker can continue - */ - public abstract boolean doWork(); - - -} // AdempiereServer diff --git a/org.adempiere.base/src/org/compiere/process/AdempiereService.java b/org.adempiere.base/src/org/compiere/process/AdempiereService.java deleted file mode 100644 index 2f9d2a277b..0000000000 --- a/org.adempiere.base/src/org/compiere/process/AdempiereService.java +++ /dev/null @@ -1,252 +0,0 @@ -/****************************************************************************** - * Product: Adempiere ERP & CRM Smart Business Solution * - * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. * - * This program is free software; you can redistribute it and/or modify it * - * under the terms version 2 of the GNU General Public License as published * - * by the Free Software Foundation. This program is distributed in the hope * - * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * - * See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along * - * with this program; if not, write to the Free Software Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * - * For the text or an alternative of this public license, you may reach us * - * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * - * or via info@compiere.org or http://www.compiere.org/license.html * - *****************************************************************************/ -package org.compiere.process; - -import java.util.logging.Level; - -import org.compiere.model.PO; - -/** - * Adempiere Service. - * Instanciates and Controls the Adempiere Server, - * which actually does the work in separate thread - * - * @author Jorg Janke - * @version $Id: AdempiereService.java,v 1.2 2006/07/30 00:54:44 jjanke Exp $ - */ -public class AdempiereService extends StateEngine -{ - /** - * Adempiere Service - * @param processor Processor instance - * @param serverClass server class - */ - public AdempiereService (PO processor, Class serverClass) - { - super (); - m_processor = processor; - m_serverClass = serverClass; - } // AdempiereServer - - /** Adempiere Server(s) */ - private AdempiereServer m_server = null; - /** Adempiere Server Class */ - private Class m_serverClass = null; - /** Adempiere Server Processor Instance */ - private PO m_processor = null; - - - /** - * Get Compier Server - * @return Adempiere Server - */ - public AdempiereServer getCompierServer() - { - getState(); - return m_server; - } // getAdempiereServer - - /** - * Get/Check State - * @return state - */ - public String getState () - { - if (isRunning()) - { - if (m_server == null || !m_server.isAlive()) - terminate(); - } - return super.getState (); - } // getState - - /** - * Start: not started -> running - * @return true if set to running - */ - public boolean start() - { - if (!super.start()) - return false; - - boolean ok = false; - try - { - m_server = (AdempiereServer)m_serverClass.newInstance(); - m_server.setProcessor (m_processor); - m_server.start(); - ok = true; - } - catch (Exception e) - { - log.log(Level.SEVERE, "start", e); - ok = false; - } - if (!ok) - return abort(); - if (log.isLoggable(Level.INFO)) log.info("start - " + ok); - getState(); - return ok; - } // start - - /** - * Resume: suspended -> running - * @return true if set to sunning - */ - public boolean resume() - { - if (!super.resume()) - return false; - - boolean ok = false; - try - { - m_server = (AdempiereServer)m_serverClass.newInstance(); - m_server.setProcessor (m_processor); - m_server.start(); - ok = true; - } - catch (Exception e) - { - log.log(Level.SEVERE, "resume", e); - ok = false; - } - if (!ok) - return abort(); - if (log.isLoggable(Level.INFO)) log.info("resume - " + ok); - getState(); - return ok; - } // resume - - - /** - * Complete: running -> completed - * @return true if set to completed - */ - public boolean complete() - { - if (!super.complete()) - return false; - - boolean ok = false; - if (m_server != null && m_server.isAlive()) - { - try - { - m_server.interrupt(); - m_server.join(); - ok = true; - } - catch (Exception e) - { - return abort(); - } - } - if (log.isLoggable(Level.INFO)) log.info("complete - " + ok); - return ok; - } // complete - - /** - * Suspend: running -> suspended - * @return true if suspended - */ - public boolean suspend() - { - if (!super.suspend()) - return false; - - boolean ok = false; - if (m_server != null && m_server.isAlive()) - { - try - { - m_server.interrupt(); - m_server.join(); - ok = true; - } - catch (Exception e) - { - return abort(); - } - } - if (log.isLoggable(Level.INFO)) log.info("suspend - " + ok); - return ok; - } // suspend - - - /** - * Abort: open -> aborted - * @return true if set to aborted - */ - public boolean abort() // raises CannotStop, NotRunning - { - if (super.abort()) - { - if (m_server != null && m_server.isAlive()) - { - try - { - m_server.interrupt(); - } - catch (Exception e) - { - } - } - log.info("abort - done"); - return true; - } - return false; - } // abort - - /** - * Terminate (System Error): open -> terminated - * @return true if set to terminated - */ - public boolean terminate() - { - if (super.terminate()) - { - if (m_server != null && m_server.isAlive()) - { - try - { - m_server.interrupt(); - } - catch (Exception e) - { - } - } - log.info("terminate - done"); - return true; - } - return false; - } // terminate - - /** - * String Representation - * @return info - */ - public String toString () - { - StringBuilder sb = new StringBuilder ("AdempiereService["); - sb.append(getStateInfo()) - .append(" - ").append(m_server); - sb.append ("]"); - return sb.toString (); - } // toString - -} // AdempiereService