diff --git a/pom.xml b/pom.xml index 3ba20e4d0cba21a6eea5a00c102b8c5ae6a73feb..1382270b4ed4867197d749177e4d48e0cb70ecae 100644 --- a/pom.xml +++ b/pom.xml @@ -172,20 +172,7 @@ </executions> </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-gpg-plugin</artifactId> - <version>1.5</version> - <executions> - <execution> - <id>sign-artifacts</id> - <phase>verify</phase> - <goals> - <goal>sign</goal> - </goals> - </execution> - </executions> - </plugin> + <plugin> <groupId>org.sonatype.plugins</groupId> @@ -220,22 +207,22 @@ <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>2.13</version> -<!-- <executions> --> -<!-- <execution> --> -<!-- <phase>test</phase> --> -<!-- <configuration> --> -<!-- <configLocation>${project.basedir}/conf/quality-config/cs-conf.xml</configLocation> --> -<!-- <includeTestSourceDirectory>true</includeTestSourceDirectory> --> -<!-- <encoding>UTF-8</encoding> --> -<!-- <consoleOutput>true</consoleOutput> --> -<!-- <failsOnError>false</failsOnError> --> -<!-- <linkXRef>false</linkXRef> --> -<!-- </configuration> --> -<!-- <goals> --> -<!-- <goal>check</goal> --> -<!-- </goals> --> -<!-- </execution> --> -<!-- </executions> --> + <!-- <executions> --> + <!-- <execution> --> + <!-- <phase>test</phase> --> + <!-- <configuration> --> + <!-- <configLocation>${project.basedir}/conf/quality-config/cs-conf.xml</configLocation> --> + <!-- <includeTestSourceDirectory>true</includeTestSourceDirectory> --> + <!-- <encoding>UTF-8</encoding> --> + <!-- <consoleOutput>true</consoleOutput> --> + <!-- <failsOnError>false</failsOnError> --> + <!-- <linkXRef>false</linkXRef> --> + <!-- </configuration> --> + <!-- <goals> --> + <!-- <goal>check</goal> --> + <!-- </goals> --> + <!-- </execution> --> + <!-- </executions> --> </plugin> <!-- Findbugs --> @@ -346,6 +333,33 @@ <activation> </activation> </profile> + <profile> + <id>signing</id> + <activation> + <property> + <name>sign-jars</name> + <value>true</value> + </property> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-gpg-plugin</artifactId> + <version>1.5</version> + <executions> + <execution> + <id>sign-artifacts</id> + <phase>verify</phase> + <goals> + <goal>sign</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> </profiles> </project> diff --git a/run-configurations/deploy.launch b/run-configurations/deploy.launch new file mode 100644 index 0000000000000000000000000000000000000000..761ef41eb3321c784871a714d127f6201a8daea8 --- /dev/null +++ b/run-configurations/deploy.launch @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.m2e.Maven2LaunchConfigurationType"> +<booleanAttribute key="M2_DEBUG_OUTPUT" value="false"/> +<stringAttribute key="M2_GOALS" value="-Psigning -Dmaven.javadoc.skip=true clean deploy"/> +<booleanAttribute key="M2_NON_RECURSIVE" value="false"/> +<booleanAttribute key="M2_OFFLINE" value="false"/> +<stringAttribute key="M2_PROFILES" value=""/> +<listAttribute key="M2_PROPERTIES"/> +<stringAttribute key="M2_RUNTIME" value="EMBEDDED"/> +<booleanAttribute key="M2_SKIP_TESTS" value="false"/> +<intAttribute key="M2_THREADS" value="1"/> +<booleanAttribute key="M2_UPDATE_SNAPSHOTS" value="false"/> +<stringAttribute key="M2_USER_SETTINGS" value=""/> +<booleanAttribute key="M2_WORKSPACE_RESOLUTION" value="false"/> +<listAttribute key="org.eclipse.debug.ui.favoriteGroups"> +<listEntry value="org.eclipse.debug.ui.launchGroup.run"/> +</listAttribute> +<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/> +<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${project_loc}"/> +</launchConfiguration> diff --git a/run-configurations/install with signing.launch b/run-configurations/install with signing.launch new file mode 100644 index 0000000000000000000000000000000000000000..12e8f56d6143fabf0e64925e8ba9ce50221194c5 --- /dev/null +++ b/run-configurations/install with signing.launch @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.m2e.Maven2LaunchConfigurationType"> +<booleanAttribute key="M2_DEBUG_OUTPUT" value="false"/> +<stringAttribute key="M2_GOALS" value="-Psigning -Dmaven.javadoc.skip=true install"/> +<booleanAttribute key="M2_NON_RECURSIVE" value="false"/> +<booleanAttribute key="M2_OFFLINE" value="false"/> +<stringAttribute key="M2_PROFILES" value=""/> +<listAttribute key="M2_PROPERTIES"/> +<stringAttribute key="M2_RUNTIME" value="EMBEDDED"/> +<booleanAttribute key="M2_SKIP_TESTS" value="false"/> +<intAttribute key="M2_THREADS" value="1"/> +<booleanAttribute key="M2_UPDATE_SNAPSHOTS" value="false"/> +<stringAttribute key="M2_USER_SETTINGS" value=""/> +<booleanAttribute key="M2_WORKSPACE_RESOLUTION" value="false"/> +<listAttribute key="org.eclipse.debug.ui.favoriteGroups"> +<listEntry value="org.eclipse.debug.ui.launchGroup.run"/> +</listAttribute> +<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/> +<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 7 [1.7.0_25]"/> +<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${project_loc}"/> +</launchConfiguration> diff --git a/run-configurations/maven-listdependencies.launch b/run-configurations/maven-listdependencies.launch index 43aac7069058a7056ee0b40a572baa4f803735a6..154868512c1f43bf7d0b75bb27510937268d1f31 100644 --- a/run-configurations/maven-listdependencies.launch +++ b/run-configurations/maven-listdependencies.launch @@ -12,6 +12,9 @@ <booleanAttribute key="M2_UPDATE_SNAPSHOTS" value="false"/> <stringAttribute key="M2_USER_SETTINGS" value=""/> <booleanAttribute key="M2_WORKSPACE_RESOLUTION" value="false"/> +<listAttribute key="org.eclipse.debug.ui.favoriteGroups"> +<listEntry value="org.eclipse.debug.ui.launchGroup.run"/> +</listAttribute> <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/> <stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${project_loc}"/> </launchConfiguration> diff --git a/run-configurations/maven-test.launch b/run-configurations/maven-test.launch index 0fb01690bd5f205664275114b5e59e383374db73..a0cd8248cc7d79652d4905ecb7112d43e50646a7 100644 --- a/run-configurations/maven-test.launch +++ b/run-configurations/maven-test.launch @@ -14,6 +14,9 @@ <booleanAttribute key="M2_WORKSPACE_RESOLUTION" value="false"/> <stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.m2e.launching.MavenSourceLocator"/> <stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;folder nest=&quot;false&quot; path=&quot;/teetime/src/perfomancetest&quot;/&gt;&#10;" typeId="org.eclipse.debug.core.containerType.folder"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;default/&gt;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/> +<listAttribute key="org.eclipse.debug.ui.favoriteGroups"> +<listEntry value="org.eclipse.debug.ui.launchGroup.run"/> +</listAttribute> <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/> <stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${project_loc}"/> </launchConfiguration> diff --git a/src/main/java/teetime/framework/AbstractStage.java b/src/main/java/teetime/framework/AbstractStage.java index 33be2f0cfb5b0773f794ffe0097a679d1e23b36b..63ef55465abade9299a4d0baff89c37c6c77d9c3 100644 --- a/src/main/java/teetime/framework/AbstractStage.java +++ b/src/main/java/teetime/framework/AbstractStage.java @@ -117,14 +117,14 @@ public abstract class AbstractStage implements Stage { this.validateOutputPorts(invalidPortConnections); } - public void onStarting() { + public void onStarting() throws Exception { this.cachedInputPorts = this.inputPortList.toArray(new InputPort<?>[0]); this.cachedOutputPorts = this.outputPortList.toArray(new OutputPort<?>[0]); this.connectUnconnectedOutputPorts(); } - public void onTerminating() { + public void onTerminating() throws Exception { // empty default implementation } diff --git a/src/main/java/teetime/framework/signal/StartingSignal.java b/src/main/java/teetime/framework/signal/StartingSignal.java index d1b7aa5474236f782e6b8436f9934ed87149e9f6..77637f97d7989d2a94937384391e4ea0d33c628f 100644 --- a/src/main/java/teetime/framework/signal/StartingSignal.java +++ b/src/main/java/teetime/framework/signal/StartingSignal.java @@ -1,12 +1,30 @@ package teetime.framework.signal; +import java.util.LinkedList; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import teetime.framework.AbstractStage; public class StartingSignal implements ISignal { + private static final Logger LOGGER = LoggerFactory.getLogger(StartingSignal.class); + private final List<Exception> catchedExceptions = new LinkedList<Exception>(); + @Override public void trigger(final AbstractStage stage) { - stage.onStarting(); + try { + stage.onStarting(); + } catch (Exception e) { + catchedExceptions.add(e); + LOGGER.error("Exception while sending the start signal", e); + } + } + + public List<Exception> getCatchedExceptions() { + return catchedExceptions; } } diff --git a/src/main/java/teetime/framework/signal/TerminatingSignal.java b/src/main/java/teetime/framework/signal/TerminatingSignal.java index 0aba57bae09d4045d6d76163c86a108206a8d660..081adccdd2d071916599e0a4b1a2b89972e00bfb 100644 --- a/src/main/java/teetime/framework/signal/TerminatingSignal.java +++ b/src/main/java/teetime/framework/signal/TerminatingSignal.java @@ -1,12 +1,30 @@ package teetime.framework.signal; +import java.util.LinkedList; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import teetime.framework.AbstractStage; public class TerminatingSignal implements ISignal { + private static final Logger LOGGER = LoggerFactory.getLogger(TerminatingSignal.class); + private final List<Exception> catchedExceptions = new LinkedList<Exception>(); + @Override public void trigger(final AbstractStage stage) { - stage.onTerminating(); + try { + stage.onTerminating(); + } catch (Exception e) { + catchedExceptions.add(e); + LOGGER.error("Exception while sending the start signal", e); + } + } + + public List<Exception> getCatchedExceptions() { + return catchedExceptions; } } diff --git a/src/main/java/teetime/stage/Cache.java b/src/main/java/teetime/stage/Cache.java index 07b7d2896a04bb5338ff31f63aa09613b8ff9cdf..6fb6f4b7332d04bff4389d93dde7ea3a90262c5e 100644 --- a/src/main/java/teetime/stage/Cache.java +++ b/src/main/java/teetime/stage/Cache.java @@ -20,8 +20,7 @@ public class Cache<T> extends ConsumerStage<T> { } @Override - public void onTerminating() { - super.onTerminating(); + public void onTerminating() throws Exception { this.logger.debug("Emitting " + this.cachedObjects.size() + " cached elements..."); StopWatch stopWatch = new StopWatch(); stopWatch.start(); diff --git a/src/main/java/teetime/stage/CollectorSink.java b/src/main/java/teetime/stage/CollectorSink.java index f3b3875dce73a457cc1bec91c195944e7cc9689a..39a2c8f83085c8e0bcd2a78d83b4fb443d200a2c 100644 --- a/src/main/java/teetime/stage/CollectorSink.java +++ b/src/main/java/teetime/stage/CollectorSink.java @@ -45,9 +45,9 @@ public class CollectorSink<T> extends ConsumerStage<T> { } @Override - public void onTerminating() { - super.onTerminating(); + public void onTerminating() throws Exception { System.out.println("size: " + this.elements.size()); + super.onTerminating(); } @Override diff --git a/src/main/java/teetime/stage/ElementDelayMeasuringStage.java b/src/main/java/teetime/stage/ElementDelayMeasuringStage.java index 452f75e3701d2bb29e74e156b152c5df1156d82f..2f963dbe92cda310ea9add3dc67c523d7708729a 100644 --- a/src/main/java/teetime/stage/ElementDelayMeasuringStage.java +++ b/src/main/java/teetime/stage/ElementDelayMeasuringStage.java @@ -29,9 +29,9 @@ public class ElementDelayMeasuringStage<T> extends ConsumerStage<T> { } @Override - public void onStarting() { - this.resetTimestamp(System.nanoTime()); + public void onStarting() throws Exception { super.onStarting(); + this.resetTimestamp(System.nanoTime()); } private void computeElementDelay(final Long timestampInNs) { diff --git a/src/main/java/teetime/stage/ElementThroughputMeasuringStage.java b/src/main/java/teetime/stage/ElementThroughputMeasuringStage.java index ea36801a4d4ccbb07868f9582f2fdaab7837f7a9..ed4626c527076e5d4feefc30815930405fafb5a6 100644 --- a/src/main/java/teetime/stage/ElementThroughputMeasuringStage.java +++ b/src/main/java/teetime/stage/ElementThroughputMeasuringStage.java @@ -30,9 +30,9 @@ public class ElementThroughputMeasuringStage<T> extends ConsumerStage<T> { } @Override - public void onStarting() { - this.resetTimestamp(System.nanoTime()); + public void onStarting() throws Exception { super.onStarting(); + this.resetTimestamp(System.nanoTime()); } private void computeElementThroughput(final Long timestampInNs) { diff --git a/src/main/java/teetime/stage/Relay.java b/src/main/java/teetime/stage/Relay.java index 144b34eaf9d0e6dd7f611b54aa3df28f21e14a00..b5c82faebf04aba2c773c649af2fc0232eba89a1 100644 --- a/src/main/java/teetime/stage/Relay.java +++ b/src/main/java/teetime/stage/Relay.java @@ -25,9 +25,9 @@ public class Relay<T> extends ProducerStage<T> { } @Override - public void onStarting() { - this.cachedCastedInputPipe = (InterThreadPipe) this.inputPort.getPipe(); + public void onStarting() throws Exception { super.onStarting(); + this.cachedCastedInputPipe = (InterThreadPipe) this.inputPort.getPipe(); } public InputPort<T> getInputPort() { diff --git a/src/main/java/teetime/stage/basic/Delay.java b/src/main/java/teetime/stage/basic/Delay.java index 6c0ecac5b2b93a86500ee939623e110e1a80f4e9..4682ba64fe7a9afa2b6258fc132a090c0ae1c461 100644 --- a/src/main/java/teetime/stage/basic/Delay.java +++ b/src/main/java/teetime/stage/basic/Delay.java @@ -34,11 +34,11 @@ public class Delay<T> extends AbstractStage { } @Override - public void onTerminating() { - super.onTerminating(); + public void onTerminating() throws Exception { while (!this.inputPort.getPipe().isEmpty()) { this.executeWithPorts(); } + super.onTerminating(); } public InputPort<T> getInputPort() { diff --git a/src/main/java/teetime/stage/basic/distributor/Distributor.java b/src/main/java/teetime/stage/basic/distributor/Distributor.java index b80c8e5ef21356fde8b837e2611df330187b75c9..3e4b59bd8b6da3ad96d8564ae6ae7ed5929bbfbc 100644 --- a/src/main/java/teetime/stage/basic/distributor/Distributor.java +++ b/src/main/java/teetime/stage/basic/distributor/Distributor.java @@ -37,15 +37,6 @@ public class Distributor<T> extends ConsumerStage<T> { this.strategy.distribute((OutputPort<T>[]) this.getOutputPorts(), element); } - @Override - public void onTerminating() { - super.onTerminating(); - // for (OutputPort<T> op : this.outputPortList) { - // op.getPipe().close(); - // System.out.println("End signal sent, size: " + op.getPipe().size()); - // } - } - public OutputPort<T> getNewOutputPort() { return this.createOutputPort(); } diff --git a/src/main/java/teetime/stage/basic/merger/Merger.java b/src/main/java/teetime/stage/basic/merger/Merger.java index 870b22b90832de34648468ba03f7c67abc7c21b4..6afda057e455d38760c2073822730459ee939879 100644 --- a/src/main/java/teetime/stage/basic/merger/Merger.java +++ b/src/main/java/teetime/stage/basic/merger/Merger.java @@ -62,9 +62,9 @@ public class Merger<T> extends AbstractStage { } @Override - public void onTerminating() { - super.onTerminating(); + public void onTerminating() throws Exception { this.finishedInputPorts++; + super.onTerminating(); } public IMergerStrategy<T> getStrategy() { diff --git a/src/main/java/teetime/stage/io/AbstractTcpReader.java b/src/main/java/teetime/stage/io/AbstractTcpReader.java new file mode 100644 index 0000000000000000000000000000000000000000..daf0a31da83b421ea41d28eadab86b0adb3b499f --- /dev/null +++ b/src/main/java/teetime/stage/io/AbstractTcpReader.java @@ -0,0 +1,71 @@ +package teetime.stage.io; + +import java.io.IOException; +import java.net.InetSocketAddress; +import java.nio.BufferUnderflowException; +import java.nio.ByteBuffer; +import java.nio.channels.ServerSocketChannel; +import java.nio.channels.SocketChannel; + +import teetime.framework.ProducerStage; + +public abstract class AbstractTcpReader<T> extends ProducerStage<T> { + + private final int port; + private final int bufferCapacity; + + public AbstractTcpReader(final int port, final int bufferCapacity) { + super(); + this.port = port; + this.bufferCapacity = bufferCapacity; + } + + @Override + protected void execute() { + ServerSocketChannel serversocket = null; + try { + serversocket = ServerSocketChannel.open(); + serversocket.socket().bind(new InetSocketAddress(this.port)); + logger.debug("Listening on port " + this.port); + + final SocketChannel socketChannel = serversocket.accept(); + try { + final ByteBuffer buffer = ByteBuffer.allocateDirect(bufferCapacity); + while (socketChannel.read(buffer) != -1) { + process(buffer); + } + } finally { + socketChannel.close(); + } + } catch (final IOException ex) { + logger.error("Error while reading", ex); + } finally { + if (null != serversocket) { + try { + serversocket.close(); + } catch (final IOException e) { + logger.debug("Failed to close TCP connection!", e); + } + } + + this.terminate(); + } + } + + private void process(final ByteBuffer buffer) { + buffer.flip(); + try { + while (buffer.hasRemaining()) { + buffer.mark(); + this.read(buffer); + } + buffer.clear(); + } catch (final BufferUnderflowException ex) { + buffer.reset(); + buffer.compact(); + } + } + + protected abstract void read(final ByteBuffer buffer); + +} diff --git a/src/main/java/teetime/stage/io/Printer.java b/src/main/java/teetime/stage/io/Printer.java index 40ee69ee69202d70a1d25d744e66b4e39d9b8843..21936fbc82159c307a071510b6b63e2720ad9c6c 100644 --- a/src/main/java/teetime/stage/io/Printer.java +++ b/src/main/java/teetime/stage/io/Printer.java @@ -86,13 +86,13 @@ public class Printer<T> extends ConsumerStage<T> { } @Override - public void onStarting() { + public void onStarting() throws Exception { super.onStarting(); this.initializeStream(); } @Override - public void onTerminating() { + public void onTerminating() throws Exception { this.closeStream(); super.onTerminating(); } diff --git a/src/main/java/teetime/stage/stringBuffer/StringBufferFilter.java b/src/main/java/teetime/stage/stringBuffer/StringBufferFilter.java index 2cefc39dd013fb00c160ef34adb223a0439b8b97..6e2d9ac4e846798b594fad5b84ae76f5dc257ef4 100644 --- a/src/main/java/teetime/stage/stringBuffer/StringBufferFilter.java +++ b/src/main/java/teetime/stage/stringBuffer/StringBufferFilter.java @@ -25,7 +25,7 @@ import teetime.stage.stringBuffer.util.KiekerHashMap; /** * @author Christian Wulf - * + * * @since 1.10 */ public class StringBufferFilter<T> extends ConsumerStage<T> { @@ -44,12 +44,12 @@ public class StringBufferFilter<T> extends ConsumerStage<T> { } @Override - public void onStarting() { + public void onStarting() throws Exception { + super.onStarting(); for (final AbstractDataTypeHandler<?> handler : this.dataTypeHandlers) { handler.setLogger(this.logger); handler.setStringRepository(this.kiekerHashMap); } - super.onStarting(); } private T handle(final T object) { diff --git a/src/performancetest/java/teetime/examples/ChwHomeComparisonMethodcallWithPorts.java b/src/performancetest/java/teetime/examples/ChwHomeComparisonMethodcallWithPorts.java index afd8226e3c0a964f4b31339e42364a745a1bcd5f..96b58dcdbc63f685f08a5c20c37c94a7d8fc3642 100644 --- a/src/performancetest/java/teetime/examples/ChwHomeComparisonMethodcallWithPorts.java +++ b/src/performancetest/java/teetime/examples/ChwHomeComparisonMethodcallWithPorts.java @@ -65,8 +65,12 @@ public class ChwHomeComparisonMethodcallWithPorts extends ProfiledPerformanceAss // assertEquals(53, value17, 4.1); // +0 // since 31.08.2014 (incl.) - assertEquals(68, value15, 4.1); // ?? - assertEquals(75, value17, 4.1); // ?? + // assertEquals(68, value15, 4.1); // +24 + // assertEquals(75, value17, 4.1); // +22 + + // since 04.11.2014 (incl.) + assertEquals(40, value15, 4.1); // -28 + assertEquals(78, value17, 4.1); // +3 // below results vary too much, possibly due to the OS' scheduler // assertEquals(RESULT_TESTS_16, (double) test16a.quantiles.get(0.5) / test1.quantiles.get(0.5), 5.1); diff --git a/src/performancetest/java/teetime/examples/experiment01/ChwHomePerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment01/ChwHomePerformanceCheck.java index 9c9321d3bfccbe7a004a9b5e31ff8ec24702f52f..3493118d6e215d34100d5a23073918c4b42e913b 100644 --- a/src/performancetest/java/teetime/examples/experiment01/ChwHomePerformanceCheck.java +++ b/src/performancetest/java/teetime/examples/experiment01/ChwHomePerformanceCheck.java @@ -5,7 +5,7 @@ import util.test.PerformanceResult; import util.test.PerformanceTest; import util.test.ProfiledPerformanceAssertion; -public class ChwHomePerformanceCheck extends ProfiledPerformanceAssertion { +class ChwHomePerformanceCheck extends ProfiledPerformanceAssertion { @Override public String getCorrespondingPerformanceProfile() { diff --git a/src/performancetest/java/teetime/examples/experiment01/ChwWorkPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment01/ChwWorkPerformanceCheck.java index 0f7c9f1912896f178be06e132f36508ab8c7cd51..07bdf5090b7e2d2dda07ec0a889f165bb5ee8583 100644 --- a/src/performancetest/java/teetime/examples/experiment01/ChwWorkPerformanceCheck.java +++ b/src/performancetest/java/teetime/examples/experiment01/ChwWorkPerformanceCheck.java @@ -5,7 +5,7 @@ import util.test.PerformanceResult; import util.test.PerformanceTest; import util.test.ProfiledPerformanceAssertion; -public class ChwWorkPerformanceCheck extends ProfiledPerformanceAssertion { +class ChwWorkPerformanceCheck extends ProfiledPerformanceAssertion { @Override public String getCorrespondingPerformanceProfile() { diff --git a/src/performancetest/java/teetime/examples/experiment09/ChwHomePerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment09/ChwHomePerformanceCheck.java index 248925bd7af978a6719b83e2678a90615388cd33..4ea53153b9f60c019437a9a90a6ac056121eb177 100644 --- a/src/performancetest/java/teetime/examples/experiment09/ChwHomePerformanceCheck.java +++ b/src/performancetest/java/teetime/examples/experiment09/ChwHomePerformanceCheck.java @@ -2,7 +2,7 @@ package teetime.examples.experiment09; import static org.junit.Assert.assertEquals; -public class ChwHomePerformanceCheck extends AbstractPerformanceCheck { +class ChwHomePerformanceCheck extends AbstractPerformanceCheck { @Override public String getCorrespondingPerformanceProfile() { @@ -21,11 +21,13 @@ public class ChwHomePerformanceCheck extends AbstractPerformanceCheck { // assertEquals(22, (double) test9.quantiles.get(0.5) / test1.quantiles.get(0.5), 2.1); // since 26.06.2014 (incl.) // assertEquals(36, value9, 2.1); // +14 - // // since 04.07.2014 (incl.) + // since 04.07.2014 (incl.) // assertEquals(42, value9, 2.1); // +6 // since 11.08.2014 (incl.) // assertEquals(42, value9, 2.1); // +6 // since 31.08.2014 (incl.) - assertEquals(44, medianSpeedup, 2.1); // ?? + // assertEquals(44, medianSpeedup, 2.1); // +2 + // since 04.11.2014 (incl.) + assertEquals(71, medianSpeedup, 2.1); // +33 } } diff --git a/src/performancetest/java/teetime/examples/experiment09/ChwWorkPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment09/ChwWorkPerformanceCheck.java index 1f5e65eb9c3ffdac0f89ef4690547342864af34f..ba4eda095004196eb3167016292893ac4af4b888 100644 --- a/src/performancetest/java/teetime/examples/experiment09/ChwWorkPerformanceCheck.java +++ b/src/performancetest/java/teetime/examples/experiment09/ChwWorkPerformanceCheck.java @@ -2,7 +2,7 @@ package teetime.examples.experiment09; import static org.junit.Assert.assertEquals; -public class ChwWorkPerformanceCheck extends AbstractPerformanceCheck { +class ChwWorkPerformanceCheck extends AbstractPerformanceCheck { @Override public String getCorrespondingPerformanceProfile() { diff --git a/src/performancetest/java/teetime/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java b/src/performancetest/java/teetime/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java index 4267330d592daa97fffe7ae6ae159061b9f71dd2..2fe74dffa95ddee3b1ba162c7716ef71ea33bc94 100644 --- a/src/performancetest/java/teetime/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java +++ b/src/performancetest/java/teetime/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java @@ -19,8 +19,6 @@ import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; -import teetime.examples.experiment10.ChwHomePerformanceCheck; -import teetime.examples.experiment10.ChwWorkPerformanceCheck; import teetime.util.ConstructorClosure; import teetime.util.TimestampObject; import util.test.PerformanceTest; diff --git a/src/performancetest/java/teetime/examples/experiment10/ChwHomePerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment10/ChwHomePerformanceCheck.java index 925ab5bbc66743dc9eacf3b14269856fb2a1b8ec..8bda58f2804773cf7b363c8629aa1eb8eac4607c 100644 --- a/src/performancetest/java/teetime/examples/experiment10/ChwHomePerformanceCheck.java +++ b/src/performancetest/java/teetime/examples/experiment10/ChwHomePerformanceCheck.java @@ -2,7 +2,7 @@ package teetime.examples.experiment10; import static org.junit.Assert.assertEquals; -public class ChwHomePerformanceCheck extends AbstractPerformanceCheck { +class ChwHomePerformanceCheck extends AbstractPerformanceCheck { @Override public String getCorrespondingPerformanceProfile() { @@ -13,9 +13,9 @@ public class ChwHomePerformanceCheck extends AbstractPerformanceCheck { public void check() { super.check(); - double meanSpeedup = (double) test10.quantiles.get(0.5) / test01.quantiles.get(0.5); + double medianSpeedup = (double) test10.quantiles.get(0.5) / test01.quantiles.get(0.5); - System.out.println("meanSpeedup (10): " + meanSpeedup); + System.out.println("meanSpeedup (10): " + medianSpeedup); // since 26.06.2014 (incl.) // assertEquals(26, value10, 2.1); // +14 @@ -24,6 +24,6 @@ public class ChwHomePerformanceCheck extends AbstractPerformanceCheck { // since 11.08.2014 (incl.) // assertEquals(47, value10, 2.1); // +21 // since 31.08.2014 (incl.) - assertEquals(51, meanSpeedup, 2.1); + assertEquals(51, medianSpeedup, 3.2); } } diff --git a/src/performancetest/java/teetime/examples/experiment10/ChwWorkPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment10/ChwWorkPerformanceCheck.java index 2845935e1e0d2870c1574f79a8682da88f4dc496..bbb49ded324bbea6fa44fa9561c4a7676b1241ea 100644 --- a/src/performancetest/java/teetime/examples/experiment10/ChwWorkPerformanceCheck.java +++ b/src/performancetest/java/teetime/examples/experiment10/ChwWorkPerformanceCheck.java @@ -2,7 +2,7 @@ package teetime.examples.experiment10; import static org.junit.Assert.assertEquals; -public class ChwWorkPerformanceCheck extends AbstractPerformanceCheck { +class ChwWorkPerformanceCheck extends AbstractPerformanceCheck { @Override public String getCorrespondingPerformanceProfile() { diff --git a/src/performancetest/java/teetime/examples/experiment11/ChwHomePerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment11/ChwHomePerformanceCheck.java index 6b5d256d1ac58d6147532a0b9dbbf4ce522f9b06..99f8fc667af04219ef2c1451b4fd6fbfdc08b280 100644 --- a/src/performancetest/java/teetime/examples/experiment11/ChwHomePerformanceCheck.java +++ b/src/performancetest/java/teetime/examples/experiment11/ChwHomePerformanceCheck.java @@ -5,7 +5,7 @@ import util.test.PerformanceResult; import util.test.PerformanceTest; import util.test.ProfiledPerformanceAssertion; -public class ChwHomePerformanceCheck extends ProfiledPerformanceAssertion { +class ChwHomePerformanceCheck extends ProfiledPerformanceAssertion { @Override public String getCorrespondingPerformanceProfile() { diff --git a/src/performancetest/java/teetime/examples/experiment11/ChwWorkPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment11/ChwWorkPerformanceCheck.java index 65049146d5c0fa586343bbc91c91f0b3c8c4bb59..8dcfd608223e99f3b33ea50ac6f4424c0a9d0f18 100644 --- a/src/performancetest/java/teetime/examples/experiment11/ChwWorkPerformanceCheck.java +++ b/src/performancetest/java/teetime/examples/experiment11/ChwWorkPerformanceCheck.java @@ -5,7 +5,7 @@ import util.test.PerformanceResult; import util.test.PerformanceTest; import util.test.ProfiledPerformanceAssertion; -public class ChwWorkPerformanceCheck extends ProfiledPerformanceAssertion { +class ChwWorkPerformanceCheck extends ProfiledPerformanceAssertion { @Override public String getCorrespondingPerformanceProfile() { diff --git a/src/performancetest/java/teetime/examples/experiment14/ChwHomePerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment14/ChwHomePerformanceCheck.java index 5b34a6d4c9a87ffb1e6eec3f39e10ae86e8b4273..e0b3ec95a3f3300a43f7afaea04b3a851e0f46a1 100644 --- a/src/performancetest/java/teetime/examples/experiment14/ChwHomePerformanceCheck.java +++ b/src/performancetest/java/teetime/examples/experiment14/ChwHomePerformanceCheck.java @@ -2,7 +2,7 @@ package teetime.examples.experiment14; import static org.junit.Assert.assertEquals; -public class ChwHomePerformanceCheck extends AbstractPerformanceCheck { +class ChwHomePerformanceCheck extends AbstractPerformanceCheck { @Override public String getCorrespondingPerformanceProfile() { @@ -26,6 +26,8 @@ public class ChwHomePerformanceCheck extends AbstractPerformanceCheck { // since 11.08.2014 (incl.) // assertEquals(103, medianSpeedup, 5.1); // +17 // since 31.08.2014 (incl.) - assertEquals(62, medianSpeedup, 2.1); // -41 + // assertEquals(62, medianSpeedup, 2.1); // -41 + // since 04.11.2014 (incl.) + assertEquals(84, medianSpeedup, 2.1); // +22 } } diff --git a/src/performancetest/java/teetime/examples/experiment14/ChwWorkPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment14/ChwWorkPerformanceCheck.java index eeea568d8114f5434186582faa6b72e516715c83..b8ce7c10b4e4348406cb7eef983b8fa45b4c76ce 100644 --- a/src/performancetest/java/teetime/examples/experiment14/ChwWorkPerformanceCheck.java +++ b/src/performancetest/java/teetime/examples/experiment14/ChwWorkPerformanceCheck.java @@ -2,7 +2,7 @@ package teetime.examples.experiment14; import static org.junit.Assert.assertEquals; -public class ChwWorkPerformanceCheck extends AbstractPerformanceCheck { +class ChwWorkPerformanceCheck extends AbstractPerformanceCheck { @Override public String getCorrespondingPerformanceProfile() { diff --git a/src/performancetest/java/teetime/examples/experiment16/ChwHomePerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment16/ChwHomePerformanceCheck.java index 29a27cf7b1b80831cc30b5db330429f51686a399..f09cd1e04257d4e9c2a27c1c6edbd3cc298bb718 100644 --- a/src/performancetest/java/teetime/examples/experiment16/ChwHomePerformanceCheck.java +++ b/src/performancetest/java/teetime/examples/experiment16/ChwHomePerformanceCheck.java @@ -5,7 +5,7 @@ import util.test.PerformanceResult; import util.test.PerformanceTest; import util.test.ProfiledPerformanceAssertion; -public class ChwHomePerformanceCheck extends ProfiledPerformanceAssertion { +class ChwHomePerformanceCheck extends ProfiledPerformanceAssertion { @Override public String getCorrespondingPerformanceProfile() { @@ -28,6 +28,9 @@ public class ChwHomePerformanceCheck extends ProfiledPerformanceAssertion { System.out.println("speedupC: " + speedupC); assertEquals(2, speedupB, 0.3); - assertEquals(3.6, speedupC, 0.3); + // since 31.08.2014 (incl.) + // assertEquals(3.6, speedupC, 0.3); + // since 04.11.2014 (incl.) + assertEquals(5, speedupC, 0.3); } } diff --git a/src/performancetest/java/teetime/examples/experiment16/ChwWorkPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment16/ChwWorkPerformanceCheck.java index 8aeae42d96d7c92a9f652774ed37612e8dc3e9de..6a61017acd506ae173520b5c1f26c0027548d20a 100644 --- a/src/performancetest/java/teetime/examples/experiment16/ChwWorkPerformanceCheck.java +++ b/src/performancetest/java/teetime/examples/experiment16/ChwWorkPerformanceCheck.java @@ -5,7 +5,7 @@ import util.test.PerformanceResult; import util.test.PerformanceTest; import util.test.ProfiledPerformanceAssertion; -public class ChwWorkPerformanceCheck extends ProfiledPerformanceAssertion { +class ChwWorkPerformanceCheck extends ProfiledPerformanceAssertion { @Override public void check() { diff --git a/src/performancetest/java/teetime/examples/loopStage/Countdown.java b/src/performancetest/java/teetime/examples/loopStage/Countdown.java index f70e3eb60a80eadb286bd2c78095040b26ccd2ed..adbbeff6a36c2351e4ad165b29f390eb7eb9e7d4 100644 --- a/src/performancetest/java/teetime/examples/loopStage/Countdown.java +++ b/src/performancetest/java/teetime/examples/loopStage/Countdown.java @@ -17,9 +17,9 @@ public class Countdown extends ProducerStage<Void> { } @Override - public void onStarting() { - this.countdownInputPort.getPipe().add(this.initialCountdown); + public void onStarting() throws Exception { super.onStarting(); + this.countdownInputPort.getPipe().add(this.initialCountdown); } @Override