@Override
    public void shutdown() {
        Collection<ShutdownAwarePlugin> shutdownAwarePluginList = threadPoolPluginManager.getShutdownAwarePluginList();
        shutdownAwarePluginList.forEach(aware -> aware.beforeShutdown(this));
        super.shutdown();
        shutdownAwarePluginList.forEach(aware -> aware.afterShutdown(this, Collections.emptyList()));
    }
@Test
    public void testInvokeTestShutdownAwarePluginWhenShutdown() throws InterruptedException {
        TestShutdownAwarePlugin plugin = new TestShutdownAwarePlugin();
        executor.register(plugin);
        executor.shutdown();
        executor.submit(() -> {
            throw new IllegalArgumentException("???");
        });
        if (executor.awaitTermination(500L, TimeUnit.MILLISECONDS)) {
            Assert.assertEquals(3, plugin.getInvokeCount().get());
        }
    }