From b03181f9053522b7d5513624dcd75fe530ca037b Mon Sep 17 00:00:00 2001
From: Christian Wulf <chw@informatik.uni-kiel.de>
Date: Mon, 16 Jun 2014 13:23:12 +0200
Subject: [PATCH] restructured packages

---
 results/overhead-findings.txt                  |  9 +++++++++
 .../MethodCallThroughputAnalysis1.java         |  5 +++++
 .../MethodCallThroughputAnalysis2.java         |  6 ++++++
 .../MethodCallThroughputAnalysis3.java         |  5 +++++
 .../MethodCallThroughputAnalysis4.java         |  5 +++++
 .../MethodCallThroughputAnalysis5.java         |  5 +++++
 .../MethodCallThroughputAnalysis6.java         |  5 +++++
 .../MethodCallThroughputAnalysis7.java         |  5 +++++
 .../MethodCallThroughputAnalysis8.java         |  5 +++++
 .../MethodCallThroughputAnalysis9.java         |  6 ++++++
 .../methodcall/{ => stage}/CollectorSink.java  |  3 ++-
 .../methodcall/{ => stage}/NoopFilter.java     |  5 +++--
 .../methodcall/{ => stage}/ObjectProducer.java |  3 ++-
 .../methodcall/{ => stage}/Pipeline.java       | 18 ++++++++++++------
 .../{ => stage}/StartTimestampFilter.java      |  3 ++-
 .../{ => stage}/StopTimestampFilter.java       |  3 ++-
 16 files changed, 79 insertions(+), 12 deletions(-)
 create mode 100644 results/overhead-findings.txt
 rename src/test/java/teetime/examples/throughput/methodcall/{ => stage}/CollectorSink.java (94%)
 rename src/test/java/teetime/examples/throughput/methodcall/{ => stage}/NoopFilter.java (88%)
 rename src/test/java/teetime/examples/throughput/methodcall/{ => stage}/ObjectProducer.java (96%)
 rename src/test/java/teetime/examples/throughput/methodcall/{ => stage}/Pipeline.java (87%)
 rename src/test/java/teetime/examples/throughput/methodcall/{ => stage}/StartTimestampFilter.java (93%)
 rename src/test/java/teetime/examples/throughput/methodcall/{ => stage}/StopTimestampFilter.java (93%)

diff --git a/results/overhead-findings.txt b/results/overhead-findings.txt
new file mode 100644
index 00000000..888c4d3e
--- /dev/null
+++ b/results/overhead-findings.txt
@@ -0,0 +1,9 @@
+[increases overhead]
+-for loop with list vs. array (due to new instantiation of iterator)
+-for loop with super type vs. concrete type (due to less JIT optimization possibilities)
+-
+
+[irrelevant w.r.t. overhead]
+-foreach vs. index-based iteration
+-iterative vs. recursive execution
+-
\ No newline at end of file
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis1.java b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis1.java
index f85dea67..e9955067 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis1.java
+++ b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis1.java
@@ -19,6 +19,11 @@ import java.util.List;
 import java.util.concurrent.Callable;
 
 import teetime.examples.throughput.TimestampObject;
