@Override
	public void execute(Runnable command) {
		taskExecutor.execute(new RunnableWrapper<>(command, contextGetter, contextSetter));
	}
@Test
	public void testExecute() {
		TEST_THREAD_LOCAL.set(TEST);
		ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
		executor.initialize();
		AtomicReference<Boolean> result = new AtomicReference<>(false);
		CountDownLatch latch = new CountDownLatch(1);
		TaskExecutorWrapper<String> taskExecutorWrapper = new TaskExecutorWrapper<>(
				executor, TEST_THREAD_LOCAL::get, TEST_THREAD_LOCAL::set);
		taskExecutorWrapper.execute(() -> {
			result.set(TEST.equals(TEST_THREAD_LOCAL.get()));
			latch.countDown();
		});
		try {
			latch.await();
			assertThat(result.get()).isTrue();
		}
		catch (InterruptedException e) {
			fail(e.getMessage());
		}
	}