@@ -4,7 +4,160 @@ This file lists modifications introduced by each version.
44
55## [ Unreleased]
66
7- * empty
7+ * Empty
8+
9+ ## [ 1.2.0] - 2020/02/12
10+
11+ ### ClockManager class modifications
12+
13+ ** Bug fixes in ClockManager:**
14+
15+ [[ issue 86]] [ issue: #86 ]
16+
17+ * The modification of the ` ClockManager ` 's internal time value (the one actually used by the ` Topology ` ) now coincides
18+ with the ticking of the ` Clock `
19+
20+ Now, the clock is first incremented and then the ` Scheduler ` is called.
21+ It was previously swapped, resulting in some user interactions happening before the call to the ` Scheduler ` (and thus
22+ the ` MessageEngine ` and all ` Node.onClock() ` ).
23+ Everything is now properly synchronized.
24+
25+ ** Symbol modification in ClockManager**
26+
27+ * ` ClockManager.currentTime() ` now returns an ` int ` instead of an ` Integer `
28+
29+ This value could never be ` null ` . The return value being an object was a remnant of previous versions.
30+
31+ [ issue: #86 ] : https://github.com/jbotsim/JBotSim/issues/86
32+
33+ ### MessageEngine modifications
34+
35+ [[ issue 85]] [ issue: #85 ] [[ issue 83]] [ issue: #83 ]
36+
37+ Some changes have been applied in an effort to simplify, clarify and speed-up the * message engine* system.
38+
39+ * ` MessageEngine ` is now an interface
40+ * A ` reset() ` method has been added
41+ * It does not handle delays anymore
42+
43+
44+ * The former ` MessageEngine ` has been renamed to ` DefaultMessageEngine `
45+
46+ ` io.jbotsim.core.MessageEngine ` -> ` io.jbotsim.core.DefaultMessageEngine `
47+
48+ * It does not handle delays (see ` DelayMessageEngine ` )
49+ * It speeds-up former check on link existence
50+
51+ * A specific ` DelayMessageEngine ` has been re-created in ` jbotsim-core ` /` io.jbotsim.core `
52+
53+ * It handles instantaneous delays better than the former ` MessageEngine ` used to
54+ * It also handles general delays better than the former ` MessageEngine ` used to
55+ * A new ` DelayMessageEngine.disableLinksContinuityChecks() ` method has been added
56+
57+ This method prevents the system from checking the existence of the link each step while it is delayed.
58+ The check still remains at the end of the sending round and before the delivery round.
59+ This speeds message processing up when you send a lot of delayed messages in a static environment.
60+ * ` AsyncMessageEngine ` and ` RandomMessageEngine ` implementations have been modified to benefit from the new
61+ ` DelayMessageEngine ` capabilities
62+
63+ * ` RandomMessageEngine ` has been renamed into ` RandomDelayMessageEngine `
64+
65+ ` jbotsim-extras-common ` /` io.jbotsim.contrib.messaging.RandomMessageEngine ` -> ` io.jbotsim.contrib.messaging.RandomDelayMessageEngine `
66+
67+
68+ * Test classes and examples have been added to showcase all MessageEngines behaviors
69+
70+ If you used to inherit from ` MessageEngine ` , you have several options:
71+ * inherit from ` DefaultMessageEngine ` (no delay feature)
72+ * inherit from ` DelayMessageEngine ` (has delay feature)
73+ * actually implement the ` MessageEngine ` interface
74+
75+ ### Topology class modifications
76+
77+ ** Bug fixes in Topology:**
78+
79+ * ` Topology.restart() ` and ` Topology.clearMessages() ` now properly remove delayed messages [[ issue 83]] [ issue: #83 ]
80+
81+ This is delegated to the new ` MessageEngine.reset() ` method.
82+
83+ [ issue: #83 ] : https://github.com/jbotsim/JBotSim/issues/83
84+
85+ ### Node class modifications
86+
87+ ** New symbols in Node:**
88+ * ` Node.hasNeighbor(Node) ` , ` Node.hasInNeighbor(Node) ` , ` Node.hasOutNeighbor(Node) ` have been created [[ issue 85]] [ issue: #85 ]
89+
90+ These methods allow you to directly test the presence of the provided ` Node ` in the neighborhood of the object
91+ on which they are called. Please see documentation for details.
92+
93+ ** Modifications in Node:**
94+ * ` Node.getOutNeighbors() ` has been improved, avoiding unnecessary copies [[ issue 85]] [ issue: #85 ]
95+
96+ ### Message class modifications
97+
98+ ** New symbol in Message:**
99+
100+ * ` Message.isRetryModeEnabled() ` accessor has been created [[ issue 85]] [ issue: #85 ]
101+
102+ [ issue: #85 ] : https://github.com/jbotsim/JBotSim/issues/85
103+
104+ ### TikzTopologySerializer class modifications
105+
106+ [[ issue 80]] [ issue: #80 ]
107+
108+ ** Behavior modifications in TikzTopologySerializer:**
109+
110+ * Directed links are now supported
111+
112+ Directed links are properly exported (using ` "->" ` option).
113+ This supposes that ` Topology.getOrientation() ` returns ` DIRECTED ` .
114+ * TikZ colors are now better supported
115+ * The previous * scale* parameter is now a proper scale factor
116+
117+ Its previous default value was ` 50 ` . It is now ` 1/50. ` , resulting in the same default value.
118+
119+ ** Symbol modifications in TikzTopologySerializer:**
120+
121+ * The ` TikzTopologySerializer.DEFAULT_EOL ` constant has been added
122+
123+ This constant sets the value of the default End-Of-Line delimiter: ` "\n" ` .
124+
125+ * The ` TikzTopologySerializer.DEFAULT_SCALE_FACTOR ` constant has been added
126+
127+ This constant sets the default scale factor that must be applied to the distance between nodes: ` 1/50 ` .
128+
129+ * A new constructor ` TikzTopologySerializer(String, double) ` has been added
130+
131+ This constructor allows to specify custom values for both the * EOL* and the * scale factor* .
132+
133+ * ` exportTopology(Topology topology, double scaleFactor) ` is now ` protected `
134+
135+ It was previously ` public ` . You can achieve the same behavior by using the new constructor.
136+
137+ [ issue: #80 ] : https://github.com/jbotsim/JBotSim/issues/80
138+
139+ ### New icon in the jbotsim-icons module
140+
141+ ` jbotsim-icons ` /` io.jbotsim.ui.icons `
142+
143+ * A fully transparent new icon has been added [[ issue 84]] [ issue: #84 ]
144+ * ` jbotsim-icons ` /` io/jbotsim/ui/icons/transparent.png `
145+
146+ As usual, it's path can be accessed using the corresponding constant ` Icons.TRANSPARENT ` .
147+
148+ [ issue: #84 ] : https://github.com/jbotsim/JBotSim/issues/84
149+
150+ ### JNode class modifications
151+
152+ [[ issue 77]] [ issue: #77 ]
153+
154+ ** Bug fix in JNode:**
155+
156+ * The wired ` Link ` created between two nodes using the Swing UI (start a right click on the first and drag to the second
157+ before releasing the button) now takes ` Topology.getOrientation() ` into account instead of always creating undirected
158+ links
159+
160+ [ issue: #77 ] : https://github.com/jbotsim/JBotSim/issues/77
8161
9162## [ 1.1.1] - 2019/09/26
10163
@@ -807,7 +960,8 @@ have executed their onStart() method before that, you may simply call start()
807960on your topology immediately followed by a call to pause().
808961(Eventually we will provide an atomic call to this effect.)
809962
810- [ Unreleased ] : https://github.com/jbotsim/JBotSim/compare/v1.1.1...develop
963+ [ Unreleased ] : https://github.com/jbotsim/JBotSim/compare/v1.2.0...develop
964+ [ 1.2.0 ] : https://github.com/jbotsim/JBotSim/compare/v1.1.1...v1.2.0
811965[ 1.1.1 ] : https://github.com/jbotsim/JBotSim/compare/v1.1.0...v1.1.1
812966[ 1.1.0 ] : https://github.com/jbotsim/JBotSim/compare/v1.0.0...v1.1.0
813967[ 1.0.0 ] : https://github.com/jbotsim/JBotSim/compare/v1.0.0-beta03...v1.0.0
0 commit comments