+import teetime.examples.throughput.methodcall.stage.CollectorSink;
+import teetime.examples.throughput.methodcall.stage.NoopFilter;
+import teetime.examples.throughput.methodcall.stage.ObjectProducer;
+import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
+import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
 import teetime.framework.core.Analysis;
 
 /**
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis2.java b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis2.java
index 330bda0b..fb0cf885 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis2.java
+++ b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis2.java
@@ -19,6 +19,12 @@ import java.util.List;
 import java.util.concurrent.Callable;
 
 import teetime.examples.throughput.TimestampObject;
+import teetime.examples.throughput.methodcall.stage.CollectorSink;
+import teetime.examples.throughput.methodcall.stage.NoopFilter;
+import teetime.examples.throughput.methodcall.stage.ObjectProducer;
+import teetime.examples.throughput.methodcall.stage.Pipeline;
+import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
+import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
 import teetime.framework.core.Analysis;
 import teetime.util.list.CommittableQueue;
 import teetime.util.list.CommittableResizableArrayQueue;
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis3.java b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis3.java
index 29b7a0ab..e40e3bb5 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis3.java
+++ b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis3.java
@@ -21,6 +21,11 @@ import java.util.List;
 import java.util.concurrent.Callable;
 
 import teetime.examples.throughput.TimestampObject;
+import teetime.examples.throughput.methodcall.stage.CollectorSink;
+import teetime.examples.throughput.methodcall.stage.NoopFilter;
+import teetime.examples.throughput.methodcall.stage.ObjectProducer;
+import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
+import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
 import teetime.framework.core.Analysis;
 
 /**
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis4.java b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis4.java
index eaf0c945..f60c0838 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis4.java
+++ b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis4.java
@@ -21,6 +21,11 @@ import java.util.List;
 import java.util.concurrent.Callable;
 
 import teetime.examples.throughput.TimestampObject;
+import teetime.examples.throughput.methodcall.stage.CollectorSink;
+import teetime.examples.throughput.methodcall.stage.NoopFilter;
+import teetime.examples.throughput.methodcall.stage.ObjectProducer;
+import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
+import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
 import teetime.framework.core.Analysis;
 
 /**
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis5.java b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis5.java
index 394e28a6..ae54e4b4 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis5.java
+++ b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis5.java
@@ -21,6 +21,11 @@ import java.util.List;
 import java.util.concurrent.Callable;
 
 import teetime.examples.throughput.TimestampObject;
+import teetime.examples.throughput.methodcall.stage.CollectorSink;
+import teetime.examples.throughput.methodcall.stage.NoopFilter;
+import teetime.examples.throughput.methodcall.stage.ObjectProducer;
+import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
+import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
 import teetime.framework.core.Analysis;
 
 /**
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis6.java b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis6.java
index 2b74c99a..ee056d28 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis6.java
+++ b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis6.java
@@ -21,6 +21,11 @@ import java.util.List;
 import java.util.concurrent.Callable;
 
 import teetime.examples.throughput.TimestampObject;
+import teetime.examples.throughput.methodcall.stage.CollectorSink;
+import teetime.examples.throughput.methodcall.stage.NoopFilter;
+import teetime.examples.throughput.methodcall.stage.ObjectProducer;
+import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
+import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
 import teetime.framework.core.Analysis;
 
 /**
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis7.java b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis7.java
index b9e4060e..7f865f5a 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis7.java
+++ b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis7.java
@@ -21,6 +21,11 @@ import java.util.List;
 import java.util.concurrent.Callable;
 
 import teetime.examples.throughput.TimestampObject;
+import teetime.examples.throughput.methodcall.stage.CollectorSink;
+import teetime.examples.throughput.methodcall.stage.NoopFilter;
+import teetime.examples.throughput.methodcall.stage.ObjectProducer;
+import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
+import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
 import teetime.framework.core.Analysis;
 
 /**
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis8.java b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis8.java
index 7c8fecc8..7f458284 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis8.java
+++ b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis8.java
@@ -21,6 +21,11 @@ import java.util.List;
 import java.util.concurrent.Callable;
 
 import teetime.examples.throughput.TimestampObject;
+import teetime.examples.throughput.methodcall.stage.CollectorSink;
+import teetime.examples.throughput.methodcall.stage.NoopFilter;
+import teetime.examples.throughput.methodcall.stage.ObjectProducer;
+import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
+import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
 import teetime.framework.core.Analysis;
 
 /**
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis9.java b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis9.java
index 3bb16df8..1e533252 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis9.java
+++ b/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis9.java
@@ -19,6 +19,12 @@ import java.util.List;
 import java.util.concurrent.Callable;
 
 import teetime.examples.throughput.TimestampObject;
+import teetime.examples.throughput.methodcall.stage.CollectorSink;
+import teetime.examples.throughput.methodcall.stage.NoopFilter;
+import teetime.examples.throughput.methodcall.stage.ObjectProducer;
+import teetime.examples.throughput.methodcall.stage.Pipeline;
+import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
+import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
 import teetime.framework.core.Analysis;
 
 /**
diff --git a/src/test/java/teetime/examples/throughput/methodcall/CollectorSink.java b/src/test/java/teetime/examples/throughput/methodcall/stage/CollectorSink.java
similarity index 94%
rename from src/test/java/teetime/examples/throughput/methodcall/CollectorSink.java
rename to src/test/java/teetime/examples/throughput/methodcall/stage/CollectorSink.java
index 90fefc3a..77a2ef04 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/CollectorSink.java
+++ b/src/test/java/teetime/examples/throughput/methodcall/stage/CollectorSink.java
@@ -13,10 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.examples.throughput.methodcall.stage;
 
 import java.util.List;
 
+import teetime.examples.throughput.methodcall.ConsumerStage;
 import teetime.util.list.CommittableQueue;
 
 /**
diff --git a/src/test/java/teetime/examples/throughput/methodcall/NoopFilter.java b/src/test/java/teetime/examples/throughput/methodcall/stage/NoopFilter.java
similarity index 88%
rename from src/test/java/teetime/examples/throughput/methodcall/NoopFilter.java
rename to src/test/java/teetime/examples/throughput/methodcall/stage/NoopFilter.java
index 17d1abba..7fdf98b2 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/NoopFilter.java
+++ b/src/test/java/teetime/examples/throughput/methodcall/stage/NoopFilter.java
@@ -13,8 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.examples.throughput.methodcall.stage;
 
+import teetime.examples.throughput.methodcall.ConsumerStage;
 import teetime.util.list.CommittableQueue;
 
 /**
@@ -44,7 +45,7 @@ public class NoopFilter<T> extends ConsumerStage<T, T> {
 
 	@Override
 	protected void execute5(final T element) {
-		this.send(element);
+		this.send(element); // "send" calls the next stage and so on
 	}
 
 }
diff --git a/src/test/java/teetime/examples/throughput/methodcall/ObjectProducer.java b/src/test/java/teetime/examples/throughput/methodcall/stage/ObjectProducer.java
similarity index 96%
rename from src/test/java/teetime/examples/throughput/methodcall/ObjectProducer.java
rename to src/test/java/teetime/examples/throughput/methodcall/stage/ObjectProducer.java
index deeb0df7..d6093bbe 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/ObjectProducer.java
+++ b/src/test/java/teetime/examples/throughput/methodcall/stage/ObjectProducer.java
@@ -13,10 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.examples.throughput.methodcall.stage;
 
 import java.util.concurrent.Callable;
 
+import teetime.examples.throughput.methodcall.ProducerStage;
 import teetime.util.list.CommittableQueue;
 
 /**
diff --git a/src/test/java/teetime/examples/throughput/methodcall/Pipeline.java b/src/test/java/teetime/examples/throughput/methodcall/stage/Pipeline.java
similarity index 87%
rename from src/test/java/teetime/examples/throughput/methodcall/Pipeline.java
rename to src/test/java/teetime/examples/throughput/methodcall/stage/Pipeline.java
index 82dfe6bf..23c63395 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/Pipeline.java
+++ b/src/test/java/teetime/examples/throughput/methodcall/stage/Pipeline.java
@@ -1,9 +1,15 @@
-package teetime.examples.throughput.methodcall;
+package teetime.examples.throughput.methodcall.stage;
 
 import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
 
+import teetime.examples.throughput.methodcall.InputPort;
+import teetime.examples.throughput.methodcall.OnDisableListener;
+import teetime.examples.throughput.methodcall.OutputPort;
+import teetime.examples.throughput.methodcall.SchedulingInformation;
+import teetime.examples.throughput.methodcall.Stage;
+import teetime.examples.throughput.methodcall.StageWithPort;
 import teetime.util.list.CommittableQueue;
 
 public class Pipeline<I, O> implements StageWithPort<I, O>, OnDisableListener {
@@ -22,19 +28,19 @@ public class Pipeline<I, O> implements StageWithPort<I, O>, OnDisableListener {
 
 	private boolean reschedulable;
 
-	void setFirstStage(final StageWithPort<I, ?> stage) {
+	public void setFirstStage(final StageWithPort<I, ?> stage) {
 		this.firstStage = stage;
 	}
 
-	void addIntermediateStages(final StageWithPort... stages) {
+	public void addIntermediateStages(final StageWithPort... stages) {
 		this.intermediateStages.addAll(Arrays.asList(stages));
 	}
 
-	void addIntermediateStage(final StageWithPort stage) {
+	public void addIntermediateStage(final StageWithPort stage) {
 		this.intermediateStages.add(stage);
 	}
 
-	void setLastStage(final StageWithPort<?, O> stage) {
+	public void setLastStage(final StageWithPort<?, O> stage) {
 		this.lastStage = stage;
 	}
 
@@ -66,7 +72,7 @@ public class Pipeline<I, O> implements StageWithPort<I, O>, OnDisableListener {
 		this.setReschedulable(this.stages[0].isReschedulable());
 	}
 
-	void onStart() {
+	public void onStart() {
 		// Pipe pipe = new Pipe();
 		// this.outputPort.pipe = pipe;
 		// this.firstStage.getInputPort().pipe = pipe;
diff --git a/src/test/java/teetime/examples/throughput/methodcall/StartTimestampFilter.java b/src/test/java/teetime/examples/throughput/methodcall/stage/StartTimestampFilter.java
similarity index 93%
rename from src/test/java/teetime/examples/throughput/methodcall/StartTimestampFilter.java
rename to src/test/java/teetime/examples/throughput/methodcall/stage/StartTimestampFilter.java
index d4d6d5a7..fdcc6d44 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/StartTimestampFilter.java
+++ b/src/test/java/teetime/examples/throughput/methodcall/stage/StartTimestampFilter.java
@@ -13,9 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.examples.throughput.methodcall.stage;
 
 import teetime.examples.throughput.TimestampObject;
+import teetime.examples.throughput.methodcall.ConsumerStage;
 import teetime.util.list.CommittableQueue;
 
 /**
diff --git a/src/test/java/teetime/examples/throughput/methodcall/StopTimestampFilter.java b/src/test/java/teetime/examples/throughput/methodcall/stage/StopTimestampFilter.java
similarity index 93%
rename from src/test/java/teetime/examples/throughput/methodcall/StopTimestampFilter.java
rename to src/test/java/teetime/examples/throughput/methodcall/stage/StopTimestampFilter.java
index 78c333cd..0dfd5adc 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/StopTimestampFilter.java
+++ b/src/test/java/teetime/examples/throughput/methodcall/stage/StopTimestampFilter.java
@@ -13,9 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.examples.throughput.methodcall.stage;
 
 import teetime.examples.throughput.TimestampObject;
+import teetime.examples.throughput.methodcall.ConsumerStage;
 import teetime.util.list.CommittableQueue;
 
 /**
-- 
GitLab