--- projects/cms/source/server/uk/org/iscream/cms/server/filter/FilterThread.java 2001/03/13 02:19:46 1.27 +++ projects/cms/source/server/uk/org/iscream/cms/server/filter/FilterThread.java 2001/03/13 16:25:57 1.28 @@ -19,7 +19,7 @@ import uk.ac.ukc.iscream.util.*; * waiting to be contacted. * * @author $Author: tdb $ - * @version $Id: FilterThread.java,v 1.27 2001/03/13 02:19:46 tdb Exp $ + * @version $Id: FilterThread.java,v 1.28 2001/03/13 16:25:57 tdb Exp $ */ public class FilterThread extends Thread{ @@ -28,7 +28,7 @@ public class FilterThread extends Thread{ /** * The current CVS revision of this class */ - public final String REVISION = "$Revision: 1.27 $"; + public final String REVISION = "$Revision: 1.28 $"; //---STATIC METHODS--- @@ -38,13 +38,11 @@ public class FilterThread extends Thread{ * Constructs an instance of a FilterThread * * @param queue the Queue this filter is using - * @param parent a CORBA reference to our parent filter */ - public FilterThread(Queue queue, Filter parent){ + public FilterThread(Queue queue){ // set the Thread name setName("filter.FilterThread"); - _parent = parent; _queue = queue; _logger.write(toString(), Logger.SYSINIT, "created"); } @@ -97,11 +95,20 @@ public class FilterThread extends Thread{ // skip the rest of this loop iteration continue; } - - // XMLPacket is ok, so run filters... + + // get parent + Filter parent; + try { + String parentFilterName = ConfigurationProxy.getInstance().getProperty(FilterMain.NAME, "Filter.parentFilter"); + parent = FilterHelper.narrow(_refman.getCORBARef("iscream.Filter." + parentFilterName)); + } catch (PropertyNotFoundException e) { + continue; + } + + // XMLPacket is ok, run filters... if(PluginFilterManager.getInstance().runFilters(packet)) { // and pass it on... - _parent.receiveXML(xml); + parent.receiveXML(xml); } else { // ... or filtered it @@ -131,11 +138,6 @@ public class FilterThread extends Thread{ //---ACCESSOR/MUTATOR METHODS--- //---ATTRIBUTES--- - - /** - * Our parent filter - */ - Filter _parent; /** * The Queue object @@ -158,6 +160,11 @@ public class FilterThread extends Thread{ * system logger that is being used. */ private Logger _logger = ReferenceManager.getInstance().getLogger(); + + /** + * A reference to the reference manager in use + */ + private ReferenceManager _refman = ReferenceManager.getInstance(); //---STATIC ATTRIBUTES---