TeeTime issueshttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues2014-08-07T07:57:10+02:00https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/9Implement an automatic concept to determine the semantic annotation(s) of a s...2014-08-07T07:57:10+02:00Christian WulfImplement an automatic concept to determine the semantic annotation(s) of a stagesee #8 see #8 https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/10Introduce cardinality annotations2014-08-23T20:48:55+02:00Christian WulfIntroduce cardinality annotations* `0:1` (e.g., a `Clock`)
* `1:1`
* `1:n` (e.g., a `Directory2FilesReader`)
* `m:n`
* ...
Can help in choosing the optimal pipe implementation between two stages.
For example, consider two stages `a` and `b` where `a` produces ...* `0:1` (e.g., a `Clock`)
* `1:1`
* `1:n` (e.g., a `Directory2FilesReader`)
* `m:n`
* ...
Can help in choosing the optimal pipe implementation between two stages.
For example, consider two stages `a` and `b` where `a` produces at most 1 element per execution and `b` consumes at most 1 element per execution.
Let us assume that both stages are executed by the same thread.
Then, a pipe that connects both stages with each other does not need to be buffered.
Thus, in this case the optimal pipe implementation is an unbuffered and unsynchronized one.
`?(a)1 ---> 1(b)?`https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/12Add configuration for analyses2015-04-19T01:08:21+02:00Christian WulfAdd configuration for analysesAn `Analysis` should handle the creation, the start, and the termination of threads for a given `Configuration`.
In this way, we also remove the dependency on the `Analysis` interface of a teetime variant.An `Analysis` should handle the creation, the start, and the termination of threads for a given `Configuration`.
In this way, we also remove the dependency on the `Analysis` interface of a teetime variant.Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/13Add a pipe factory2014-08-30T00:43:38+02:00Christian WulfAdd a pipe factoryparameters:
- inter/intra-thread communication
- capacity
- growable
- ordering (FIFO, LIFO, random)parameters:
- inter/intra-thread communication
- capacity
- growable
- ordering (FIFO, LIFO, random)Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/15Add license file for each dependency2014-08-31T22:19:59+02:00Nils Christian EhmkeAdd license file for each dependencyThe TeeTime directory should contain a lib folder with the correct license file for each dependency (just like in Kieker and Kieker's WebGUI). Furthermore: The TeeTime jar file with all dependencies contains a lot of different license fi...The TeeTime directory should contain a lib folder with the correct license file for each dependency (just like in Kieker and Kieker's WebGUI). Furthermore: The TeeTime jar file with all dependencies contains a lot of different license files, each reffering to another library (this is very confusing).https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/16SpSc does not forward any signal2014-09-05T00:19:39+02:00Christian WulfSpSc does not forward any signal```java
@Override
public void setSignal(final Signal signal) {
this.signal.lazySet(signal); // lazySet is legal due to our single-writer requirement
}
```
It should invoke `onSignal()` somehow.```java
@Override
public void setSignal(final Signal signal) {
this.signal.lazySet(signal); // lazySet is legal due to our single-writer requirement
}
```
It should invoke `onSignal()` somehow.Before release of Kieker 1.10Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/19Remove `Pipeline` class2015-05-12T11:12:21+02:00Christian WulfRemove `Pipeline` classRemove the `Pipeline` class because it does not add any functionalityRemove the `Pipeline` class because it does not add any functionalityhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/21Thread executes stages in another thread2014-08-31T20:03:52+02:00Christian WulfThread executes stages in another threadbecause `SpSc.send()` returns `true` and `AbstractStage.send()` logicsbecause `SpSc.send()` returns `true` and `AbstractStage.send()` logicsBefore release of Kieker 1.10Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/22Can we remove `isReschedulable`?2014-08-31T22:08:52+02:00Christian WulfCan we remove `isReschedulable`?so that programmers does not need to consider scheduling issues. The framework should handle this efficiently.so that programmers does not need to consider scheduling issues. The framework should handle this efficiently.Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/24Do we need a buffered pipe for intra-thread communication?2014-09-05T02:41:43+02:00Christian WulfDo we need a buffered pipe for intra-thread communication?A pipe holding one element at a point in time seems to be sufficient. Are there any situations where a pipe needs to hold more than element?A pipe holding one element at a point in time seems to be sufficient. Are there any situations where a pipe needs to hold more than element?https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/26Change default pipe instantiation for intra-thread communication to SingleEle...2014-10-14T23:06:15+02:00Christian WulfChange default pipe instantiation for intra-thread communication to SingleElementPipeChristian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/30Save run configuration in Eclipse project2014-10-01T13:19:49+02:00Christian WulfSave run configuration in Eclipse projectSave "Run as JUnit test..." run configuration in the Eclipse project and upload it in git for at least the following Test:
/teetime/src/test/java/teetime/variant/methodcallWithPorts/examples/ComparisonMethodcallWithPorts.javaSave "Run as JUnit test..." run configuration in the Eclipse project and upload it in git for at least the following Test:
/teetime/src/test/java/teetime/variant/methodcallWithPorts/examples/ComparisonMethodcallWithPorts.javaNelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/31Groovy runtime error when using JDK 1.62014-10-01T12:50:20+02:00Nelson Tavares de SousaGroovy runtime error when using JDK 1.6```
org.codehaus.groovy.runtime.m12n.MetaInfExtensionModule newModule
WARNUNG: Module [groovy-all] - Unable to load extension class [org.codehaus.groovy.runtime.NioGroovyMethods]
``````
org.codehaus.groovy.runtime.m12n.MetaInfExtensionModule newModule
WARNUNG: Module [groovy-all] - Unable to load extension class [org.codehaus.groovy.runtime.NioGroovyMethods]
```https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/32Add generic exception handling mechanism to each stage2015-04-17T14:35:49+02:00Christian WulfAdd generic exception handling mechanism to each stageIf an exception is thrown within the execution of a stage, this exception should not terminate the executing thread, but only skip the current execution of the stage with the exception. Moreover, the exception should be passed to an own ...If an exception is thrown within the execution of a stage, this exception should not terminate the executing thread, but only skip the current execution of the stage with the exception. Moreover, the exception should be passed to an own exception handler whose implementation decides what to do with the exception:
- ignore and continue
- log and continue
- terminate thread by re-throwingVersion 1.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/33Framework should instantiate pipe implementation2015-06-16T16:31:23+02:00Christian WulfFramework should instantiate pipe implementationThe programmer should only specify which ports sould be connnected with each other.The programmer should only specify which ports sould be connnected with each other.Version 2.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/34Prevent maven from executing performance tests in the build process2014-10-07T15:03:26+02:00Christian WulfPrevent maven from executing performance tests in the build processMove the performance tests to a new folder different to "src/test/java".
In this way, maven does not execute them within the build process.Move the performance tests to a new folder different to "src/test/java".
In this way, maven does not execute them within the build process.Version 1.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/35Implement a wait/notify mechanism2016-02-22T14:17:45+01:00Christian WulfImplement a wait/notify mechanismImplement a 'blocking pipe'Implement a 'blocking pipe'Version 2.1Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/36Implement an analysis config for evaluation purposes2016-02-22T14:19:04+01:00Christian WulfImplement an analysis config for evaluation purposesWe need a Pipes & Filters benchmark suite that provides conceptual benchmarks for at least the following scenarios
- an unsynchronized pipeline (single-threaded)
- to answer: efficiency
- a synchronized pipeline (single-threaded)
-...We need a Pipes & Filters benchmark suite that provides conceptual benchmarks for at least the following scenarios
- an unsynchronized pipeline (single-threaded)
- to answer: efficiency
- a synchronized pipeline (single-threaded)
- to answer: synchronization overhead (cp. single-threaded version)
- a synchronized pipeline (multi-threaded)
- to answer: scalability
- a looped pipeline
- to answer: applicability and efficiency
- a more complex analysis configuration that is not a pipeline
- to answer: applicability and efficiency
- an I/O-intensive analysis configuration
- to answer: efficiencyVersion 2.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/37Output an error message if a pipe factory is not available in classpath2015-04-19T01:50:10+02:00Christian WulfOutput an error message if a pipe factory is not available in classpathIssue a warning message if a pipe factory that is defined in `pipe-factories.properties` could not be found in the classpath.Issue a warning message if a pipe factory that is defined in `pipe-factories.properties` could not be found in the classpath.Version 1.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/38Add Javadoc to `PipeFactoryRegistry`2014-10-16T14:16:28+02:00Christian WulfAdd Javadoc to `PipeFactoryRegistry`Especially for `getPipeFactory(..)`Especially for `getPipeFactory(..)`Version 1.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/39User should not need to think about the stage type when adding a stage to con...2014-11-11T14:05:57+01:00Nelson Tavares de SousaUser should not need to think about the stage type when adding a stage to configurationThe user should just add a stage without differentiate what type it is. I.e. a new function `addStage(..)` could recognize the stage-type and add it automatically to the corresponding list.The user should just add a stage without differentiate what type it is. I.e. a new function `addStage(..)` could recognize the stage-type and add it automatically to the corresponding list.Version 1.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/44Add rename support for measurementRepository's method ids2015-06-16T16:02:26+02:00Christian WulfAdd rename support for measurementRepository's method idsSo far, the test method id is a string that is not renamed when the method's FQN is renamed.
Example
```
"testWithManyObjects(teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test)"
```So far, the test method id is a string that is not renamed when the method's FQN is renamed.
Example
```
"testWithManyObjects(teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test)"
```Version 2.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/45Potential loss of signals in SpScPipe2014-10-16T16:09:49+02:00Christian WulfPotential loss of signals in SpScPipeProblem:
If the sender sends multiple signals, only the last one is recognized by the receiver if the receiver has processed a long running execution.
Solution:
Replace the signal field by a synchronized signal FIFO queue.Problem:
If the sender sends multiple signals, only the last one is recognized by the receiver if the receiver has processed a long running execution.
Solution:
Replace the signal field by a synchronized signal FIFO queue.Version 1.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/47How to pass signals within loops?2014-10-13T07:47:57+02:00Christian WulfHow to pass signals within loops?Problem:
Consider a stage with two input ports and two output ports. One of its output port is connnected with one of its input port. Thus, this stage contains a loop. If now the stage's semantics is defined to pass the termination sign...Problem:
Consider a stage with two input ports and two output ports. One of its output port is connnected with one of its input port. Thus, this stage contains a loop. If now the stage's semantics is defined to pass the termination signal only when it was received from each input port, this stage will never terminate because the input port with the loop will never receive the terminate signal.
The same problem arises when the loop extends over more than a single stage.https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/48Implement a signal that assigns the hierarchy depth to each stage2014-10-17T07:59:08+02:00Christian WulfImplement a signal that assigns the hierarchy depth to each stageBuilds the basis for further analysis (e.g., loop detection) and validation checks.Builds the basis for further analysis (e.g., loop detection) and validation checks.Version 1.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/49Remove `AbstractStage.onIsPipelineHead()`2014-10-14T16:07:02+02:00Christian WulfRemove `AbstractStage.onIsPipelineHead()`Replace it by `onTerminating()`Replace it by `onTerminating()`Version 1.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/50How to distinguish a finite and infinite producer automatically?2015-04-19T01:05:47+02:00Christian WulfHow to distinguish a finite and infinite producer automatically?Situation:
So far, it seems that they differ only in the behavior that a finite producer invokes `terminate()` within its `execute()` method and an infinite not.
Requirements:
- It would be best if the framework could decide whether...Situation:
So far, it seems that they differ only in the behavior that a finite producer invokes `terminate()` within its `execute()` method and an infinite not.
Requirements:
- It would be best if the framework could decide whether a producer is finite or infinite.Version 1.1https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/51Force user to call super methods within onTerminating/onStarting in own stages2015-09-28T14:10:13+02:00Nelson Tavares de SousaForce user to call super methods within onTerminating/onStarting in own stagesTo achieve this, add a boolean field in AbstractStage, which indicates if super was called, check for it in RunnableStage.run and throw a Exception if needed; this should work for for onStarting. This approach is similar to the one in An...To achieve this, add a boolean field in AbstractStage, which indicates if super was called, check for it in RunnableStage.run and throw a Exception if needed; this should work for for onStarting. This approach is similar to the one in Android, see: http://stackoverflow.com/questions/11867246/how-did-android-implement-the-checks-for-supernotcalledexceptionVersion 2.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/54Add "Represents" Javadoc rule2016-02-22T14:19:04+01:00Christian WulfAdd "Represents" Javadoc ruleThis rule should ensure that the JavaDoc of all types (class, interface, and enum) starts with "Represents" + whitespaceThis rule should ensure that the JavaDoc of all types (class, interface, and enum) starts with "Represents" + whitespaceVersion 2.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/55What types of stateful dependencies do exist?2014-10-17T11:46:41+02:00Christian WulfWhat types of stateful dependencies do exist?### Shared field
- read to a shared field
- => stage can be duplicated
- write to a shared field; shared field is read not until the writing stage has completely finished its work (e.g., by triggering in ``onTerminating()``)
- => s...### Shared field
- read to a shared field
- => stage can be duplicated
- write to a shared field; shared field is read not until the writing stage has completely finished its work (e.g., by triggering in ``onTerminating()``)
- => stage can be duplicated
- recommendation: write should be performed on a unique set to reduce synchronization
- write to a shared field; shared field is read simultanenously
- => ???
### Private state field
- read and write a field without influencing the output ports, e.g., a counter
- => stage can be duplicated
- read and write a field with influencing the output ports
- => ???https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/60PGP error when installing via maven2014-10-31T14:15:38+01:00Christian WulfPGP error when installing via mavenThe corresponding maven deployment plugin should only be executed when executin the goal deploy.The corresponding maven deployment plugin should only be executed when executin the goal deploy.Version 1.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/63IllegalAccessError on guava's AbstractMapBasedMultimap when packing with Jenkins2014-11-11T15:48:42+01:00Christian WulfIllegalAccessError on guava's AbstractMapBasedMultimap when packing with JenkinsSee bug report: https://issues.jenkins-ci.org/browse/JENKINS-22252See bug report: https://issues.jenkins-ci.org/browse/JENKINS-22252Version 1.0https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/64Configure performance test job in jenkins2014-11-18T10:43:57+01:00Nelson Tavares de SousaConfigure performance test job in jenkinsThe project is deactivated for now.
* display performance tests as diagram (perhaps you need write your own jenkins plugin)The project is deactivated for now.
* display performance tests as diagram (perhaps you need write your own jenkins plugin)https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/65Wrong signal handling in Merger2015-02-18T15:24:57+01:00Nelson Tavares de SousaWrong signal handling in MergerMerger does not differentiate between arriving signals. If 2 different signals are sent to merger, the last one will be passed on. It has to be examined which signal comes and from which port. Only if one signal type arrived all ports, i...Merger does not differentiate between arriving signals. If 2 different signals are sent to merger, the last one will be passed on. It has to be examined which signal comes and from which port. Only if one signal type arrived all ports, it can be passed on.Version 1.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/66create teetime.sf.net2014-12-09T16:34:13+01:00Christian Wulfcreate teetime.sf.netVersion 1.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/67Use a Set instead of Map<T, Void> in AbstractStage2014-12-01T16:49:39+01:00Nelson Tavares de SousaUse a Set instead of Map<T, Void> in AbstractStageA set suits more this use caseA set suits more this use caseVersion 1.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/69JavaDoc should ignore the test directories2014-12-11T16:29:32+01:00Nelson Tavares de SousaJavaDoc should ignore the test directoriesJavaDoc is also generated for all the classes in the test directories. It is better to let it ignore them.JavaDoc is also generated for all the classes in the test directories. It is better to let it ignore them.Version 1.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/70Check whether all pipe implementations are declared as final classes2015-02-18T17:00:59+01:00Christian WulfCheck whether all pipe implementations are declared as final classes**Why:**
To ensure maximal performance
**How:**
Best as automatic check**Why:**
To ensure maximal performance
**How:**
Best as automatic checkNelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/71Implement a generic aggregation filter2016-02-22T14:19:04+01:00Christian WulfImplement a generic aggregation filter- one input port of type ``T``, one output port of type ``AggregationContainer<T>``
- aggregation is performed with a user-defined aggregation function on instances of type ``T``
```java
class AggregationContainer<T> {
int count...- one input port of type ``T``, one output port of type ``AggregationContainer<T>``
- aggregation is performed with a user-defined aggregation function on instances of type ``T``
```java
class AggregationContainer<T> {
int count; // probably already accessible by the elements collection
? aggregatedBy
Collection<T> elements; // unordered or ordered?
}
```Version 2.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/73Introduce more specific PipeFactory interfaces2015-06-16T16:51:44+02:00Christian WulfIntroduce more specific PipeFactory interfaces- ``IIntraThreadPipeFactory`` creating an ``IIntraThreadPipe``
- ``IInterThreadPipeFactory`` creating an ``IInterThreadPipe``- ``IIntraThreadPipeFactory`` creating an ``IIntraThreadPipe``
- ``IInterThreadPipeFactory`` creating an ``IInterThreadPipe``Version 2.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/74Distributor does not send elements anymore2014-12-09T07:41:54+01:00Christian WulfDistributor does not send elements anymore**Problem:**
Distributor does not send elements anymore. No exception is thrown.
**Example:**
N/A
**Cause:**
The distributor strategies invoke `outputPort.send()` which does not invoke the target stage.**Problem:**
Distributor does not send elements anymore. No exception is thrown.
**Example:**
N/A
**Cause:**
The distributor strategies invoke `outputPort.send()` which does not invoke the target stage.Version 1.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/77Should we rename Analysis to something more general?2015-06-22T15:18:48+02:00Christian WulfShould we rename Analysis to something more general?Since our framework is not tailored to analyses only, Nils proposed to change the name for `Analysis` and `AnalysisConfiguration`.Since our framework is not tailored to analyses only, Nils proposed to change the name for `Analysis` and `AnalysisConfiguration`.Version 2.0https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/78Should we use maven's release plugin?2014-12-19T17:20:14+01:00Nelson Tavares de SousaShould we use maven's release plugin?http://maven.apache.org/maven-release/maven-release-plugin/examples/prepare-release.html
It seems like, this plugin takes care of several things in one step. E.g. it tags the release in our git repo and increments the version # in the...http://maven.apache.org/maven-release/maven-release-plugin/examples/prepare-release.html
It seems like, this plugin takes care of several things in one step. E.g. it tags the release in our git repo and increments the version # in the pom.xml. It also generates a pom.xml without any dependencies or such things.Version 1.0https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/79Integrate gitlab's wiki into teetime.sf.net2015-01-26T16:37:10+01:00Nelson Tavares de SousaIntegrate gitlab's wiki into teetime.sf.netTwo issues:
- ~~the server needs to add .html automatically~~
- gitlab uses .markdown, but doxia only reads .md filesTwo issues:
- ~~the server needs to add .html automatically~~
- gitlab uses .markdown, but doxia only reads .md filesVersion 1.1https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/80Remove groovy dependency2014-12-11T15:03:31+01:00Christian WulfRemove groovy dependencyGroovy is only used to write the log configuration in the groovy format.
The framework user should have the choice whether he/she wants to add groovy or not.
Thus, our framework should only make use of the xml based configuration (see ...Groovy is only used to write the log configuration in the groovy format.
The framework user should have the choice whether he/she wants to add groovy or not.
Thus, our framework should only make use of the xml based configuration (see http://logback.qos.ch/manual/configuration.html).Version 1.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/81Add carousel pictures2015-01-26T16:35:33+01:00Nelson Tavares de SousaAdd carousel picturesWe need 3 pictures to show in the carousel on the main page.
As we have already one... we do only need another two, which have the same aspect ratio as code_screenshot.png!We need 3 pictures to show in the carousel on the main page.
As we have already one... we do only need another two, which have the same aspect ratio as code_screenshot.png!Version 1.1https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/85Add JavaDoc for AnalysisConfiguration's public methods2014-12-12T18:04:40+01:00Christian WulfAdd JavaDoc for AnalysisConfiguration's public methodsVersion 1.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/88Additional constructor for Distributor2014-12-18T12:28:31+01:00Nils Christian EhmkeAdditional constructor for DistributorCurrently I have to configure a distributor stage as follows:
```java
final Distributor<IFlowRecord> distributor = new Distributor<>();
distributor.setStrategy(new CopyByReferenceStrategy<IFlowRecord>());
```
I would prefer to c...Currently I have to configure a distributor stage as follows:
```java
final Distributor<IFlowRecord> distributor = new Distributor<>();
distributor.setStrategy(new CopyByReferenceStrategy<IFlowRecord>());
```
I would prefer to configure it as follows:
```java
final Distributor<IFlowRecord> distributor = new Distributor<>(new CopyByReferenceStrategy<IFlowRecord>());
```Version 1.0https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/90Remove old and add new copyright header to each class/interface2015-01-16T14:49:18+01:00Christian WulfRemove old and add new copyright header to each class/interfaceWrite and use a script for this task. Kieker already uses such a script for its headers.Write and use a script for this task. Kieker already uses such a script for its headers.Version 1.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/91Search for implementations of PipeFactory in the classpath2015-02-20T12:19:46+01:00Nelson Tavares de SousaSearch for implementations of PipeFactory in the classpathInstead of using the pipe-factories.conf, TeeTime could make a recursive search through the classpaths looking for ".*PipeFactory.class", check if it implements IPipeFactory and add it to the registry.
This is a efficient solution and e...Instead of using the pipe-factories.conf, TeeTime could make a recursive search through the classpaths looking for ".*PipeFactory.class", check if it implements IPipeFactory and add it to the registry.
This is a efficient solution and eliminates the usage of a conf-file. Furthermore, no implementation will be missed.Version 1.1https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/92Analysis.start should throw an exception rather than returning a collection2015-02-04T16:09:59+01:00Christian WulfAnalysis.start should throw an exception rather than returning a collection**Problem:**
If the start of an analysis fails, the programmer is not informed otherwise than by checking the return value.
Especially when testing a concrete analysis configuration, asserting the return value is often missed.
**Sol...**Problem:**
If the start of an analysis fails, the programmer is not informed otherwise than by checking the return value.
Especially when testing a concrete analysis configuration, asserting the return value is often missed.
**Solution proposal:**
Throw a runtime exception with the collection instead of returning it.Version 1.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/96Typo in jenkins2015-01-30T09:57:29+01:00Nelson Tavares de SousaTypo in jenkinsthere is a t missing in "highly-release"
correct the image-url in site.xml afterwardsthere is a t missing in "highly-release"
correct the image-url in site.xml afterwardsVersion 1.1https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/97Refactor EveryXthPrinter2015-02-19T12:08:06+01:00Nelson Tavares de SousaRefactor EveryXthPrinterRight now it extends Stage, but should extend from different abstract classes provided in the frameworkRight now it extends Stage, but should extend from different abstract classes provided in the frameworkVersion 1.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/98Thread termination may be incorrect2015-06-22T15:24:59+02:00Nelson Tavares de SousaThread termination may be incorrectFor now, analysis checks the first stage of a thread block and identifies its termination strategy.
Imagine a thread with 2 stages... the second stage is a ObjectProducer, which will produce until it receives a element from the first st...For now, analysis checks the first stage of a thread block and identifies its termination strategy.
Imagine a thread with 2 stages... the second stage is a ObjectProducer, which will produce until it receives a element from the first stage. The first stage is a ConsumerStage, which triggers the sending of a element depending on its incoming elements.
This thread would be marked as ConsumerThread and hence it would be terminated by invoking its join method. As the second stage is a infite producer, it is possible, it never finishes. As a result, the analysis will never terminate.
(This is just a simple example... I am almost sure, there are more complex, possible configurations)https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/99Add logo download in various resolutions2015-02-17T22:17:51+01:00Christian WulfAdd logo download in various resolutionsVersion 1.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/100Add tooling for code coverage2015-04-14T10:13:32+02:00Christian WulfAdd tooling for code coverageKnown tools:
- https://github.com/cobertura/cobertura (up-to-date)
- http://emma.sourceforge.net/ (2005)Known tools:
- https://github.com/cobertura/cobertura (up-to-date)
- http://emma.sourceforge.net/ (2005)Version 1.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/101Disable PMD rule "CommentRequired" for getter/setter only2016-02-22T14:19:04+01:00Christian WulfDisable PMD rule "CommentRequired" for getter/setter only**Current state:**
The rule is completely excluded.
**Goal:**
The rule should be excluded for getter/setter methods only.
**Proposed solution:**
Write a new rule that exludes getter/setter methods.
``X get*()`` and ``void set...**Current state:**
The rule is completely excluded.
**Goal:**
The rule should be excluded for getter/setter methods only.
**Proposed solution:**
Write a new rule that exludes getter/setter methods.
``X get*()`` and ``void set*(X)``Version 2.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/102Remove deprecated methods in v1.22015-05-01T13:15:20+02:00Nelson Tavares de SousaRemove deprecated methods in v1.2Add milestone to gitlab
* Analysis.start #92
* Analysis.init -> make it private, as it is still used by AnalysisAdd milestone to gitlab
* Analysis.start #92
* Analysis.init -> make it private, as it is still used by AnalysisVersion 2.0https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/104Add PMD rule to ensure unit suffixes2015-04-28T11:26:29+02:00Christian WulfAdd PMD rule to ensure unit suffixesCheck at least for the following variable names:
- duration, distance, mean
General pattern:
"Must end with ``In<unit>``"
Check at least for the following units:
- Sec, Ms, Us, Ns
- Km, M, Cm, Mm
Examples:
- ``duration`` =>...Check at least for the following variable names:
- duration, distance, mean
General pattern:
"Must end with ``In<unit>``"
Check at least for the following units:
- Sec, Ms, Us, Ns
- Km, M, Cm, Mm
Examples:
- ``duration`` => ``durationInSec``
- ``distance`` => ``distanceInCm``
- ``mean`` => ``meanInMs``
Version 1.1Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/105Optimize memory usage2015-02-12T16:58:51+01:00Nelson Tavares de SousaOptimize memory usage
* http://stackoverflow.com/questions/8923689/java-garbage-collector-get-the-deleted-objects
* https://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/tools/usingmmleak/index.html
* http://www.ibm.com/developerworks/library/j-leaks/
* http://stackoverflow.com/questions/8923689/java-garbage-collector-get-the-deleted-objects
* https://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/tools/usingmmleak/index.html
* http://www.ibm.com/developerworks/library/j-leaks/https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/106Introduce load balancing strategy for the distributor2015-03-05T18:31:48+01:00Nelson Tavares de SousaIntroduce load balancing strategy for the distributorIt's possible to create a strategy which can monitor to pipes and determine which stage is faster.
Faster stages can receive a higher priority by sending more elements to the corresponding port.
Mainly, this is for demonstrating purp...It's possible to create a strategy which can monitor to pipes and determine which stage is faster.
Faster stages can receive a higher priority by sending more elements to the corresponding port.
Mainly, this is for demonstrating purposes, to show what's possible with teetime.https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/108Make configs serializable2015-12-07T11:02:35+01:00Nelson Tavares de SousaMake configs serializableFor future work... GUI or the likeFor future work... GUI or the likehttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/112Provide only one of {IterableProducer, InitialElementProducer}2015-04-30T18:19:19+02:00Christian WulfProvide only one of {IterableProducer, InitialElementProducer}- Rename IterableProducer to InitialElementProducer
- Remove original InitialElementProducer- Rename IterableProducer to InitialElementProducer
- Remove original InitialElementProducerVersion 1.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/115Rename CompositeStage to AbstractCompositeStage2015-04-19T01:20:28+02:00Christian WulfRename CompositeStage to AbstractCompositeStageVersion 1.1Arne SalveterArne Salveterhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/116Finish exception handling article2015-05-26T13:48:44+02:00Nelson Tavares de SousaFinish exception handling articlehttps://build.se.informatik.uni-kiel.de/gitlab/chw/teetime/wikis/exception-handlinghttps://build.se.informatik.uni-kiel.de/gitlab/chw/teetime/wikis/exception-handlingVersion 1.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/118Develop a generic Switch stage2015-08-28T09:23:54+02:00Christian WulfDevelop a generic Switch stageA `switch` should serve as super class for:
- `MultipleInstanceOfFilter`
- `FileExtentionSwitch`
Try to abstract both and move the generic logic into a `Switch` stage.A `switch` should serve as super class for:
- `MultipleInstanceOfFilter`
- `FileExtentionSwitch`
Try to abstract both and move the generic logic into a `Switch` stage.Version 2.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/121Reduce measurement inaccuracies on initializing an analysis2015-04-30T17:24:36+02:00Christian WulfReduce measurement inaccuracies on initializing an analysis**Current situation:**
Unconnected ports are detected and handled within ``Analysis.start()``.
**Problem:**
When measuring the execution time by wrapping ``start()``, the analysis is not started at once, but delayed due to the d...**Current situation:**
Unconnected ports are detected and handled within ``Analysis.start()``.
**Problem:**
When measuring the execution time by wrapping ``start()``, the analysis is not started at once, but delayed due to the detection and handling of unconnected ports.
**A solution:**
Move the initialization code to ``init()``.Version 1.1Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/128Move signal handling from Merger to AbstractStage2015-06-02T13:29:09+02:00Christian WulfMove signal handling from Merger to AbstractStageMove the specific signal handling logic from the Merger to ``AbstractStage``.Move the specific signal handling logic from the Merger to ``AbstractStage``.Version 2.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/129Add a page with performance evaluation results on sf.net2015-04-15T14:00:56+02:00Nelson Tavares de SousaAdd a page with performance evaluation results on sf.netFor marketing reasons... TeeTime is so fast and cool!For marketing reasons... TeeTime is so fast and cool!Version 2.0https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/130Terminate running analysis2015-07-30T15:15:55+02:00Nils Christian EhmkeTerminate running analysisI have a potentially long running analysis and require the possibility to abort it. The teetime.framework.Analysis class does currently not provide a suitable method for this.I have a potentially long running analysis and require the possibility to abort it. The teetime.framework.Analysis class does currently not provide a suitable method for this.Version 2.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/131Unstable thread termination2015-07-30T16:01:00+02:00Nelson Tavares de SousaUnstable thread terminationIt is possible that a thread remains in SpScPipe.add() and hence does not terminate.
Furthermore, terminate() is not synchronized.
This is needed for the exception handling to work. (slightly related to #130)It is possible that a thread remains in SpScPipe.add() and hence does not terminate.
Furthermore, terminate() is not synchronized.
This is needed for the exception handling to work. (slightly related to #130)Version 2.0https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/133Move src/performancetest/java to a separate project2015-04-21T13:49:31+02:00Nelson Tavares de SousaMove src/performancetest/java to a separate projectAs the code it more or less tailored to a specific computer (timings) and does not use the framework as intended, it is better so remove it from the main project.As the code it more or less tailored to a specific computer (timings) and does not use the framework as intended, it is better so remove it from the main project.Version 1.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/134Ensure plural for collection variables2015-04-28T11:26:19+02:00Christian WulfEnsure plural for collection variablesFor example, detect the following wrong variable naming:
`Set<Stage> stage`For example, detect the following wrong variable naming:
`Set<Stage> stage`Version 2.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/135Ensure no empty line after method header2015-05-13T05:46:41+02:00Christian WulfEnsure no empty line after method headerDetect:
```java
public void traverse(final Stage stage) {
if (!visitedStage.add(stage)) {
```Detect:
```java
public void traverse(final Stage stage) {
if (!visitedStage.add(stage)) {
```Version 2.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/139Add input ports to composite stages2015-05-05T18:08:54+02:00Nelson Tavares de SousaAdd input ports to composite stagesBy now, the input ports of a composite stage are delegated directly to the first stage.
For the framework to work properly, we need input ports which are directly related to the composite stage.
see #110 By now, the input ports of a composite stage are delegated directly to the first stage.
For the framework to work properly, we need input ports which are directly related to the composite stage.
see #110 Version 2.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/140TeeTime Maven dependency requires additional repository2015-10-26T11:15:28+01:00Nils Christian EhmkeTeeTime Maven dependency requires additional repositoryTo use TeeTime as a Maven dependency, another repository (https://jitpack.io, in addition to sonatype) has to be configured. This is, in my opinion rather unusual, and also an unnecessary barrier for the usage of TeeTime.To use TeeTime as a Maven dependency, another repository (https://jitpack.io, in addition to sonatype) has to be configured. This is, in my opinion rather unusual, and also an unnecessary barrier for the usage of TeeTime.Version 2.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/141Update dependencies2015-04-21T16:34:46+02:00Christian WulfUpdate dependencies- move checkstyle dep to build
- remove hamcrest-core
- update versions- move checkstyle dep to build
- remove hamcrest-core
- update versionsVersion 1.1Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/142Improve FileExtensionSwitch2015-06-02T13:12:29+02:00Christian WulfImprove FileExtensionSwitch- remove logger statements
- perform the task that is described by the BETTER comment- remove logger statements
- perform the task that is described by the BETTER commentVersion 2.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/144Exception handler of a runnable consumer cannot terminate the whole analysis2015-07-30T16:07:28+02:00Christian WulfException handler of a runnable consumer cannot terminate the whole analysisVersion 2.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/147Consider to remove the repository jitpack.io2015-10-26T11:15:01+01:00Christian WulfConsider to remove the repository jitpack.ioRelated to #140 Related to #140 Version 2.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/149Move getNumWaits to IMonitoringPipe2015-05-04T12:42:29+02:00Christian WulfMove getNumWaits to IMonitoringPipeVersion 2.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/150Activate gemnasium2015-05-11T19:10:30+02:00Nelson Tavares de SousaActivate gemnasiumgitlab provides a gemnasium plugin which monitors the project dependencies and alerts, if something is update.
For this, we need to get an API token.gitlab provides a gemnasium plugin which monitors the project dependencies and alerts, if something is update.
For this, we need to get an API token.Version 2.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/151Composite Stages can lead to NPE2015-05-10T10:10:33+02:00Nils Christian EhmkeComposite Stages can lead to NPEGranted, the composite stages are marked as deprecated, but the following analysis throws a NullPointerException. This is a behaviour that hasn't been there some days ago and is a major blocker for my tool.
```java
class TestConfigur...Granted, the composite stages are marked as deprecated, but the following analysis throws a NullPointerException. This is a behaviour that hasn't been there some days ago and is a major blocker for my tool.
```java
class TestConfiguration extends AnalysisConfiguration {
public TestConfiguration() {
final ReadingComposite reader = new ReadingComposite(new File("."));
final Printer<IMonitoringRecord> printer = new Printer<>();
super.connectIntraThreads(reader.getOutputPort(), printer.getInputPort());
super.addThreadableStage(reader);
}
}
@SuppressWarnings("deprecation")
class ReadingComposite extends AbstractCompositeStage {
private final InitialElementProducer<File> producer;
private final Dir2RecordsFilter reader;
public ReadingComposite(final File importDirectory) {
this.producer = new InitialElementProducer<>(importDirectory);
this.reader = new Dir2RecordsFilter(new ClassNameRegistryRepository());
super.connectPorts(this.producer.getOutputPort(), this.reader.getInputPort());
}
public OutputPort<IMonitoringRecord> getOutputPort() {
return this.reader.getOutputPort();
}
@Override
protected Stage getFirstStage() {
return this.producer;
}
}
```Version 2.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/152Release TeeTime Kieker stages somehow in a stable version2015-05-06T14:57:59+02:00Nils Christian EhmkeRelease TeeTime Kieker stages somehow in a stable versionMy tool depends on TeeTime and the TeeTime Kieker stages. The latter, however, are (currently) not intended to be released. However, in order to release my own tool, I require some kind of a stable maven dependency in a non-snapshot vers...My tool depends on TeeTime and the TeeTime Kieker stages. The latter, however, are (currently) not intended to be released. However, in order to release my own tool, I require some kind of a stable maven dependency in a non-snapshot version.Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/153Show news on the main page2015-12-17T16:37:42+01:00Christian WulfShow news on the main pageShow at least the last news and then refer to the news page.Show at least the last news and then refer to the news page.Version 2.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/155Synchronize with GitHub2015-05-07T19:49:59+02:00Nelson Tavares de SousaSynchronize with GitHubAfter a little bit of research, I finally got a test repo to sync with GitHub.
However, for TeeTime, we need to do some things first:
* clean up repo (GitHub only allows files with <100MB; also we should remove anything related to ...After a little bit of research, I finally got a test repo to sync with GitHub.
However, for TeeTime, we need to do some things first:
* clean up repo (GitHub only allows files with <100MB; also we should remove anything related to the performance tests from the history)
* push the same repo to both gitlab and GitHub
* add this shell commands to jenkins teetime-ci-job:
```
git remote set-url origin git@github.com:ChristianWulf/TeeTime.git
git checkout master
git push origin master
```Version 2.0https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/156Clean-up pipe package2015-06-26T14:26:10+02:00Nelson Tavares de SousaClean-up pipe packageThere are many unnecessary pipes in this package.
Futhermore, as we only need 3 types of pipes, we don't need any PipeFactoryLoaderThere are many unnecessary pipes in this package.
Futhermore, as we only need 3 types of pipes, we don't need any PipeFactoryLoaderVersion 2.1Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/161Deploy the homepage to github2015-09-18T16:44:55+02:00Nelson Tavares de SousaDeploy the homepage to githubWe should also make the homepage accessible on github.We should also make the homepage accessible on github.Version 2.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/162Enable monitoring of pipe instances2016-02-22T14:49:19+01:00Nelson Tavares de SousaEnable monitoring of pipe instancesAs #33 does not return pipe instances anymore, we will need a different technique to realize this.As #33 does not return pipe instances anymore, we will need a different technique to realize this.Version 2.1Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/163Introduce error codes2015-10-02T15:33:16+02:00Nelson Tavares de SousaIntroduce error codesInstead of simply throwing exception, we should append a error code to the message.
Explanations of the errors and how to fix them can be listed on our wiki.Instead of simply throwing exception, we should append a error code to the message.
Explanations of the errors and how to fix them can be listed on our wiki.Version 2.1https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/164Should we replace AnalysisConfiguration by CompositeStage?2015-06-22T14:49:39+02:00Christian WulfShould we replace AnalysisConfiguration by CompositeStage?An AnalysisConfiguration is just another name for a composite stage, or not?An AnalysisConfiguration is just another name for a composite stage, or not?https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/165Give ports a name2015-06-23T16:44:20+02:00Nelson Tavares de SousaGive ports a nameFor debugging purposesFor debugging purposesVersion 2.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/166Rework monitoring concept2015-06-15T16:37:55+02:00Christian WulfRework monitoring conceptCurrently, ``connectPorts`` returns ``void``.
We need a way to register the corresponding pipe to the monitoring thread.Currently, ``connectPorts`` returns ``void``.
We need a way to register the corresponding pipe to the monitoring thread.Version 2.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/169Add support for addThreadableStage in composite stages2015-06-22T15:03:30+02:00Christian WulfAdd support for addThreadableStage in composite stagesPossible approaches:
- ~~use the ``InstantiationPipe`` to give a stage a dedicated thread~~ not feasible; stages may have not connected ports
- use the ``owningStage``attribute of ``Stage`` to give a stage a dedicated threadPossible approaches:
- ~~use the ``InstantiationPipe`` to give a stage a dedicated thread~~ not feasible; stages may have not connected ports
- use the ``owningStage``attribute of ``Stage`` to give a stage a dedicated threadVersion 2.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/170Exception in init must terminate the analysis at once2015-08-06T15:52:52+02:00Christian WulfException in init must terminate the analysis at onceCurrently, a thread skips to waiting for the starting signal.Currently, a thread skips to waiting for the starting signal.Version 2.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/171Enable multithreading within nested composite stages2015-06-23T16:44:30+02:00Nelson Tavares de SousaEnable multithreading within nested composite stagesWith #93 working, we only need to enable multiple threads throughout all composite stages.
For this, we need to remove the threadableStages field in AnalysisConfiguration and move the information into the network itself (kind of #33).With #93 working, we only need to enable multiple threads throughout all composite stages.
For this, we need to remove the threadableStages field in AnalysisConfiguration and move the information into the network itself (kind of #33).Version 2.0https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/172Add output ports to distributor at runtime2015-07-02T17:19:08+02:00Christian WulfAdd output ports to distributor at runtimePossible implementations:
- distributor creates the new output port and adds it to its output port list
- a controller logic/stage creates the output port and passes it to the distributor so that the distributor can add it to its outpu...Possible implementations:
- distributor creates the new output port and adds it to its output port list
- a controller logic/stage creates the output port and passes it to the distributor so that the distributor can add it to its output port list
- a controller logic/stage creates the output port and adds it to the distributor's output port list
Communication:
- using volatile
- using another input port in the distributorVersion 2.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/173Clicking on a subpages does nothing with mobile browser2015-09-21T16:18:09+02:00Christian WulfClicking on a subpages does nothing with mobile browserExample:
Documentation -> Project Dependencies.
OS: Android
Browser: ChromeExample:
Documentation -> Project Dependencies.
OS: Android
Browser: ChromeVersion 2.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/174Rename addThreadableStage()2015-08-24T20:17:40+02:00Nelson Tavares de SousaRename addThreadableStage()Suggestions:
* splitThread
* makeExecutable
* beginThread
* runSubsequentStagesInOwnThread
* runInParallel (my favorite)
The new name should be short and should maybe explain that all following stages are executed in an own threadSuggestions:
* splitThread
* makeExecutable
* beginThread
* runSubsequentStagesInOwnThread
* runInParallel (my favorite)
The new name should be short and should maybe explain that all following stages are executed in an own threadVersion 2.0https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/176Remove RelayTestPipe2015-08-26T15:45:00+02:00Christian WulfRemove RelayTestPipeRequires to change some testsRequires to change some testsVersion 2.1Christian WulfChristian Wulf