@Override
    public synchronized ExecutorService getExecutorService() {
        if (threadPoolExecutor == null) {
            threadPoolExecutor = (ThreadPoolExecutor) ExecutorServiceUtil.newThreadPoolExecutor();
        }
        return threadPoolExecutor;
    }
@Test
    public void contextThreadpoolIsDaemonized() throws InterruptedException {
        ExecutorService execSvc = context.getExecutorService();
        final ArrayList<Thread> executingThreads = new ArrayList<Thread>();
        execSvc.execute(new Runnable() {
            @Override
            public void run() {
                synchronized (executingThreads) {
                    executingThreads.add(Thread.currentThread());
                    executingThreads.notifyAll();
                }
            }
        });
        synchronized (executingThreads) {
            while (executingThreads.isEmpty()) {
                executingThreads.wait();
            }
        }
        Assertions.assertTrue(executingThreads.get(0).isDaemon(), "executing thread should be a daemon thread.");
    }