Search in sources :

Example 21 with PeriodicTrigger

use of org.springframework.scheduling.support.PeriodicTrigger in project webofneeds by researchstudio-sat.

the class BotTrigger method reschedule.

private synchronized void reschedule() {
    if (cancelableTask != null) {
        cancelableTask.cancel(true);
    }
    // make the trigger
    PeriodicTrigger myTrigger = new PeriodicTrigger(getInterval().toMillis());
    myTrigger.setInitialDelay(getInterval().toMillis());
    // schedule a task that publishes the BotTriggerEvent
    BotTrigger.this.cancelableTask = context.getTaskScheduler().schedule(new Runnable() {

        @Override
        public void run() {
            BotTrigger.this.context.getEventBus().publish(new BotTriggerEvent(BotTrigger.this));
        }
    }, myTrigger);
}
Also used : PeriodicTrigger(org.springframework.scheduling.support.PeriodicTrigger)

Example 22 with PeriodicTrigger

use of org.springframework.scheduling.support.PeriodicTrigger in project webofneeds by researchstudio-sat.

the class BAAtomicCCActiveNotCompletingBotTest method before.

@Before
public void before() {
    if (!run) {
        // create a bot instance and auto-wire it
        AutowireCapableBeanFactory beanFactory = applicationContext.getAutowireCapableBeanFactory();
        bot = (MyBot) beanFactory.autowire(MyBot.class, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, false);
        Object botBean = beanFactory.initializeBean(bot, "mybot");
        bot = (MyBot) botBean;
        // the bot also needs a trigger so its act() method is called regularly.
        // (there is no trigger bean in the context)
        PeriodicTrigger trigger = new PeriodicTrigger(ACT_LOOP_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
        trigger.setInitialDelay(ACT_LOOP_INITIAL_DELAY_MILLIS);
        bot.setTrigger(trigger);
        logger.info("starting test case testBAAtomicCCActiveNotCompletingBot");
        // adding the bot to the bot manager will cause it to be initialized.
        // at that point, the trigger starts.
        botManager.setShutdownApplicationContextIfWorkDone(false);
        botManager.addBot(bot);
        staticBotManager = botManager;
        // and both threads continue.
        try {
            bot.getBarrier().await();
        } catch (InterruptedException e) {
            // To change body of catch statement use File | Settings | File Templates.
            e.printStackTrace();
        } catch (BrokenBarrierException e) {
            // To change body of catch statement use File | Settings | File Templates.
            e.printStackTrace();
        }
        run = true;
    }
}
Also used : BrokenBarrierException(java.util.concurrent.BrokenBarrierException) AutowireCapableBeanFactory(org.springframework.beans.factory.config.AutowireCapableBeanFactory) PeriodicTrigger(org.springframework.scheduling.support.PeriodicTrigger) Before(org.junit.Before)

Example 23 with PeriodicTrigger

use of org.springframework.scheduling.support.PeriodicTrigger in project webofneeds by researchstudio-sat.

the class BAAtomicCCAdditionalParticipantsBotTest method before.

/**
 * This is run before each @TestD method.
 */
@Before
public void before() {
    // create a bot instance and auto-wire it
    // create a bot instance and auto-wire it
    AutowireCapableBeanFactory beanFactory = applicationContext.getAutowireCapableBeanFactory();
    this.bot = (MyBot) beanFactory.autowire(MyBot.class, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, false);
    Object botBean = beanFactory.initializeBean(this.bot, "mybot");
    this.bot = (MyBot) botBean;
    // the bot also needs a trigger so its act() method is called regularly.
    // (there is no trigger bean in the context)
    PeriodicTrigger trigger = new PeriodicTrigger(ACT_LOOP_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
    trigger.setInitialDelay(ACT_LOOP_INITIAL_DELAY_MILLIS);
    this.bot.setTrigger(trigger);
}
Also used : AutowireCapableBeanFactory(org.springframework.beans.factory.config.AutowireCapableBeanFactory) PeriodicTrigger(org.springframework.scheduling.support.PeriodicTrigger) Before(org.junit.Before)

Example 24 with PeriodicTrigger

use of org.springframework.scheduling.support.PeriodicTrigger in project webofneeds by researchstudio-sat.

the class BAAtomicCCBotTest method before.

@Before
public void before() {
    if (!run) {
        // create a bot instance and auto-wire it
        AutowireCapableBeanFactory beanFactory = applicationContext.getAutowireCapableBeanFactory();
        bot = (MyBot) beanFactory.autowire(MyBot.class, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, false);
        Object botBean = beanFactory.initializeBean(bot, "mybot");
        bot = (MyBot) botBean;
        // the bot also needs a trigger so its act() method is called regularly.
        // (there is no trigger bean in the context)
        PeriodicTrigger trigger = new PeriodicTrigger(ACT_LOOP_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
        trigger.setInitialDelay(ACT_LOOP_INITIAL_DELAY_MILLIS);
        bot.setTrigger(trigger);
        logger.info("starting test case testBAAtomicCCBot");
        // adding the bot to the bot manager will cause it to be initialized.
        // at that point, the trigger starts.
        botManager.addBot(bot);
        // and both threads continue.
        try {
            bot.getBarrier().await();
        } catch (InterruptedException e) {
            // To change body of catch statement use File | Settings | File Templates.
            e.printStackTrace();
        } catch (BrokenBarrierException e) {
            // To change body of catch statement use File | Settings | File Templates.
            e.printStackTrace();
        }
        run = true;
    }
}
Also used : BrokenBarrierException(java.util.concurrent.BrokenBarrierException) AutowireCapableBeanFactory(org.springframework.beans.factory.config.AutowireCapableBeanFactory) PeriodicTrigger(org.springframework.scheduling.support.PeriodicTrigger) Before(org.junit.Before)

Example 25 with PeriodicTrigger

use of org.springframework.scheduling.support.PeriodicTrigger in project webofneeds by researchstudio-sat.

the class BAAtomicCCCompletingFailingBotTest method before.

@Before
public void before() {
    if (!run) {
        // create a bot instance and auto-wire it
        AutowireCapableBeanFactory beanFactory = applicationContext.getAutowireCapableBeanFactory();
        bot = (MyBot) beanFactory.autowire(MyBot.class, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, false);
        Object botBean = beanFactory.initializeBean(bot, "mybot");
        bot = (MyBot) botBean;
        // the bot also needs a trigger so its act() method is called regularly.
        // (there is no trigger bean in the context)
        PeriodicTrigger trigger = new PeriodicTrigger(ACT_LOOP_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
        trigger.setInitialDelay(ACT_LOOP_INITIAL_DELAY_MILLIS);
        bot.setTrigger(trigger);
        logger.info("starting test case testBAAtomicCCCompletingFailingBot");
        // adding the bot to the bot manager will cause it to be initialized.
        // at that point, the trigger starts.
        botManager.setShutdownApplicationContextIfWorkDone(false);
        botManager.addBot(bot);
        staticBotManager = botManager;
        // and both threads continue.
        try {
            bot.getBarrier().await();
        } catch (InterruptedException e) {
            // To change body of catch statement use File | Settings | File Templates.
            e.printStackTrace();
        } catch (BrokenBarrierException e) {
            // To change body of catch statement use File | Settings | File Templates.
            e.printStackTrace();
        }
        run = true;
    }
}
Also used : BrokenBarrierException(java.util.concurrent.BrokenBarrierException) AutowireCapableBeanFactory(org.springframework.beans.factory.config.AutowireCapableBeanFactory) PeriodicTrigger(org.springframework.scheduling.support.PeriodicTrigger) Before(org.junit.Before)

Aggregations

PeriodicTrigger (org.springframework.scheduling.support.PeriodicTrigger)42 AutowireCapableBeanFactory (org.springframework.beans.factory.config.AutowireCapableBeanFactory)20 Before (org.junit.Before)19 BrokenBarrierException (java.util.concurrent.BrokenBarrierException)14 Test (org.junit.Test)14 QueueChannel (org.springframework.integration.channel.QueueChannel)10 PollerMetadata (org.springframework.integration.scheduling.PollerMetadata)10 CountDownLatch (java.util.concurrent.CountDownLatch)8 BeanFactory (org.springframework.beans.factory.BeanFactory)6 Message (org.springframework.messaging.Message)6 SourcePollingChannelAdapter (org.springframework.integration.endpoint.SourcePollingChannelAdapter)5 GenericMessage (org.springframework.messaging.support.GenericMessage)5 NullChannel (org.springframework.integration.channel.NullChannel)4 TestApplicationContext (org.springframework.integration.test.util.TestUtils.TestApplicationContext)4 Trigger (org.springframework.scheduling.Trigger)4 ThreadPoolTaskScheduler (org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler)4 ArrayList (java.util.ArrayList)3 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)3 DirectFieldAccessor (org.springframework.beans.DirectFieldAccessor)3 ConfigurableBeanFactory (org.springframework.beans.factory.config.ConfigurableBeanFactory)3