@@ -71,6 +71,7 @@ public class ConsumerLoader
7171 private List <AbstractEventConsumer <?>> eventConsumers = new ArrayList <AbstractEventConsumer <?>>();
7272 private List <AbstractConsumer > crudConsumers = new ArrayList <AbstractConsumer >();
7373 private List <AbstractFunctionalServiceConsumer > fsServiceConsumers = new ArrayList <AbstractFunctionalServiceConsumer >();
74+ private List <AbstractNamedQueryConsumer > nqConsumers = new ArrayList <AbstractNamedQueryConsumer >();
7475
7576 private List <QueueReaderInfo <RemoteMessageQueueReader >> msgReaderServices = new ArrayList <QueueReaderInfo <RemoteMessageQueueReader >>();
7677
@@ -233,6 +234,12 @@ private void shutdownConsumer()
233234 consumer .finalise ();
234235 }
235236
237+ for (AbstractNamedQueryConsumer consumer : nqConsumers )
238+ {
239+ logger .debug ("Shutdown " + consumer .getClass ().getSimpleName ());
240+ consumer .finalise ();
241+ }
242+
236243 if (getConsumerEnvironment ().getEventsEnabled () || (getConsumerEnvironment ().getDelayedEnabled ()))
237244 {
238245 logger .debug ("Shutdown Event Subscription Connector..." );
@@ -307,6 +314,11 @@ private boolean initAsyncProcessor()
307314 addServices (allLocalQueueCRUDServices , consumer .getAllApprovedCRUDServices (), consumer .getLocalConsumerQueue ());
308315 }
309316
317+ for (AbstractNamedQueryConsumer consumer : nqConsumers )
318+ {
319+ addServices (allLocalQueueCRUDServices , consumer .getAllApprovedCRUDServices (), consumer .getLocalConsumerQueue ());
320+ }
321+
310322 for (AbstractEventConsumer <?> consumer : eventConsumers )
311323 {
312324 addServices (allLocalQueueCRUDServices , consumer .getAllApprovedCRUDServices (), consumer .getLocalConsumerQueue ());
@@ -400,7 +412,7 @@ private QueueReaderInfo<RemoteMessageQueueReader> startRemoteMessageReaderThread
400412 return queueReaderInfo ;
401413 }
402414
403- private void initialiseConsumers (AdvancedProperties adapterProps )
415+ private void initialiseConsumers (AdvancedProperties adapterProps )
404416 {
405417 List <String > classList = adapterProps .getFromCommaSeparated ("consumer.classes" );
406418 String basePackageName = makePackageName (adapterProps .getPropertyAsString ("consumer.basePackageName" , "" ));
@@ -417,6 +429,9 @@ private void initialiseConsumers(AdvancedProperties adapterProps)
417429 // Instantiate class.
418430 Object classObj = ct .newInstance ();
419431
432+ // Init local queues. Must be called here as it is not part of the constructor.
433+ ((BaseConsumer )classObj ).initLocalConsumerQueues ();
434+
420435 // Set properties and add it to correct structure
421436 if (classObj instanceof AbstractEventConsumer )
422437 {
@@ -433,9 +448,14 @@ else if (classObj instanceof AbstractFunctionalServiceConsumer)
433448 logger .debug ("Added " + classObj .getClass ().getSimpleName () + " to fsServiceConsumers list" );
434449 fsServiceConsumers .add ((AbstractFunctionalServiceConsumer ) classObj );
435450 }
451+ else if (classObj instanceof AbstractNamedQueryConsumer )
452+ {
453+ logger .debug ("Added " + classObj .getClass ().getSimpleName () + " to nqConsumers list" );
454+ nqConsumers .add ((AbstractNamedQueryConsumer ) classObj );
455+ }
436456 else
437457 {
438- logger .error ("Consumer class " + className + " doesn't extend AbstractConsumer, AbstractEventConsumer of AbstractFunctionalServiceConsumer. Cannot initialse the Consumer." );
458+ logger .error ("Consumer class " + className + " doesn't extend AbstractConsumer, AbstractEventConsumer, AbstractFunctionalServiceConsumer or AbstractNamedQueryConsumer . Cannot initialse the Consumer." );
439459 }
440460 }
441461 catch (Exception ex )
0 commit comments