-
Notifications
You must be signed in to change notification settings - Fork 4
/
CHANGELOG.txt
216 lines (141 loc) · 7.16 KB
/
CHANGELOG.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
irond Release 0.4 - 18.04.13
* Added IF-MAP 2.1 compatibility
irond Release 0.3.4 - 27.08.12
* Bugfix: Use subject instead of issuer id when doing
certificate based authentication
* Updated keystore and irond certificate (now valid for 10 years)
irond Release 0.3.0 - 21.12.11
* Bugfix: Proper handling of terminal-identifier-types.
irond now checks validity of the given string.
* Added irond.comm.rawlog=[true|false] in order to allow
for raw logging of received requests. See
irond.properties.orig and log4j.properties for details.
* Added irond.xml.validate=[true|false] in order to turn
XML schema validation on or off.
Further added irond.xml.schema.0=file.xsd to specify the
XML schema to be used for validation. See
irond.properties.orig for details.
* Rewrote MAP graph data structures to allow for optimizationas
mentioned below. Decouple MAP graph structure from actual
content in the MAP graph.
* Rewrote subscription management:
Differential results for PollResults were determined by the
results of two searches. One search on the old state of the
MAP graph and one search on the new state of the MAP graph.
This is very expensive, both in terms of runtime of the
searches alone and further in terms of the number of matching
operations that have to be done on metadata objects.
The new implementation now holds the state of a subscriptions's
search-graph and included metadata objects in the MAP graph itself
in order to make the determination of differential results less
expensive.
irond's performance managing subscription updates was significantly
improved compared to 0.2.4.
irond Release 0.2.4 - 12.10.11
* Adapt the construction of PollResults to what will be expected
from the Specification. Most recent metadata comes last in PollResult.
This involved quite some changes.
* Refactor the horrible SubscriptionService while changing the ordering
of metadata.
* Update log4j httpcore libraries
* Bugfix: Searcher failed if two different links produced the same
hashCode()
* Bugfix: Searcher would not traverse links already traveled, even if the
depth was smaller than in the first round. This could occur
occur with circles in the MAP graph.
* Bugfix: Remove illegal subscription update optimization.
irond Release 0.2.3 - 06.07.11
* Bugfix: Setting max-poll-result-size was only possible for a
MAPC while creating its first session.
* Bugfix: Exceeding the max-size of a single subscription does
not lead to removal of all subscriptions of a MAPC, but
only of those, that actually exceeded their max-size.
* Bugfix: After PollResultsTooBig occurred, no pollResults would
be sent to the MAPC until a new session would be
established.
* Bugfix: Unmarshalling of the XML request could result in a
ClassCastException if the document didn't start with
the Envelope.
* Bugfix: Link.equals() was not symmetric.
* Bugfix: Do not set the session-id of a MAPC as name attribute
in the searchResult.
* Bugfix: Race condition: a MAPC could create a new session with a
channel attached which was closed during the new session
call.
* Small Performance Improvement:
- Remove some manual string parsing and use Transformer properties
for W3cXmlMetadata.
- Replace newDocumentBuilder() calls in the unmarshalling process
with ThreadLocal variables.
* Another channel behavior change: Send AccessDenied error whenever
a MAPC uses an old channel.
* Print a warning if Content-Length field was not found. Things
will most likely break.
* Set an errorString for errorResults contained in pollResults.
irond Release 0.2.2 - 16.05.2011
* Sizes of SearchResults and PollResults are now determined during
creation of results, e.g. during a search. For SearchResults the
size was checked after the comlete result was marshalled.
* Size limits given by MAPCs are honored now, hopefully.
* Remove unused namespace declarations on metadata objects.
* Refactoring to handle PollResults as Events in comparison to
processing them during the callback. Should improve performance a
bit when multiple MAPC are subject to new PollResults after a
single publish operation.
* Defer the marshalling of responses until all critical IF-MAP logic is
done. Allows for parallel marshalling of responses and should result
in better performance when multiple clients access the MAPS in
parallel.
* Refactoring to remove instanceof checks from the EventProcessor class.
Either by using double-dispatch, or moving them in a more responsible
class.
* Return purgePublisherReceived even if the publisher in question didn't
exist.
* Racing in SessionTimer could lead to a situation where a timed out
session was not removed.
* Renaming of the Marshalling/Unmarshalling classes.
* Search Algorithm: Return on identifiers/links which have been visited
before. Avoids traversing cycles over and over again.
* Use JAXB XML Validation in order to detect bogus requests. Requires
schema documents in the folder schema/ to be available.
* Renamed InvalidSessionId back to InvalidSessionID as the schema defines
it.
irond Release 0.2.1 - 21.04.2011
* ip-address validation fixed. Negative and zero leading bytes were allowed
* Validation of hip-hit identieties. Simple IPv6 checks
* Remove unknown ifmap-* prefixes from metadata when MAPCs send them
* More or less random session-id's
* Check if namespace declaration for filter strings are given
(still no real filter syntax validation)
* Treat device identifier with aik-name as deprecated and respond with
an InvalidIdentifier error message if a MAPC makes use of the aik-name
* Fixed the 'a single ExecutorServer per Timer' bug
* Fixed horrible memoryleak in relation with unmarshalling
* Changed key-pair for irond (new keystore + new certificate)
* Build a publisher-id for an unknown MAPC only using the common name (CN)
of the certificate or the basic authentication username
* Fixed sanity check which backfired on us when deleting metadata which
was added in the same publish request
* Fixed timer bugs
* InvalidSessionID -> InvalidSessionId renaming
* Better detection of failing channels, either SSRC or ARC
* Fixed search algorithm. Failed when identifiers had multiple links
attached.
* Restored channel/session management to the behavior of the 0.1.x
versions. MAPC are allowed to change their SSRC/ARC without closing
the old one. Usage of the old channel is not allowed.
* SearchResultTooBig -> SearchResultsTooBig renaming
* If MAPC tries to use session-id of another MAPC send him
InvalidSessionId, not AccessDenied
* Support for gzip requests and replies. Pretty ugly.
* Simple authorization model:
- authorization.properties allows for the configuration of
read-only clients. (see README)
* Add synchronization for Events other than RequestChannelEvents
(This went undetected, for us at least...)
* Tons of refactoring
- Use ExecutorService implementations where possible (now everywhere?)
- Unify authentication and certificate-based authenticaton
- ChannelThread refactoring (still a mess...)
irond Release 0.2.0 - 09.02.2011
* Rewritten communication layer based on irond-0.1.x