diff --git a/src/main/java/teetime/framework/AbstractService.java b/src/main/java/teetime/framework/AbstractService.java new file mode 100644 index 0000000000000000000000000000000000000000..429b71b33ea47095c4ee51ba7dbd67d50a923b00 --- /dev/null +++ b/src/main/java/teetime/framework/AbstractService.java @@ -0,0 +1,7 @@ +package teetime.framework; + +public abstract class AbstractService<T> { + + abstract void merge(T target, T source); + +} diff --git a/src/main/java/teetime/framework/IService.java b/src/main/java/teetime/framework/IService.java deleted file mode 100644 index 8f5f6935ebe04d4f3eefc20f22cce1c29c3a5359..0000000000000000000000000000000000000000 --- a/src/main/java/teetime/framework/IService.java +++ /dev/null @@ -1,7 +0,0 @@ -package teetime.framework; - -public interface IService { - - public void merge(IService first, IService second); - -} diff --git a/src/main/java/teetime/framework/ThreadService.java b/src/main/java/teetime/framework/ThreadService.java index deab96c48bbcd3b092dbf07e7c5aaaf3b04a3f33..47f3e81cca1ac7f6480024f7c4b51e183e5b6036 100644 --- a/src/main/java/teetime/framework/ThreadService.java +++ b/src/main/java/teetime/framework/ThreadService.java @@ -14,7 +14,13 @@ import teetime.framework.signal.InitializingSignal; import teetime.util.ThreadThrowableContainer; import teetime.util.framework.concurrent.SignalingCounter; -class ThreadService implements IService { +/** + * A Service which manages thread creation and running. + * + * @author Nelson Tavares de Sousa + * + */ +class ThreadService extends AbstractService<ThreadService> { private Map<Stage, String> threadableStages = new HashMap<Stage, String>(); @@ -75,7 +81,7 @@ class ThreadService implements IService { return thread; } - public void addThreadableStage(final Stage stage, final String threadName) { + void addThreadableStage(final Stage stage, final String threadName) { if (this.threadableStages.put(stage, threadName) != null) { LOGGER.warn("Stage " + stage.getId() + " was already marked as threadable stage."); } @@ -145,12 +151,7 @@ class ThreadService implements IService { } } - @Override - public void merge(final IService first, final IService second) { - - } - - public Map<Stage, String> getThreadableStages() { + Map<Stage, String> getThreadableStages() { return threadableStages; } @@ -158,4 +159,10 @@ class ThreadService implements IService { this.threadableStages = threadableStages; } + @Override + void merge(final ThreadService target, final ThreadService source) { + // TODO Auto-generated method stub + + } + } diff --git a/src/main/java/teetime/framework/ThreadServiceB.java b/src/main/java/teetime/framework/ThreadServiceB.java deleted file mode 100644 index aca4cba953e6db6115f0bb094b2d22170e36bde1..0000000000000000000000000000000000000000 --- a/src/main/java/teetime/framework/ThreadServiceB.java +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://christianwulf.github.io/teetime) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package teetime.framework; - -public class ThreadServiceB { - - public Runnable startWithinNewThread(final Stage stage) { - Runnable runnable = wrap(stage); - Thread thread = new Thread(runnable); - thread.start(); - return runnable; - } - - private AbstractRunnableStage wrap(final Stage stage) { - if (stage.getInputPorts().size() > 0) { - return new RunnableConsumerStage(stage); - } - return new RunnableProducerStage(stage); - } -}