diff --git a/.travis.yml b/.travis.yml
index e27956f34e..0bc7c1ff0c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -17,8 +17,13 @@ branches:
only:
- master
- develop
+ - release
+
before_install:
- - git clone -b develop --single-branch https://github.com/LearnLib/automatalib.git /tmp/automatalib-develop
+ # set Travis environment variables "AUTOMATALIB_FORK" and "AUTOMATALIB_BRANCH" to build custom AutomataLib versions.
+ # Defaults are "LearnLib" and the current/targeted LearnLib branch ($TRAVIS_BRANCH, relies on the same naming
+ # conventions between AutomataLib and LearnLib branches).
+ - git clone -b ${AUTOMATALIB_BRANCH:-$TRAVIS_BRANCH} --single-branch https://github.com/${AUTOMATALIB_FORK:-LearnLib}/automatalib.git /tmp/automatalib-develop
- pushd /tmp/automatalib-develop
# skip several aspects of the build process, because we are only interested in the compiled code
- mvn install -DskipTests -Dmaven.javadoc.skip=true
diff --git a/README.md b/README.md
index 66a7118146..9ba64f2238 100644
--- a/README.md
+++ b/README.md
@@ -42,7 +42,8 @@ Note, that LearnLib requires Java 8.
#### Building development versions
-If you intend to use development versions of LearnLib, simply clone the development branch of the repository
+If you intend to use development versions of LearnLib, you can either use the deployed SNAPSHOT artifacts from the continuous integration server (see [Using Development Versions](https://github.com/LearnLib/learnlib/wiki/Using-Development-Versions)), or build them yourself.
+Simply clone the development branch of the repository
```
git clone -b develop --single-branch https://github.com/LearnLib/learnlib.git
diff --git a/algorithms/active/adt/pom.xml b/algorithms/active/adt/pom.xml
index 56f90a48b3..1020275603 100644
--- a/algorithms/active/adt/pom.xml
+++ b/algorithms/active/adt/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-algorithms-active-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/algorithms/active/adt/src/main/java/de/learnlib/algorithms/adt/learner/ADTLearner.java b/algorithms/active/adt/src/main/java/de/learnlib/algorithms/adt/learner/ADTLearner.java
index 402c2924a6..b13f2740cc 100644
--- a/algorithms/active/adt/src/main/java/de/learnlib/algorithms/adt/learner/ADTLearner.java
+++ b/algorithms/active/adt/src/main/java/de/learnlib/algorithms/adt/learner/ADTLearner.java
@@ -65,6 +65,7 @@
import net.automatalib.words.Word;
import net.automatalib.words.WordBuilder;
import net.automatalib.words.impl.Alphabets;
+import net.automatalib.words.impl.SymbolHidingAlphabet;
/**
* The main learning algorithm.
@@ -101,7 +102,7 @@ public ADTLearner(final Alphabet alphabet,
final ADTExtender adtExtender,
final SubtreeReplacer subtreeReplacer) {
- this.alphabet = alphabet;
+ this.alphabet = SymbolHidingAlphabet.wrapIfMutable(alphabet);
this.observationTree = new ObservationTree<>(this.alphabet);
this.oracle = new SQOOTBridge<>(this.observationTree, oracle, true);
@@ -370,9 +371,17 @@ public void addAlphabetSymbol(I symbol) {
return;
}
- this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
this.hypothesis.addAlphabetSymbol(symbol);
- this.observationTree.getObservationTree().addAlphabetSymbol(symbol);
+
+ SymbolHidingAlphabet.runWhileHiding(alphabet,
+ symbol,
+ () -> this.observationTree.getObservationTree().addAlphabetSymbol(symbol));
+
+ // since we share the alphabet instance with our hypothesis, our alphabet might have already been updated (if it
+ // was already a GrowableAlphabet)
+ if (!this.alphabet.containsSymbol(symbol)) {
+ this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
+ }
for (final ADTState s : this.hypothesis.getStates()) {
this.openTransitions.add(this.hypothesis.createOpenTransition(s, symbol, this.adt.getRoot()));
diff --git a/algorithms/active/adt/src/main/java/de/learnlib/algorithms/adt/learner/ADTLearnerState.java b/algorithms/active/adt/src/main/java/de/learnlib/algorithms/adt/learner/ADTLearnerState.java
index d9b767cbc9..7441212109 100644
--- a/algorithms/active/adt/src/main/java/de/learnlib/algorithms/adt/learner/ADTLearnerState.java
+++ b/algorithms/active/adt/src/main/java/de/learnlib/algorithms/adt/learner/ADTLearnerState.java
@@ -37,7 +37,7 @@ public class ADTLearnerState implements Serializable {
private final ADTHypothesis hypothesis;
private final ADT adt;
- public ADTLearnerState(ADTHypothesis hypothesis, ADT adt) {
+ ADTLearnerState(ADTHypothesis hypothesis, ADT adt) {
this.hypothesis = hypothesis;
this.adt = adt;
}
diff --git a/algorithms/active/dhc/pom.xml b/algorithms/active/dhc/pom.xml
index 70f2ef04c7..7211179719 100644
--- a/algorithms/active/dhc/pom.xml
+++ b/algorithms/active/dhc/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-algorithms-active-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/algorithms/active/dhc/src/main/java/de/learnlib/algorithms/dhc/mealy/MealyDHCState.java b/algorithms/active/dhc/src/main/java/de/learnlib/algorithms/dhc/mealy/MealyDHCState.java
index efeba844cd..2edbf1a718 100644
--- a/algorithms/active/dhc/src/main/java/de/learnlib/algorithms/dhc/mealy/MealyDHCState.java
+++ b/algorithms/active/dhc/src/main/java/de/learnlib/algorithms/dhc/mealy/MealyDHCState.java
@@ -34,7 +34,7 @@
*
* @author bainczyk
*/
-class MealyDHCState implements Serializable {
+public class MealyDHCState implements Serializable {
private final LinkedHashSet> splitters;
private final CompactMealy hypothesis;
diff --git a/algorithms/active/discrimination-tree-vpda/pom.xml b/algorithms/active/discrimination-tree-vpda/pom.xml
index 135780f1d7..cbb42296a5 100644
--- a/algorithms/active/discrimination-tree-vpda/pom.xml
+++ b/algorithms/active/discrimination-tree-vpda/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-algorithms-active-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/algorithms/active/discrimination-tree/pom.xml b/algorithms/active/discrimination-tree/pom.xml
index 8d939bc5ad..874407f2d5 100644
--- a/algorithms/active/discrimination-tree/pom.xml
+++ b/algorithms/active/discrimination-tree/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-algorithms-active-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/algorithms/active/discrimination-tree/src/main/java/de/learnlib/algorithms/discriminationtree/AbstractDTLearner.java b/algorithms/active/discrimination-tree/src/main/java/de/learnlib/algorithms/discriminationtree/AbstractDTLearner.java
index cb34f0aab4..3a37bc0ceb 100644
--- a/algorithms/active/discrimination-tree/src/main/java/de/learnlib/algorithms/discriminationtree/AbstractDTLearner.java
+++ b/algorithms/active/discrimination-tree/src/main/java/de/learnlib/algorithms/discriminationtree/AbstractDTLearner.java
@@ -222,9 +222,14 @@ public void addAlphabetSymbol(I symbol) {
final int newSymbolIdx = this.alphabet.size();
- this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
this.hypothesis.addAlphabetSymbol(symbol);
+ // since we share the alphabet instance with our hypothesis, our alphabet might have already been updated (if it
+ // was already a GrowableAlphabet)
+ if (!this.alphabet.containsSymbol(symbol)) {
+ this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
+ }
+
for (final HState s : this.hypothesis.getStates()) {
final HTransition newTrans = new HTransition<>(s, symbol, dtree.getRoot());
s.setTransition(newSymbolIdx, newTrans);
diff --git a/algorithms/active/discrimination-tree/src/main/java/de/learnlib/algorithms/discriminationtree/hypothesis/DTLearnerHypothesis.java b/algorithms/active/discrimination-tree/src/main/java/de/learnlib/algorithms/discriminationtree/hypothesis/DTLearnerHypothesis.java
index 41c5d30357..d43ece67ee 100644
--- a/algorithms/active/discrimination-tree/src/main/java/de/learnlib/algorithms/discriminationtree/hypothesis/DTLearnerHypothesis.java
+++ b/algorithms/active/discrimination-tree/src/main/java/de/learnlib/algorithms/discriminationtree/hypothesis/DTLearnerHypothesis.java
@@ -31,7 +31,6 @@
import net.automatalib.visualization.DefaultVisualizationHelper;
import net.automatalib.visualization.VisualizationHelper;
import net.automatalib.words.Alphabet;
-import net.automatalib.words.GrowingAlphabet;
import net.automatalib.words.Word;
import net.automatalib.words.impl.Alphabets;
@@ -132,8 +131,8 @@ public HState getSuccessor(HTransition trans) {
@Override
public void addAlphabetSymbol(I symbol) {
- if (this.alphabet instanceof GrowingAlphabet) {
- ((GrowingAlphabet) this.alphabet).addSymbol(symbol);
+ if (this.alphabet.containsSymbol(symbol)) {
+ return;
}
this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
diff --git a/algorithms/active/kearns-vazirani/pom.xml b/algorithms/active/kearns-vazirani/pom.xml
index 0f26aa2513..5a2b08875c 100644
--- a/algorithms/active/kearns-vazirani/pom.xml
+++ b/algorithms/active/kearns-vazirani/pom.xml
@@ -20,7 +20,7 @@ limitations under the License.
de.learnlib
learnlib-algorithms-active-parent
- 0.13.0
+ 0.13.1
../pom.xml
learnlib-kearns-vazirani
diff --git a/algorithms/active/kearns-vazirani/src/main/java/de/learnlib/algorithms/kv/dfa/KearnsVaziraniDFA.java b/algorithms/active/kearns-vazirani/src/main/java/de/learnlib/algorithms/kv/dfa/KearnsVaziraniDFA.java
index fc9caad445..fcb51cf787 100644
--- a/algorithms/active/kearns-vazirani/src/main/java/de/learnlib/algorithms/kv/dfa/KearnsVaziraniDFA.java
+++ b/algorithms/active/kearns-vazirani/src/main/java/de/learnlib/algorithms/kv/dfa/KearnsVaziraniDFA.java
@@ -267,9 +267,14 @@ public void addAlphabetSymbol(I symbol) {
}
final int inputIdx = this.alphabet.size();
- this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
this.hypothesis.addAlphabetSymbol(symbol);
+ // since we share the alphabet instance with our hypothesis, our alphabet might have already been updated (if it
+ // was already a GrowableAlphabet)
+ if (!this.alphabet.containsSymbol(symbol)) {
+ this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
+ }
+
// use new list to prevent concurrent modification exception
for (final StateInfo si : new ArrayList<>(this.stateInfos)) {
final int state = si.id;
diff --git a/algorithms/active/kearns-vazirani/src/main/java/de/learnlib/algorithms/kv/dfa/KearnsVaziraniDFAState.java b/algorithms/active/kearns-vazirani/src/main/java/de/learnlib/algorithms/kv/dfa/KearnsVaziraniDFAState.java
index 421310b9fa..5ec0a18220 100644
--- a/algorithms/active/kearns-vazirani/src/main/java/de/learnlib/algorithms/kv/dfa/KearnsVaziraniDFAState.java
+++ b/algorithms/active/kearns-vazirani/src/main/java/de/learnlib/algorithms/kv/dfa/KearnsVaziraniDFAState.java
@@ -30,7 +30,7 @@
*
* @author bainczyk
*/
-class KearnsVaziraniDFAState implements Serializable {
+public class KearnsVaziraniDFAState implements Serializable {
private final CompactDFA hypothesis;
private final BinaryDTree> discriminationTree;
diff --git a/algorithms/active/kearns-vazirani/src/main/java/de/learnlib/algorithms/kv/mealy/KearnsVaziraniMealy.java b/algorithms/active/kearns-vazirani/src/main/java/de/learnlib/algorithms/kv/mealy/KearnsVaziraniMealy.java
index a1a36620e8..74e0902b43 100644
--- a/algorithms/active/kearns-vazirani/src/main/java/de/learnlib/algorithms/kv/mealy/KearnsVaziraniMealy.java
+++ b/algorithms/active/kearns-vazirani/src/main/java/de/learnlib/algorithms/kv/mealy/KearnsVaziraniMealy.java
@@ -283,9 +283,14 @@ public void addAlphabetSymbol(I symbol) {
}
final int inputIdx = this.alphabet.size();
- this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
this.hypothesis.addAlphabetSymbol(symbol);
+ // since we share the alphabet instance with our hypothesis, our alphabet might have already been updated (if it
+ // was already a GrowableAlphabet)
+ if (!this.alphabet.containsSymbol(symbol)) {
+ this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
+ }
+
// use new list to prevent concurrent modification exception
for (final StateInfo> si : new ArrayList<>(this.stateInfos)) {
final int state = si.id;
diff --git a/algorithms/active/kearns-vazirani/src/main/java/de/learnlib/algorithms/kv/mealy/KearnsVaziraniMealyState.java b/algorithms/active/kearns-vazirani/src/main/java/de/learnlib/algorithms/kv/mealy/KearnsVaziraniMealyState.java
index eba16b9840..8b59a4cc01 100644
--- a/algorithms/active/kearns-vazirani/src/main/java/de/learnlib/algorithms/kv/mealy/KearnsVaziraniMealyState.java
+++ b/algorithms/active/kearns-vazirani/src/main/java/de/learnlib/algorithms/kv/mealy/KearnsVaziraniMealyState.java
@@ -33,7 +33,7 @@
*
* @author bainczyk
*/
-class KearnsVaziraniMealyState implements Serializable {
+public class KearnsVaziraniMealyState implements Serializable {
private final CompactMealy hypothesis;
private final AbstractWordBasedDiscriminationTree, StateInfo>> discriminationTree;
diff --git a/algorithms/active/lstar/pom.xml b/algorithms/active/lstar/pom.xml
index 4565d2b968..ab86d1644b 100644
--- a/algorithms/active/lstar/pom.xml
+++ b/algorithms/active/lstar/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-algorithms-active-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/algorithms/active/lstar/src/main/java/de/learnlib/algorithms/lstar/AbstractAutomatonLStar.java b/algorithms/active/lstar/src/main/java/de/learnlib/algorithms/lstar/AbstractAutomatonLStar.java
index ed65ffbb04..d68b6043fb 100644
--- a/algorithms/active/lstar/src/main/java/de/learnlib/algorithms/lstar/AbstractAutomatonLStar.java
+++ b/algorithms/active/lstar/src/main/java/de/learnlib/algorithms/lstar/AbstractAutomatonLStar.java
@@ -28,6 +28,7 @@
import net.automatalib.automata.MutableDeterministic;
import net.automatalib.commons.util.collections.CollectionsUtil;
import net.automatalib.words.Alphabet;
+import net.automatalib.words.impl.SymbolHidingAlphabet;
/**
* Abstract base class for algorithms that produce (subclasses of) {@link MutableDeterministic} automata.
@@ -63,7 +64,7 @@ public abstract class AbstractAutomatonLStar alphabet, MembershipOracle oracle, AI internalHyp) {
- super(alphabet, oracle);
+ super(SymbolHidingAlphabet.wrapIfMutable(alphabet), oracle);
this.internalHyp = internalHyp;
internalHyp.clear();
}
@@ -191,8 +192,10 @@ public void addAlphabetSymbol(I symbol) {
return;
}
- super.addAlphabetSymbol(symbol);
this.internalHyp.addAlphabetSymbol(symbol);
+
+ SymbolHidingAlphabet.runWhileHiding(alphabet, symbol, () -> super.addAlphabetSymbol(symbol));
+
this.updateInternalHypothesis();
}
diff --git a/algorithms/active/lstar/src/main/java/de/learnlib/algorithms/lstar/AbstractLStar.java b/algorithms/active/lstar/src/main/java/de/learnlib/algorithms/lstar/AbstractLStar.java
index 1e9493cb0b..0af041d97b 100644
--- a/algorithms/active/lstar/src/main/java/de/learnlib/algorithms/lstar/AbstractLStar.java
+++ b/algorithms/active/lstar/src/main/java/de/learnlib/algorithms/lstar/AbstractLStar.java
@@ -232,10 +232,14 @@ public void addAlphabetSymbol(I symbol) {
return;
}
- this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
-
final List>> unclosed = this.table.addAlphabetSymbol(symbol, oracle);
+ // since we share the alphabet instance with our observation table, our alphabet might have already been updated
+ // (if it was already a GrowableAlphabet)
+ if (!this.alphabet.containsSymbol(symbol)) {
+ this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
+ }
+
completeConsistentTable(unclosed, true);
}
}
diff --git a/algorithms/active/lstar/src/main/java/de/learnlib/algorithms/lstar/AbstractLStarState.java b/algorithms/active/lstar/src/main/java/de/learnlib/algorithms/lstar/AbstractLStarState.java
index 4f268fe65e..7a6b9418af 100644
--- a/algorithms/active/lstar/src/main/java/de/learnlib/algorithms/lstar/AbstractLStarState.java
+++ b/algorithms/active/lstar/src/main/java/de/learnlib/algorithms/lstar/AbstractLStarState.java
@@ -33,7 +33,7 @@ public abstract class AbstractLStarState implements Serializable {
private final GenericObservationTable observationTable;
- public AbstractLStarState(final GenericObservationTable observationTable) {
+ AbstractLStarState(final GenericObservationTable observationTable) {
this.observationTable = observationTable;
}
diff --git a/algorithms/active/lstar/src/main/java/de/learnlib/algorithms/lstar/AutomatonLStarState.java b/algorithms/active/lstar/src/main/java/de/learnlib/algorithms/lstar/AutomatonLStarState.java
index d63a678ade..8ad48478dd 100644
--- a/algorithms/active/lstar/src/main/java/de/learnlib/algorithms/lstar/AutomatonLStarState.java
+++ b/algorithms/active/lstar/src/main/java/de/learnlib/algorithms/lstar/AutomatonLStarState.java
@@ -40,9 +40,9 @@ public class AutomatonLStarState extends AbstractLStarState {
private final AI hypothesis;
private final List> stateInfos;
- public AutomatonLStarState(final GenericObservationTable observationTable,
- final AI hypothesis,
- final List> stateInfos) {
+ AutomatonLStarState(final GenericObservationTable observationTable,
+ final AI hypothesis,
+ final List> stateInfos) {
super(observationTable);
this.hypothesis = hypothesis;
this.stateInfos = stateInfos;
diff --git a/algorithms/active/nlstar/pom.xml b/algorithms/active/nlstar/pom.xml
index 34529a8574..124978483b 100644
--- a/algorithms/active/nlstar/pom.xml
+++ b/algorithms/active/nlstar/pom.xml
@@ -20,7 +20,7 @@ limitations under the License.
de.learnlib
learnlib-algorithms-active-parent
- 0.13.0
+ 0.13.1
LearnLib :: Algorithms :: NL*
learnlib-nlstar
diff --git a/algorithms/active/pom.xml b/algorithms/active/pom.xml
index c2da98e796..a9653ce25b 100644
--- a/algorithms/active/pom.xml
+++ b/algorithms/active/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-algorithms-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/algorithms/active/ttt-vpda/pom.xml b/algorithms/active/ttt-vpda/pom.xml
index 48e22d71cd..cf2daf847c 100644
--- a/algorithms/active/ttt-vpda/pom.xml
+++ b/algorithms/active/ttt-vpda/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-algorithms-active-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/algorithms/active/ttt/pom.xml b/algorithms/active/ttt/pom.xml
index 1424df3706..71d3e2e498 100644
--- a/algorithms/active/ttt/pom.xml
+++ b/algorithms/active/ttt/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-algorithms-active-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/algorithms/active/ttt/src/main/java/de/learnlib/algorithms/ttt/base/AbstractTTTLearner.java b/algorithms/active/ttt/src/main/java/de/learnlib/algorithms/ttt/base/AbstractTTTLearner.java
index 880ca1f894..e265e09a38 100644
--- a/algorithms/active/ttt/src/main/java/de/learnlib/algorithms/ttt/base/AbstractTTTLearner.java
+++ b/algorithms/active/ttt/src/main/java/de/learnlib/algorithms/ttt/base/AbstractTTTLearner.java
@@ -949,9 +949,14 @@ public void addAlphabetSymbol(I symbol) {
final int newSymbolIdx = this.alphabet.size();
- this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
this.hypothesis.addAlphabetSymbol(symbol);
+ // since we share the alphabet instance with our hypothesis, our alphabet might have already been updated (if it
+ // was already a GrowableAlphabet)
+ if (!this.alphabet.containsSymbol(symbol)) {
+ this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
+ }
+
for (final TTTState s : this.hypothesis.getStates()) {
final TTTTransition trans = createTransition(s, symbol);
trans.setNonTreeTarget(dtree.getRoot());
diff --git a/algorithms/passive/pom.xml b/algorithms/passive/pom.xml
index 2e97a5d75f..47f483a8d7 100644
--- a/algorithms/passive/pom.xml
+++ b/algorithms/passive/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-algorithms-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/algorithms/passive/rpni-edsm/pom.xml b/algorithms/passive/rpni-edsm/pom.xml
index a9560d3a75..c81b986d6e 100644
--- a/algorithms/passive/rpni-edsm/pom.xml
+++ b/algorithms/passive/rpni-edsm/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-algorithms-passive-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/algorithms/passive/rpni-mdl/pom.xml b/algorithms/passive/rpni-mdl/pom.xml
index 773b2478ce..755a51262e 100644
--- a/algorithms/passive/rpni-mdl/pom.xml
+++ b/algorithms/passive/rpni-mdl/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-algorithms-passive-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/algorithms/passive/rpni/pom.xml b/algorithms/passive/rpni/pom.xml
index 2abc6bc323..2068feca23 100644
--- a/algorithms/passive/rpni/pom.xml
+++ b/algorithms/passive/rpni/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-algorithms-passive-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/algorithms/pom.xml b/algorithms/pom.xml
index bf16efa7d0..686a169ccf 100644
--- a/algorithms/pom.xml
+++ b/algorithms/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-build-parent
de.learnlib
- 0.13.0
+ 0.13.1
../build-parent/pom.xml
diff --git a/api/pom.xml b/api/pom.xml
index b0e48c9ff4..ebf60c1e05 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
de.learnlib
learnlib-build-parent
- 0.13.0
+ 0.13.1
../build-parent/pom.xml
diff --git a/archetypes/basic/pom.xml b/archetypes/basic/pom.xml
index 827dc6f61a..cd4c43efad 100644
--- a/archetypes/basic/pom.xml
+++ b/archetypes/basic/pom.xml
@@ -27,7 +27,7 @@ limitations under the License.
de.learnlib.archetypes
learnlib-archetypes-parent
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/archetypes/complete/pom.xml b/archetypes/complete/pom.xml
index a7b496adbd..cbed117de2 100644
--- a/archetypes/complete/pom.xml
+++ b/archetypes/complete/pom.xml
@@ -27,7 +27,7 @@ limitations under the License.
de.learnlib.archetypes
learnlib-archetypes-parent
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/archetypes/pom.xml b/archetypes/pom.xml
index 72d09bc1b2..3d64afea06 100644
--- a/archetypes/pom.xml
+++ b/archetypes/pom.xml
@@ -28,7 +28,7 @@ limitations under the License.
de.learnlib
learnlib-build-parent
- 0.13.0
+ 0.13.1
../build-parent/pom.xml
diff --git a/build-parent/pom.xml b/build-parent/pom.xml
index dd786bd0b3..b496ab0083 100644
--- a/build-parent/pom.xml
+++ b/build-parent/pom.xml
@@ -30,7 +30,7 @@ limitations under the License.
de.learnlib
learnlib-parent
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/build-tools/pom.xml b/build-tools/pom.xml
index 5256056f13..13a407b42a 100644
--- a/build-tools/pom.xml
+++ b/build-tools/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/commons/acex/pom.xml b/commons/acex/pom.xml
index 21da6a13f1..dfd80e677f 100644
--- a/commons/acex/pom.xml
+++ b/commons/acex/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-commons-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/commons/counterexamples/pom.xml b/commons/counterexamples/pom.xml
index 4ec4cb94f4..7f7201fd5b 100644
--- a/commons/counterexamples/pom.xml
+++ b/commons/counterexamples/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-commons-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/commons/pom.xml b/commons/pom.xml
index 3a192c565f..19a7ae9788 100644
--- a/commons/pom.xml
+++ b/commons/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-build-parent
de.learnlib
- 0.13.0
+ 0.13.1
../build-parent/pom.xml
diff --git a/commons/settings/pom.xml b/commons/settings/pom.xml
index d4a30adfe2..9d50ceb028 100644
--- a/commons/settings/pom.xml
+++ b/commons/settings/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-commons-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/commons/util/pom.xml b/commons/util/pom.xml
index a559a61e74..4dcef41ff5 100644
--- a/commons/util/pom.xml
+++ b/commons/util/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-commons-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/commons/util/src/main/java/de/learnlib/util/statistics/SimpleProfiler.java b/commons/util/src/main/java/de/learnlib/util/statistics/SimpleProfiler.java
index f923235981..1b914671d6 100644
--- a/commons/util/src/main/java/de/learnlib/util/statistics/SimpleProfiler.java
+++ b/commons/util/src/main/java/de/learnlib/util/statistics/SimpleProfiler.java
@@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package de.learnlib.util.statistics;
import java.util.Map;
@@ -34,7 +33,6 @@ public final class SimpleProfiler {
private static final Map CUMULATED = new ConcurrentHashMap<>();
private static final Map PENDING = new ConcurrentHashMap<>();
- private static final boolean PROFILE = true;
private static final LearnLogger LOGGER = LearnLogger.getLogger(SimpleProfiler.class.getName());
private static final double MILLISECONDS_PER_SECOND = 1000.0;
@@ -43,7 +41,7 @@ private SimpleProfiler() {
}
/**
- * reset internal data.
+ * Reset internal data.
*/
public static void reset() {
CUMULATED.clear();
@@ -51,40 +49,46 @@ public static void reset() {
}
/**
- * start activity.
+ * Start the timer identified by the given key.
+ *
+ * @param name
+ * The name of the timer to be started.
*/
public static void start(String name) {
- if (!PROFILE) {
- return;
- }
- long start = System.currentTimeMillis();
-
- PENDING.put(name, start);
-
+ PENDING.put(name, System.currentTimeMillis());
}
/**
- * stop activity.
+ * Stop the timer identified by the given key. After stopping a timer, the time passed from its
+ * {@link #start(String) initialization} will be added to the cumulated time of the specific timer.
+ *
+ * @param name
+ * The name of the timer to be stopped.
*/
public static void stop(String name) {
- if (!PROFILE) {
- return;
- }
Long start = PENDING.remove(name);
if (start == null) {
return;
}
long duration = System.currentTimeMillis() - start;
- Counter sum = CUMULATED.get(name);
- if (sum == null) {
- sum = new Counter(name, "ms");
- }
+ Counter sum = CUMULATED.computeIfAbsent(name, k -> new Counter(k, "ms"));
sum.increment(duration);
- CUMULATED.put(name, sum);
}
/**
- * get profiling results as string.
+ * Return the counter for the cumulated (passed) time of the given timer.
+ *
+ * @param name
+ * The name of the timer to be returned.
+ *
+ * @return The counter for tracking the passed milliseconds of the timer
+ */
+ public static Counter cumulated(String name) {
+ return CUMULATED.get(name);
+ }
+
+ /**
+ * Get profiling results as string.
*/
@Nonnull
public static String getResults() {
@@ -100,7 +104,7 @@ public static String getResults() {
}
/**
- * log results in category PROFILING.
+ * Log results in category PROFILING.
*/
public static void logResults() {
for (Entry e : CUMULATED.entrySet()) {
diff --git a/datastructures/discrimination-tree/pom.xml b/datastructures/discrimination-tree/pom.xml
index a34b9efb7a..e6297ad84b 100644
--- a/datastructures/discrimination-tree/pom.xml
+++ b/datastructures/discrimination-tree/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-datastructures-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/datastructures/list/pom.xml b/datastructures/list/pom.xml
index 7181a311ea..dabdccf9c2 100644
--- a/datastructures/list/pom.xml
+++ b/datastructures/list/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-datastructures-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/datastructures/observation-table/pom.xml b/datastructures/observation-table/pom.xml
index 9cbd390944..1ed5fcd8dd 100644
--- a/datastructures/observation-table/pom.xml
+++ b/datastructures/observation-table/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-datastructures-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/datastructures/pom.xml b/datastructures/pom.xml
index ce4b9cc9fe..39a6c92c97 100644
--- a/datastructures/pom.xml
+++ b/datastructures/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-build-parent
de.learnlib
- 0.13.0
+ 0.13.1
../build-parent/pom.xml
diff --git a/datastructures/pta/pom.xml b/datastructures/pta/pom.xml
index 352a3e2fad..a55afa3ff8 100644
--- a/datastructures/pta/pom.xml
+++ b/datastructures/pta/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
learnlib-datastructures-parent
de.learnlib
- 0.13.0
+ 0.13.1
../pom.xml
diff --git a/distribution/pom.xml b/distribution/pom.xml
index 6e514826d7..efd3dfb1a3 100644
--- a/distribution/pom.xml
+++ b/distribution/pom.xml
@@ -20,7 +20,7 @@ limitations under the License.
de.learnlib
learnlib-build-parent
- 0.13.0
+ 0.13.1
../build-parent/pom.xml
@@ -29,6 +29,13 @@ limitations under the License.
pom
LearnLib :: Distribution
+
+ An artifact that aggregates all other artifacts of LearnLib to produce an Uber-JAR that can be used in
+ non-maven environments. Likewise, this single artifact may be used in maven-aware environments to declare a
+ dependency on all LearnLib artifacts.
+
+
+
de.learnlib
learnlib-parent
- 0.13.0
+ 0.13.1
pom
LearnLib
http://learnlib.github.io/learnlib/maven-site/${project.version}
@@ -129,7 +129,7 @@ limitations under the License.
scm:git:git@github.com:LearnLib/learnlib.git
scm:git:git@github.com:LearnLib/learnlib.git
https://github.com/LearnLib/learnlib/tree/develop
- learnlib-0.13.0
+ learnlib-0.13.1
- 0.7.0
+ 0.7.1
0.1
8.1
3.0.2
@@ -410,14 +410,6 @@ limitations under the License.
-
-
-
- org.apache.maven.wagon
- wagon-ssh
- 2.6
-
-