public ExecutorService getSharedExecutor() {
        return sharedExecutor;
    }
@Test
    void testSharedExecutor() throws Exception {
        ExecutorService sharedExecutor = frameworkExecutorRepository.getSharedExecutor();
        CountDownLatch latch = new CountDownLatch(3);
        CountDownLatch latch1 = new CountDownLatch(1);
        sharedExecutor.execute(() -> {
            latch.countDown();
            try {
                latch1.await();
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        });
        sharedExecutor.execute(() -> {
            latch.countDown();
            try {
                latch1.await();
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        });
        sharedExecutor.submit(() -> {
            latch.countDown();
            try {
                latch1.await();
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        });

        await().until(() -> latch.getCount() == 0);
        Assertions.assertEquals(3, ((ThreadPoolExecutor) sharedExecutor).getActiveCount());
        latch1.countDown();
        await().until(() -> ((ThreadPoolExecutor) sharedExecutor).getActiveCount() == 0);
        Assertions.assertEquals(3, ((ThreadPoolExecutor) sharedExecutor).getCompletedTaskCount());
    }