From: <jbo...@li...> - 2006-07-05 10:40:13
|
Author: estebanschifman Date: 2006-07-05 06:40:08 -0400 (Wed, 05 Jul 2006) New Revision: 4908 Modified: labs/jbossesb/trunk/ESBCore/listeners/src/org/jboss/soa/esb/listeners/BetterDirListener.java Log: Update with changes made while the SVN repository was restructured Modified: labs/jbossesb/trunk/ESBCore/listeners/src/org/jboss/soa/esb/listeners/BetterDirListener.java =================================================================== --- labs/jbossesb/trunk/ESBCore/listeners/src/org/jboss/soa/esb/listeners/BetterDirListener.java 2006-07-05 10:16:58 UTC (rev 4907) +++ labs/jbossesb/trunk/ESBCore/listeners/src/org/jboss/soa/esb/listeners/BetterDirListener.java 2006-07-05 10:40:08 UTC (rev 4908) @@ -24,7 +24,12 @@ package org.jboss.soa.esb.listeners; import java.io.*; +import java.lang.reflect.Constructor; import java.net.*; +import java.util.Observable; +import java.util.Observer; + +import org.apache.log4j.Logger; import org.jboss.soa.esb.util.*; import org.jboss.soa.esb.helpers.*; import org.jboss.soa.esb.processors.*; @@ -83,7 +88,7 @@ m_oChParms.addElemChild(oThisProc); new Thread(m_oThrGrp, - new ChildProcess(m_oExecClass, this, m_oChParms)).start(); + new FileChildProcess(m_oExecClass, this, m_oChParms)).start(); Thread.sleep(500); } } //________________________________ @@ -120,35 +125,15 @@ m_oFFilt = new FileEndsWith(sAtt); - do - { - sAtt = p_oP.getAttr(PARM_FILE_PROCESSOR_CLASS); - m_oExecClass = null; - if (null == sAtt) - { throw new Exception(formatLogMsg( - m_sb.append("Missing fileProcessorClass attribute"). - toString())); - } - try - { - m_oExecClass = Class.forName(sAtt); - } - catch (ClassNotFoundException e) - { throw new Exception(formatLogMsg( - m_sb.append("Class ").append(sAtt) - .append(" not found in classpath").toString())); - } - try - { - m_oExecClass.getConstructor(new Class[] {DomElement.class}); - } - catch (NoSuchMethodException eN) - { throw new Exception(formatLogMsg( - m_sb.append("No appropriate constructor") - .append(" (DomElement) found for class").toString())); - } + sAtt = p_oP.getAttr(PARM_FILE_PROCESSOR_CLASS); + m_oExecClass = null; + if (null == sAtt) + { throw new Exception(formatLogMsg( + m_sb.append("Missing fileProcessorClass attribute"). + toString())); } - while (false); + m_oExecClass = super.checkActionClass(sAtt); + } //________________________________ @@ -170,4 +155,30 @@ } //___________________________________________________ } //______________________________________________________ + protected static class FileChildProcess extends Observable implements Runnable + { private Class m_oExecClass; + private DomElement m_oParms; + private Logger m_oLogger; + public FileChildProcess(Class p_oExec, Observer p_oObs, DomElement p_oP) + { m_oLogger = EsbUtil.getDefaultLogger(this.getClass()); + m_oExecClass = p_oExec; + this.addObserver(p_oObs); + m_oParms = p_oP; + setChanged(); + notifyObservers(new Integer(1)); + } //__________________________________ + + public void run() + { try + { Constructor oCnst = m_oExecClass.getConstructor(new Class[] {DomElement.class}); + Object oProc = oCnst.newInstance(new Object[] {m_oParms}); + ((EsbFileProcessor)oProc).execute(); + } + catch (Exception e) { m_oLogger.error("run() FAILED",e); } + + setChanged(); + notifyObservers(new Integer(-1)); + } //__________________________________ + } //______________________________________________________ + } //____________________________________________________________________________ |