public void TestPlugins()
        {
            StringBuilder result = new StringBuilder();

            IDictionary<string, ISchedulerPlugin> data = new Dictionary<string, ISchedulerPlugin>();
            data["TestPlugin"] = new TestPlugin(result);

            IThreadPool threadPool = new SimpleThreadPool(1, ThreadPriority.Normal);
            threadPool.Initialize();
            DirectSchedulerFactory.Instance.CreateScheduler(
                "MyScheduler", "Instance1", threadPool,
                new RAMJobStore(), data,
                TimeSpan.Zero);

            IScheduler scheduler = DirectSchedulerFactory.Instance.GetScheduler("MyScheduler");
            scheduler.Start();
            scheduler.Shutdown();

            Assert.AreEqual("TestPlugin|MyScheduler|Start|Shutdown", result.ToString());
        }
 /// <summary>
 /// Creates an in memory job store (<see cref="RAMJobStore" />)
 /// The thread priority is set to Thread.NORM_PRIORITY
 /// </summary>
 /// <param name="maxThreads">The number of threads in the thread pool</param>
 public virtual void CreateVolatileScheduler(int maxThreads)
 {
     SimpleThreadPool threadPool = new SimpleThreadPool(maxThreads, ThreadPriority.Normal);
     threadPool.Initialize();
     IJobStore jobStore = new RAMJobStore();
     CreateScheduler(threadPool, jobStore);
 }