class TrackerRuleEngineMessageManager extends BaseMessageManager {

    @JmsListener( destination = Topics.TRACKER_IMPORT_RULE_ENGINE_TOPIC_NAME, containerFactory = "jmsQueueListenerContainerFactory" )
    public void consume( TextMessage message )
        throws JMSException, IOException
    {
        TrackerSideEffectDataBundle bundle = toBundle( message );

        if ( bundle == null )
        {
            return;
        }

        JobConfiguration jobConfiguration = new JobConfiguration( "", JobType.TRACKER_IMPORT_RULE_ENGINE_JOB,
            bundle.getAccessedBy(), true );

        bundle.setJobConfiguration( jobConfiguration );

        TrackerRuleEngineThread notificationThread = trackerRuleEngineThreadObjectFactory.getObject();

        notificationThread.setSideEffectDataBundle( bundle );

        executeJob( notificationThread );
    }

    public  TrackerRuleEngineMessageManager(
        MessageManager messageManager,
        SchedulingManager schedulingManager,
        RenderService renderService,
        ObjectFactory<TrackerRuleEngineThread> trackerRuleEngineThreadObjectFactory );

}