+ private static ListeningExecutorService NOTIFICATION_EXECUTOR = null;
+ private static ListeningExecutorService COMMIT_EXECUTOR = null;
+
+ public static synchronized final ListeningExecutorService getDefaultNotificationExecutor() {
+ if (NOTIFICATION_EXECUTOR == null) {
+ NOTIFICATION_EXECUTOR = createNamedExecutor("md-sal-binding-notification-%d");
+ }
+ return NOTIFICATION_EXECUTOR;
+ }
+
+ public static synchronized final ListeningExecutorService getDefaultCommitExecutor() {
+ if (COMMIT_EXECUTOR == null) {
+ COMMIT_EXECUTOR = createNamedExecutor("md-sal-binding-commit-%d");
+ }
+
+ return COMMIT_EXECUTOR;
+ }
+
+ private static ListeningExecutorService createNamedExecutor(String format) {
+ ThreadFactory factory = new ThreadFactoryBuilder().setDaemon(true).setNameFormat(format).build();
+ ExecutorService executor = Executors.newCachedThreadPool(factory);
+ return MoreExecutors.listeningDecorator(executor);
+
+ }
+