forked from restlet/restlet-framework-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathchanges.txt
More file actions
1325 lines (1304 loc) · 72.9 KB
/
changes.txt
File metadata and controls
1325 lines (1304 loc) · 72.9 KB
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
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
===========
Changes log
===========
- @version-full@ (@release-date@)
- Bugs fixed
- Fixed generation of XML header according to the character
set of the DomRepresentation.
- Thread local variables are now cleared correctly.
Prevented unloading of WAR files or OSGi bundles
using Restlet. Reported by Felix Leipold,
Dustin Jenkins and Rickard Oberg.
- 1.1.10 (2010-04-23)
- Bugs fixed
- Removed debug trace when using the Basic authentication.
- Fixed generation of the Content-length header in requests
when using ranges.
- Fixed generation of Resource tags in a WADL document
according to the 2009 WADL RNC (generate the Parameter
elements before the Method ones).
Reported by Leigh Klotz.
- 1.1.9 (2010-03-30)
- Bugs fixed
- Allowed to specify its own user agent.
- Fixed support of latin1 characters in credentials for
the HTTP_BASIC scheme.
- 1.1.8 (2010-01-29)
- NRE and Extension Enhancements
- War client now sets the modification date, if available.
Suggested by Warren Janssens.
- Bugs fixed
- Fixed generation of Atom document.
Reported by Bedwyr Humphreys.
- Issue with line breaks that were removed when PUTting
a file. Contributed by Daniel Truemper.
- Precondition check was wrong for 'if-unmodified-since' if
dates were equals. Reported by Andreas Schneider.
- WadlApplication wasn't exposing the default route of routers.
Reported by John Wismar.
- 1.1.7 (2009-11-20)
- Bugs fixed
- Some Jetty parameters (maxThreads, etc.) had to be set at the
connector creation time instead. Now they only need to be set
at start time. Reported by Avi Flax.
- Fixed issue with Grizzly Maven artifact ID.
Reported by Daniel Peters.
- Fixed issue with TransformRepresentation which should not use
XMLFilter in getSaxSource(). Contributed by Warren Janssens.
- Fixed bug in hours formatting in text elements of Atom feeds.
Reported by Moisei Rabinovich.
- Fixed potential NPE in ContentType.
Reported by Eugeniy Chemezov.
- Fixed bug in engine causing "connectTimeout" property to
always be zero, for all connectors.
Reported by Evgeny Shepelyuk.
- Fixed bug in internal HTTP client causing "connectTimeout"
property on Client to be ignored. Reported by Rahul Juneja.
- Fixed bug in Apache HTTP client causing "connectTimeout"
property on Client to be ignored. Reported by Jim Alateras.
- PUT with empty entities were causing 400 errors. The test
in Resource has been removed.
Reported by Nicolas Rinaudo and Rhett Sutphin
- Fixed bug in InputEntityStream causing issue with mark/reset
logic. Reported by Arjohn Kampman.
- Fixed bug that generates WADL documentation with wrong base
ref. Reported by Carsten Lohmann.
- Updated the response with all ChallengeRequests sent by the
server. Reported by Murugesh Krishnamurthy.
- Misc
- Updated license file to mention distribution under EPL 1.0 in
addition to other licenses, like for Restlet 2.0.
- Added Series#getValuesArray(String, boolean) method.
- 1.1.6 (2009-09-28)
- Bugs fixed
- Fixed bug in Template class when the pattern is updated.
- Fixed bug when a Restlet application is deployed in Weblogic
10 listening on port 80. Reported by Sondre Eikanger Kvalø.
- Fixed bug with the type of the content tag of Atom documents.
- Fixed bug regarding reading of WriterRepresentation.
Patch contributed by Bruno Dumon.
- GWT client now accepts relative HTTP URIs.
Reported by Wish Gandhi and fixed by Bruno Harbulot.
- Fixed potential NPE in ContentType class.
Reported by Eric Runquist.
- Fixed bug with range service and redirections.
- The "Location" header must contain an absolute URI.
Reported by Simon Reinhardt.
- The internal HTTP server now shuts down in all cases after
30 seconds. Reported by Martin Pernollet.
- Fixed potential NPE in internal HTTP server.
- Fixed potential bug with RangeInputStream causing 100% CPU
utilization with java NIO.
Reported and contributed by Tal Liron.
- Router#attachDefault() method now relies on the protected
createRoute() method. Reported by Rob Heittman.
- Misc
- Updated Grizzly to version 1.9.17.
- Updated FileUpload to version 1.2.1.
- Updated JavaMail to version 1.4.2.
- Updated JAXB RI to version 2.1.12.
- Updated JSON library to version from 2009/08/16.
- Updated OAuth library to version from 2009/06/17.
- Removed console traces when Restlet-GWT starts and stops the
HTTP client. Reported by Frank Rousseau.
- 1.1.5 (2009-05-26)
- Bugs fixed
- Fixed bug in Directory AlphaNumComparator.
Reported and fixed by Rob Heittman.
- Fixed bug in S3 authentication algorithm when bucket name was
specified in the host name. Reported by Matt J. Watson.
- Fixed potential NPE with Reference#getMatrix. Reported by Tal
Liron.
- Fixed matching of Firefox2 for Windows agent name. Reported by
Peter Childs.
- Fixed jSSLutils Maven group ID. Reported by John Wismar.
- Fixed innacurate warnings in logs for 304 (Not modified)
statuses with empty response entities.
Reported by Nicholas Brown.
- Fixed bug in ReaderRepresentation causing some issues while
writing itself. Reported by Nicolas Rinaudo.
- Fixed bug regarding the resolution of relative URI used in
IncludeInfo. Reported by Jerome Bernard.
- Fixed potential NPE in FreeMarker's TemplateRepresentation.
Reported by Matt J. Watson.
- Fixed MediaType.APPLICATION_W3C_XSLT value to
application/xslt+xml (was application/xsd+xml).
Reported by Jean-Yves Cronier.
- ObjectRepresentation was closing the outputstream too early
instead of simply flushing.
- Fixed potential IllegalStateException when updating the allowed
methods on Resource subclasses. Reported by Micah Whitacre.
- Fixed issue between Tomcat and Servlet adapter when the
response could be sent too early due to "Content-Length"
header triggering the sending too early.
Reported by Stephen Colebourne.
- Fixed potential NPE in DomRepresentation when creating the
transformer. Reported by Micah Whitacre.
- Fixed bug preventing the TunnelService to process full media
types passed in query parameter. Reported by Michael Berman.
- Fixed flushing bug with HTTP server connectors.
- Fixed parsing bug in Atom extension for inline content.
- Fixed flushing bug with HTTP server connectors when the client
party closes its connection at shutdown stage. Reported and
contributed by Attila Babo.
- Misc
- The Template implementation now uses "\\d" as a regex for the
Variable.TYPE_DIGIT constant.
- The "com.noelios.restlet" OSGi bundle is now lazily activated.
Suggested by Micah Whitacre.
- 1.1.4 (2009-04-06)
- Bugs fixed
- Fixed issue in JettyHandler mixing HTTP and HTTPS requests.
Reported by Albert Boehmler.
- When updating a file via the FILE connector, some deletion
issue could occur on Windows due to JVM integration issues
with the OS. A workaround to reduce this was to invoke the
garbage collection. Reported by Kevin Conaway.
- The CLAP connector didn't set the expiration date based on
its 'timeToLive' parameter. Reported by Peter Becker.
- Added dependencies to the fileupload and dbcp modules for
OSGi runtime. Reported by Rob Heittman.
- Fixed "Content-location" header value set by the
DirectoryResource when files are served from a CLAP connector.
Reported by David Fogel.
- Fixed starting issue with the range service.
- Fixed POM generation issue with dependencies release version.
Reported by Paul Austin.
- Fixed selector exhaustion issue with Grizzly connector.
Reported by Bruce Lee.
- Fixed content negotiation bug in JAX-RS extension.
Reported by Fabio Mancinelli.
- Fixed bug in TunnelService preventing the replacement of
client preferences if the HTTP header was "Accept" and not
"accept".
- Fixed flushing bug with WriterRepresentation and
SaxRepresentation classes. Reported by Tal Liron.
- Misc
- Updated DirectoryTestCase (tested directory are made unique).
May help fix a bug with Windows and deleted files reported by
Kevin Conaway.
- Made several JAX-RS imports optional in the OSGi manifest.
Suggested by Hendy Irawan.
- Updated Jetty to version 6.1.15.
- JAX-RS extension now dynamically load the default providers
to not throw class not found exceptions if they are not
available in the classpath (JavaMail, JAXB, etc.)
- Updated JAXB to version 2.1.10.
- Upgraded Grizzly to version 1.9.10.
- 1.1.3 (2009-02-26)
- Bugs fixed
- Fixed Regex issue in Template with fixed variables.
Contributed by Bruno Dumon.
- Fixed bug in ReadableRepresentation preventing channel from
closing. Reported by Janne Husberg.
- Fixed bug with jSSLutils integration. Reported by Dan Noble
and fixed by Bruno Harbulot.
- Handler is now capable of discovering allowed methods, even
in protected Handler subclasses. Reported by Leigh Klotz.
- Fixed the inclusion test of media types when one contains a
"*+".
- Fixed wrong computed "content-length" header when encoding
representations using the Encoder. Reported by Tamas
Cservenak.
- Fixed wrong computed "content-location" header generated by
the DirectoryResource. Reported by David Fogel.
- Fixed potential bug with EncodeRepresentation when only
Identity applies.
- Misc
- Upgraded JAXB to version 2.1.9.
- Upgraded Grizzly to version 1.9.5.
- 1.1.2 (2009-01-23)
- Bugs fixed
- org.restlet.util.Engine#getClassLoader() didn't return
the system classloader when all other were null. Fixed by
Rob Heittman.
- Fixed bug when JsonRepresentation are instantiated with a
JSONArray object. Reported by Adrian Nadeau.
- Fixed bug that occurs when a request with a query part is
sent to a Directory Restlet.
- Fixed values of headers "Content-length" and "Content-Range"
issues when serving a range. Clarified the non support of
multiple ranges and cases where the content-range cannot be
properly deduced. Reported by Diego Ballve.
- The Maven POM for the JAX-RS extension was referencing the
JAX-RS 1.0 snapshot version instead of the final 1.0 version.
Reported by Hendy Irawan
- ServerServlet was not always leveraging the createWarClient()
method. Reported by Marcelo Ochoa.
- Fixed NPE when using the "cri" and "crs" variables in log
format. Reported by Maxence Bernard.
- Fixed NPE with OSGi. Reported by Hendy Irawan and fixed by
Xuhui Wang.
- When a Resource was returning a 204 (No content) status, it
was converted into a 404 error. Now it is left untouched.
Reported by Ryan Niemeyer.
- Added translation of the HttpUrlConnectionCall class for the
backport to JDK 1.4. Contributed by Taras Puchko.
- Fixed some bugs in JAX-RS extension:
- in Util.doesImplements(..) and renamed it to
Util.doesImplement(..). Reported by Luke Studley and
Bruno Dumon.
- JaxRsUriBuilder.path(Class, String). Reported by
Juergen Zimmermann
- NPE in JaxRsProviders.getContextResolver(..). Reported
by Juergen Zimmermann
- Fixed bug in StatusService preventing the "homeRef" property
from being taken into account. Reported by Remi Dewitte.
- Fixed bug in servlet extension pom which causes the
javax.servlet api archive to be mistakenly packaged in
generated war file. Reported by Daniel Woo.
- Fixed potential NPE in Servlet logging.
Reported by Yuri de Witt.
- Fixed bug in the internal HTTP client preventing the
sending of requests with a relative resource reference.
Reported by Paul Austin.
- Fixed NPE in DecodeRepresentation when the wrapped
representation has no stream. Reported by Nicolas Rinaudo.
- Fixed potential encoding bug with ReaderRepresentation.
Reported by Nicolas Rinaudo.
- The ServerServlet now sets the HTTP headers after the status
to prevent issues with Tomcat 5.0 and "Content-Length: 0"
headers sending the response immediately. This also fixes
a similar issue with GWT that forced to return an empty
representation. Reported by Eirik Bjorsnos.
- Fixed potential recursion in ServletWarClientEntity.
Reported by Nicholas Brown.
- Fixed bug in Restlet-GWT preventing the callback to work
with broken connections. Reported by Bill Greenseth.
- Misc
- Fully moved org.restlet.gwt.internal content into
org.restlet.gwt.engine package.
- Fixed backport issue with the NRE core (Class not found:
javax.security.auth.login.CredentialException). Contributed
by Taras Puchko.
- Fixed Javadocs of Reference regarding invalid URI characters.
- Upgraded jSSLutils to version 0.5.1.
- Upgraded Grizzly to version 1.9.4.
- Upgraded JSON library to latest version.
- Upgraded FreeMarker to 2.3.15.
- Upgraded Spring to 2.5.6.
- 1.1.1 (2008-10-31)
- Bugs fixed
- Fixed regression with applications deployed in Servlet
container hosted on Windows (Path "\WEB-INF\restlet.xml"
does not start with a "/" character). Reported by Brian
E. Williams.
- 1.1.0 (2008-10-28)
- Important change
- The servlet extension now tries to instantiate the single
application with the empty constructor first, then the one
with the parameter of type Context. The aim is to encourage
most people to use the empty constructor as it is the
recommended way since release 1.1M5. The other constructor
is still working but logs once a warning message.
- Bugs fixed
- Updated the type of the digest value from String to array of
bytes. Reported and contributed by Kevin Conaway.
- Fixed potential NPE in NIO caused by ByteUtils. Reported by
Bruce Lee.
- Added missing CGLib imports in Spring library manifest.
Reported by Adam Harris.
- Added missing parsing of the "published" tag in Atom feeds.
- XPath expression evaluation could swallow some exceptions
in XmlRepresentation subclasses. Reported by Richard
Hoberman.
- Fixed potential NPE with Digest authentication when the
client's identifier is not known.
- Fixed potential thread safety issues with client connectors.
Reported by Tim Peierls.
- Fixed potential NPE in Guard#doHandle method. Reported by
Diego Ballve.
- Fixed 404 response with Directory Restlet when the file's name
contains "%" character. Reported by Andrew Herbert.
- ResourceException was sometimes calling Status#toString()
instead of Status#getDescription() to get the exception
message. Reported by Aron Roberts.
- API enhancements
- Added a "tcpNoDelay" option for internal and Apache HTTP
clients. Contributed by Kevin Conaway.
- Added a DigestRepresentation that allows to both use an
entity and compute its digest value. Suggested by Kevin
Conaway.
- Added the handling of server or client connector's context
when adding a connector respectively to servers and clients
list of a component.
- Refactored constructors of the ParameterInfo class in the
WADL extension in order to reflect the fact that "name" and
"style" attributes are required.
- Added the ability the give a title to WadlApplication or
WadlResource instances. Suggested by Jerome Bernard.
- The Request#isConfidential() method has been refactored to
be supported by Message and Response as well. The method
Request#setConfidential() has been removed (back to Restlet
1.0 state). Added Protocol#isConfidential() method to support
the new implementation which rely on Request#getProtocol().
Reported by Kevin Conaway.
- Misc
- Updated JAX-RS API to version 1.0. The implementation of the
runtime environment is not fully finished yet. We are
waiting for an access to the TCK.
- Updated Grizzly to latest 1.8.6.2 version.
- Improved the performance of the ByteUtils#toString() methods
significantly using a buffer. Impact the performance of the
Representation#toString() method. Reported by Aaron Crow.
- Removed unecessary 'final' modifiers in catch clauses.
Reported by Richard Hoberman.
- ServerServlet now copies all attributes from the Servlet
context into the component's context.
- Fixed Resource#allowPut() error in Javadocs. Reported by
Erik Beeson.
- Added the support of content negotiation to the WAR client.
This was done by refactoring and sharing the existing logic
available in the FILE client connector.
- 1.1 Release Candidate 2 (2008-09-24)
- Bugs fixed
- Fixed bug when a webapp is mounted on the root instead of
some context path. Reported by Bruno Dumon.
- Fixed bug regarding the deeplyAccessible property for a
directory. Reported by Carlos Alexandre Moscoso.
- Fixed GWT javascript recursion with the Engine#getInstance
method. Reported by Doug Alcouffe.
- Fixed potential NPE with Spring integration when the
component is not declared in the servlet configuration file.
Reported by Alexander Koppelhuber.
- Using a Engine.loadClass(), a ClassNotFound exception was
not returning the missing class name. Reported by Vincent
Ricard.
- Fixed potential NPE in Restlet constructor when Engine is
missing. Reported by John Logdson.
- Fixed parsing of the HTTP WWW-Authenticate header when no
realm is provided. Reported by Roman Geus.
- Now the caller's classloader is used to try to load classes
to fix a regression introduced in 1.1 RC1. Reported by
Bruno Dumon.
- Unknown challenge schemes used to hide the actual status of
response for client HTTP connectors. Now only a warning is
logged. Reported by Tamas Cservenak.
- Lowered the log message for connectors without protocols
from SEVERE to FINE. Reported by Paolo Borelli.
- WadlApplication now correctly handles nested resources when
the parent resource has no 'id' attribute. Also supports
root resources with no leading slash. Patches contributed
by Vincent Ricard.
- Fixed error in Conditions.getStatus() sometimes returning
304 for methods other than HEAD and GET. Contributed by
Stephan Koops.
- Fixed uncessary assumption that an input stream would
return -1 several times at the end. Reported by Marcelo
Ochoa.
- SpringHost were created without context, causing some NPE
when trying to access client dispatchers. Reported by
Alexei Sokolov.
- Fixed potential ClassCastException with
ReadableRepresentation when used with a non selectable
channel. Reported by Rob Heittman.
- Fixed IO exception "Resource temporarily unavailable" that
could occur on Linux during file transfers due to a bug
fixed in JDK 7 only (#5103988). Reported by Emblem Parade,
Roman Geus.
- Fixed bug causing blockings when exchanging an entity for a
DELETE method with internal connectors. Reported by
Tamas Cservenak.
- Fixed autowiring of the default routes. Reported by Paolo
Borelli.
- Fixed potential security exception at
ServerServlet#isDefaultComponent method. Reported by Marcelo
Ochoa.
- Fixed "Too many open files" exception with the internal
server connector that did not close the socket after sending
the response. Reported by Christoph Korn.
- Fixed race issue in SSL unit test with Jetty. Server was
stopped too early.
- Fixed potential "Address already in use" exception with the
grizzly connector when the server is required to connect on
ephemeral port.
- Fixed Grizzly exceptions "Unable to write to the non-blocking
channel. Unable to select the channel to write to it.
Selection timed out.". Reported by Bruce Lee, Emblem Parade
and Roman Geus.
- Misc
- Removed deprecated code in GWT module not need for a first
release.
- Added initial support for HTTP challenges in GWT module.
Suggested by Gabor Dolla. Help from Rasmus Agerholm.
- Updated db4o to version 7.4.58.
- Updated FreeMarker to version 2.3.14.
- Updated JAX-RS API to version 0.11.
- Updated GWT to version 1.5.2 (final).
- 1.1 Release Candidate 1 (2008-08-20)
- Breaking change
- The logger names used by Restlet have been fully refactored
to allow use more predictable names, to facilitate logging
configuration, filtering, etc. See the wiki for details:
http://wiki.restlet.org/docs_1.1/g1/13-restlet/29-restlet/98-restlet/101-restlet.html
- Bugs fixed
- Fixed NPE with WadlApplications that host Restlet subclasses.
Reported by François Renard.
- Removed all 'volatile' declaration in the Restlet-GWT module
to prevent compilation issues. Reported by Nitin Gupta and
fixed by Rob Heittman.
- Fixed NPE occuring in JaxbRepresentation due to recent usage
of representation's character set.
- Fixed NPE in HttpRequest when using a Server instance without
context. Reported by Bruno Dumon.
- Fixed NPE in WadlApplication. Reported by Vincent Ricard.
- Fixed blockings in internal HTTP connectors while processing
requests. Reported by Zsolt Czinkos.
- Refactored the ImmutableDate class since comparison operations
("after", etc) may fail. Reported by Mike Brzozowski.
- Fixed bug in InputEntityStream when entity was containing '0'
bytes.
- Fixed instantion of application with a child context when
deployed in a servlet container. Reported by Vincent Ricard.
- Fixed bug in Grizzly connector causing retrieval of a request
entity to fail.
- Fixed bug in chunked encoding reading, forgetting to read the
trailing new line. That caused connection resets between the
JDK.net HTTP client and the Grizzly connector. Reported by
Ralf Bommersbach. Debugging help from Kevin Conaway.
- Fixed bug in Restlet example with HTTPS server configuration.
Reported by Christy Ring and fixed by Bruno Harbulot.
- Fixed context issue in Spring RestletFrameworkServlet.
Contributed by Rhett Sutphin.
- Fixed NPE when an application runs inside a servlet container
as compressed WAR file. Reported by Jorge L. Williams.
- API Enhancements
- Added warning message when no client connector supports the
request's protocol. Suggested by François Renard.
- Added the ability to provide Wadl documentation to any
Restlet instances.
- Added an org.restlet.data.Digest class, a "digest" property
to Representation and a DigestService for applications.
Suggested by Chris Winters and Benoit Maujean.
- Filtered broken connection based on French messages in
addition to English ones.
- Vastly improved internal client performances on all operations
including chunked reading and writing.
- Status#toString() now appends the description if available
for more meaningful messages.
- Added Representation#exhaust() method to read and discard
content optimally (better than getText()).
- Now a Reference that gets some invalid URI characters will
automatically encode those characters instead of throwing
an IllegalArgumentException. A message will still be logged
with a "fine" level. Suggested by Brad Peabody.
- Added static Context.getCurrentLogger() method which always
returns a non-null logger, if possible the current context's
logger.
- Deprecated Form and Template constructors with a logger.
- Added static Engine.setUserClassLoader() and
getUserClassLoader() methods to allow a user to provide his
own class loader to use in priority for all class loading
actions done by Restlet code. Also kept the previous
getClassLoader() static method to return the 'best' class
loader available. Issue with Groovy reported by Avi Flax.
- NRE and Extension Enhancements
- Refactored WADL extension based on John Logsdon's feed-back.
Added convenience methods and constructors on FaultInfo,
MethodInfo and RepresentationInfo. Removed unecessary methods
on WadlResource like getRepresentationInfo(Variant) and
getParametersInfo(RequestInfo|ResponseInfo|Representation-
Info). Added MethodInfo#add*() short-cut methods.
- JAX-RS provider exception handling improved in the
MessageBodyReader class. Contributed by Bruno Dumon.
- Updated jSSLutils to version 0.5.
- Added com.noelios.restlet.util.TraceHandler for debugging
purpose displaying the logger name and message of each log
record received by the log manager.
- Misc
- Updated Grizzly to version 1.8.4.
- Uniformized logger names relying on the static method
Context.getCurrentLogger().
- Added maven-metadata.xml files in the Maven repositories.
Suggested by Guillaume Chatelet.
- 1.1 Milestone 5 (2008-08-07)
- Security warning
- The handling of Context has been significantly refactored in
this release. A new Context#createChildContext() method has
been added to create a new isolated child context from a
parent component's context. Application(Context) constructor
doesn't wrap the given context anymore. Attach methods on
virtual hosts and internal component router now automatically
set the child context on the target application is a null
context is detected.
- Bugs fixed
- Allowed subclasses of StatusService to get the throwable
that generate the error in getRepresentation() method.
Reported by Loic Mathieu.
- The Servlet adapter now stops the whole Component instead
of just the Application.
- Fixed Apache HttpClient extension bug regarding multiple
headers. Reported by Stephan Koops.
- Fixed potential concurrency issues in Response and
WrapperList/Series/Form. Reported by Stephan Koops.
- Fixed potential NPE when using Velocity with template
representations having no modification date. Reported by
Evan Worley.
- Moved generation of entries at the the end of Atom feeds.
Reported by Bruno Harbulot.
- Fix potential NPE in Template class. Reported by Ralf
Bommersbach
- Fixed bug in HTTP client connectors causing a null response
entity to be returned when no entity headers were found but
when chunked encoding was detected.
- Each connector now has its own instance of Context to allow
setting of different parameter values on different
connectors.
- Fixed issue with character sets and proxies where a character
set could be written twice in HTTP headers. Reported by Alex
Milowski.
- The Router.defaultMatchQuery property wasn't properly taken
into account by the Route class. Now it sets the default
value for Route.matchQuery property.
- Fixed bug in Grizzly connector causing some requests to hand.
Contributed by Bruno Harbulot.
- API Enhancements
- Added a "Request.originalRef" property containing the URI
reference originally requested by the client. Clarified the
purpose of "Request.resourceRef". Suggested by Alex Milowski
and Rob Heittman.
- Client now has a new constructor taking a string with the
protocol name instead of a Protocol instance.
- Replaced "Response.challengeRequest" by "challengeRequests"
list property to conform to HTTP semantics. Contributed by
Bruno Harbulot.
- Clarified concurrency constraints on Uniform/Restlet
subclasses and on Resource class.
Suggested by Bruno Harbulot.
- Added public Resource#getAllowedMethods() method.
- Allow the routing of URIs with or without taking into
account the query part. Suggested by Jim Alateras and
contributed by Bruno Dumon.
- Completed the Component's XML config with the default query
match setting defined on routers. Suggested by Bruno Dumon.
- Replaced the Context#getThread(Runnable) method with a more
flexible org.restlet.service.TaskService class and a new
"taskService" property on Application. Many design
contributions from Tim Peierls. Suggestions by Kevin Conaway.
- Clarified Javadocs for static getCurrent() methods. Suggested
by Patrick Logan.
- Replaced Map<String, Object> parameters by Map<String, ?>
in Template and Resolver classed. Suggested by Leigh Klotz.
- Added shortcut Route#getMatchingMode() and setMatchingMode()
methods that redirect calls to the "template" property.
- Documented the default matching mode on Router.
- Deprecated Context#setLogger() as there is no compelling use
for it and synchronized setParameters() and setAttributes()
methods. Updated Javadocs of Context related to concurrent
access and modifications of those collections. Suggested by
Tim Peierls.
- Added HTTP OAuth authentication scheme constant.
- Completed the Component's XML config with the support of
parameters under the component, client and server elements.
Reported by Bruno Harbulot.
- Added a org.restlet.service.Service class, super class of all
existing service classes, with "enabled" and "started"
properties. Enabled services are automatically started by
their parent application or component.
- Added an org.restlet.data.Range class to represent content
ranges.
- Added "enabledCipherSuites" and "disabledCipherSuites"
parameters to HTTPS connectors supporting those settings.
Contributed by Bruno Harbulot.
- Added Representation.range property to indicates the partial
content available. Corresponds to Content-Range HTTP header.
Also added a getAvailableSize() to return the range size in
case it is set, or getSize() otherwise.
- Added a RangeService class and an Application.rangeService
property to control to automatic handling of range of
response entities.
- Added "resumeUpload" and "temporaryExtension" properties on
the Directory class to enable resumable uploads. This
limit the number of concurrent uploads on the same file to
one client at a time.
- NRE and Extension Enhancements
- Added a static HttpServletRequest getRequest(Request) method
to the Servlet extension.
- DirectoryResource now exposes isDirectoryTarget() and
isFileTarget() methods. Suggested by Jean-Yves Cronier.
- Enhanced WADL extension to support all WADL description
properties and both formatting and parsing. Also added new
WadlRepresentation and WadlResource classes to facilitate the
description of Resources as WADL documents.
Sponsored by NetDev Ltd (http://www.netdev.co.uk).
- The Apache HTTP Client extension can now have a retry handler
parameter set. Suggested by Sanjay Acharya.
- Added a "sslContextFactory" parameter and attribute to HTTPS
connectors to improve the flexibility of SSL configuration. If
this parameter isn't set, the previous parameters are used
instead. Contributed by Bruno Harbulot.
- Exceptions occuring while writing the response entities are
now reported as severe errors instead of just info messages.
Broken connections are still reported as info messages to
reduce log size. Contributed by Bruno Dumon.
- Made the com.noelios.ext.ssl extension public to provide more
flexibility in configuring SSL certificates. Depends on
jSSLutils library 0.4. Contributed by Bruno Harbulot.
- Added a port of Restlet to GWT. This is a subset of the
Restlet API and Engine, mostly the client side working on top
of GWT 1.5 RC1.
- Slightly refactored and documented OAuth extension.
- Renamed the "org.restlet.ssl.hostnameVerifier" attribute into
just "hostnameVerifier" for consistency with existing naming.
- SpringBeanRouter can now search beans in ancestors.
Contribution from James Maki.
- JaxbRepresentation now takes into account its "characterSet"
property to set the "jaxb.encoding" property on the JAXB
marshaller internally used. Reported by Sanjay Acharya.
- Misc
- Refactored WAR client to remove remaining class in NRE core.
- Refactored OSGi support to not require one activator for each
bundle/extension anymore. Only the NRE bundle has an activator
which introspects the installed bundles for the usual
descriptor files in "META-INF/services" directories. Suggested
by Hendy Irawan.
- 1.1 Milestone 4 (2008-05-20)
- Bugs fixed
- Fixed NPE with internal HTTP server when no reason phrase is
available for the response status. Reported by Stephan Koops.
- Fixed potential NPE in request processing code when a request
was not fully set (missing properties like the method).
- Fixed issues with chunked encoding and socket closing.
Contributed by Kevin Conaway.
- Fixed potential NPE in ApplicationClientDispatcher. Reported
by Alex Milowski.
- Series.getValues() was not respecting the 'ignoreCase'
parameter. Contributed by Stephan Koops.
- Allowed only UTF-8 character set for JsonRepresentation.
Reported by Michael B?ckling.
- API Enhancements
- Matrix parameters are now fully supported by the Reference
and the Form classes. Added many new methods, similar to the
ones available for query strings.
- File-like extensions are now fully supported by the Reference
class. See getExtensions(), getExtensionsAsArray() and setter
methods.
- Added Reference.hasExtensions(), hasFragment(), hasMatrix(),
hasQuery() and hasScheme() methods.
- Matrix parameters are now ignored by tunnel service.
Contributed by Stephan Koops.
- Refactored the TunnelService implementation, renamed the
"extensionTunnel" to "extensionsTunnel" and added the
"queryTunnel" property for consistency. Suggested by Chuck
Mortimer.
- Deprecated the Restlet.init() method. In Restlet 1.2, this
method will be removed and its logic directly put in the
handle(Request, Response) method.
- Added static Response.getCurrent()/setCurrent() and Request.
getCurrent() methods. Implementation based on thread local
variables updated by component and applications when they
handle a request/response couple. Suggested by Stephan Koops.
- Added new Response.setStatus() methods and new Status
constructors for more flexibility in setting status with
associated exceptions.
- Ensured the all NRE core and extensions classes properly pass
the throwable/exceptions to the error statuses so they can be
later retrieved or printed. Suggested by Steve Loughran.
- Added support for new RIAP authority: HOST to issue requests
relative to the current virtual host.
Suggested by Rob Heittman.
- Added APPLICATION_ALL_XML constant and proper changes to the
MediaType.includes() to recognize those patterns. Contributed
by Stephan Koops.
- Moved shared initialization logic of Resource constructor ands
init() method into initialization block.
- Static valueOf() methods now treat "" as null.
- Added connectTimeout attribute on both Client and
ClientHelper classes. Reported by Avi Flax.
- Added static "current" property on Application and
VirtualHost returning the instance associated with the
current thread.
- Added Context.getThread(Runnable) method to centralize usage
of thread (potentially doing some pooling and currently
copying the thread local variables).
- Deprecated Context.getApplication(). Use static method
Application.getCurrent() instead.
- Removed several unecessary throw clauses in ByteUtils and
added some missing Javadocs. Contributed by Stephan Koops.
- NRE and Extension Enhancements
- Atom extension is now able to write Feed and Service XML
documents and not just reading/parsing them. This can be used
to return Atom feeds as representations.
- Added Velocity's RepresentationTemplateLoader class and a new
constructor to TemplateRepresentation which allows the
processing of a Velocity template provided as a Restlet
Representation.
- Deprecated Protocol.SMTP_STARTTLS, replaced by a "startTls"
parameter on JavaMail connector.
- Added Protocol.POP and POPS constants.
- Added ChallengeScheme.POP_BASIC (USER+PASS) and POP_DIGEST
(APOP) constants.
- Added support for POP v3 and POP/SSL v3 to the JavaMail
connector and refactored existing code.
Sponsored by RunMyProcess (http://www.runmyprocess.com).
- The debugging mode of the JavaMail connector is now optional
and can be changed with a connector parameter "debug".
- Refactored the JavaMail connector to separate the message
parsing and formatting into three new classes:
MessageRepresentation, MessagesRepresentation and
RepresentationMessage. Suggested by Matthieu Hug.
- Added an ObjectFactory to the JAX-RS extension for customized
root resource class and provider instantiation. Contributed
by Bruno Dumon.
- The local connectors (FILE and CLAP connectors for now) have
a new "defaultLanguage" parameter that is uses when no parent
application is available (no MetadataService accessible).
Limitation reported by Jules Milner-Brage.
- Added SslContextFactory and DefaultSslContextFactory to the
com.noelios.restlet.util package. Contributed by Bruno
Harbulot.
- Misc
- Updated Grizzly to 1.7.3.
- Improved logging consistency.
- Expressed the Eclipse plugin dependencies using the
"Import-Package" instructions instead of "Required-Bundle".
- All connector and authentication modules now have OSGi
activator to automatically register themselves with the
engine. The engine module also registers itself with the API.
Suggested by Hendy Irawan, with help from Edward Yakop.
- Updated db4o 7.2 to latest stable build.
- Added Spring example based on REST book chapter 7.
Contributed by Konstantin L?ufer.
- Removed unecessary libraries from distribution.
- The WAR client is now only available for Application deployed
using ServletServer or a subclass.
- Made javax.servlet.* dependencies optional for the fileupload
extension. Reported by Hendy Irawan.
- 1.1 Milestone 3 (2008-04-01)
- Bugs fixed
- Fixed setRedirectRef(String) method which wasn't supporting
relative URIs when no base reference was available on the
resource reference. Now it uses the resource reference
instead. Reported by Steve Loughran.
- Made the SpringApplication constructor public. Reported by
Peter Neubauer.
- The AWS authentication wasn't properly detected by the
engine. Reported by Steve Loughran.
- Fixed directory redirections in DirectoryResource class.
- Fixed NPE in RestletFrameworkServlet. Reported by Yuri de Wit
and fixed by Rhett Sutphin.
- Fixed socket closing issues with the internal HTTP
connectors. Reported and fixed by Kevin Conaway.
- Fixed potential NPE in CLAP connector. Reported by Rob
Heittman.
- Fixed potential NPE in Freemarker extension when the
template is provided under the form of a representation.
- Request.getProtocol() now returns the protocol of the
targetRef instead of the baseRef when the targetRef itself is
absolute. Patch contributed by Jeroen Goubert (Schaubroeck).
- When using new Reference(baseref, "absolute-path"), calling
getTargetRef() now returns a reference with the baseRef
cleared. Patch contributed by Jeroen Goubert (Schaubroeck).
- API Enhancements
- Added OAuth extension as a pluggable authentication scheme.
Contributed by Adam Rosien.
- Added XDB extension providing integration with Oracle
embedded JVM. Contributed by Marcelo Ochoa.
- Made the org.restlet.util.Resolver generic and used it in
Guard to allow the user to provide a secret resolver without
needing to subclass Guard.
- DomRepresentation.getDocument() now creates a new empty
document if no document is available or can't be parsed.
- Reference class now enforces the usage of valid URI
characters only. Suggested by Avi Flax.
- Static methods added to Reference: isGenericDelimiter(char),
isReserved(char), isSubDelimiter(char), isUnreserved(char)
and isValid(char).
- DomRepresentation now has a protected createTransformer()
method that can be overridden to customize the properties of
the JAXP Transformer. Contributed by Rob Heittman.
- All getters in Reference returning URI encoded string now
have an additional method taking a 'decode' parameter.
Suggested by Paul J. Lucas.
- TransformRepresentation can now be reused multiple times by
multiple threads in parallel. Contributed by Marc Portier.
- Parameters and output properties can now be set on the
TransformRepresentation and are automatically passed to the
created JAXP Transformers. Suggested by Marc Portier and
Joe Nellis.
- Added new constructors to TransformRepresentation making the
creation of the internal URI resolver optional and allowing
to pass a JAXP Templates precompiled instance directly.
Suggested by Joe Nellis.
- Added Context.getCurrent() and setCurrent(..) static methods
based on a thread local variable. The static property is also
updated when Component and Application instances are handling
a call. This can be useful to get access to the context even
when it isn't possible to manually pass it down the call
stack.
- Added a new constructor to Client and Server allowing to
specify the class name of the connector to use. Suggested by
Dan Diephouse.
- Added a "getValuesArray(String name):String[]" method on the
Series class. Suggested by Paul J. Lucas.
- Method getDocumentBuilder() on XmlRepresentation is now
protected, allowing reuse by subclasses like
JaxbRepresentation, JibxRepresentation or DomRepresentation.
- Method XmlRepresentation.getSource() was renamed to
getStreamSource() and new getSaxSource() and getDomSource()
methods were added. DomRepresentation has an optimized
implementation of getDomSource() and SaxRepresentation was
refactored to support this approach as well with many new
constructors added. Suggested by Marc Portier.
- TransformRepresentation has been refactored to support SAX
pipelining when multiple TransformRepresentation are nested.
Suggested by Marc Portier.
- Added a getValuesMap() method to the Series class.
- Added "authenticated" property on ChallengeResponse and
refactored Guard and engine to update this property upon
authentication.
- Added getPrincipal() method on ChallengeResponse.
- Added support of client preferences tunnelling by extensions.
Suggested by Chuck Mortimore and contributed by Stephan
Koops.
- NRE and Extension Enhancements
- Made the ServerServlet.create*() method protected instead of
public.
- Added a ServerServlet.createCall() and createWarClient()
methods for easier subclassing by the XDB extension.
Some contributions from Marcelo Ochoa.
- Added new javax.annotation library for the JAX-RS extension.
- Added ServerServlet.getClass() method to facilitate
subclassing by the XDB extension. Suggested by Marcelo Ochoa.
- Added new constructors to JiBX extension not requiring the
binding name parameter.
- Distributed experimental JAX-RS extension implementing the
JSR-311 draft specification. Contributed by Stephan Koops.
- All HTTP server connectors now expose the client certificates
using the "org.restlet.https.clientCertificates" request
attribute. Contributed by Bruno Harbulot.
- Updated Java Activation Framework to version 1.1.1.
- Updated JavaMail library to version 1.4.1.
- Removed the SpringApplication class as an XML configuration
alternative is now documented.
- Updated db4o to version 7.2 with transparent activation
and update.
- Improve logging for internal HTTP server when created thread
throw uncaught exceptions. Contributed by Kevin Conaway.
- HTTPS server connectors expose new attributes related
to SSL: "org.restlet.https.cipherSuite" and
"org.restlet.https.keySize". Contributed by Bruno Harbulot.
- Improved the Grizzly connector to support returning chunked
responses.
- Misc
- Reformatting of the changes log. Contributed by Avi Flax.
- All Component subclasses now use a main method that throws
exceptions and takes a string array as parameter.
- More precise log message for a Resource with no variant.
- Optimized Eclipse dependencies by leveraging reexport option.
- Updated Spring to version 2.5.2.
- Improved handling of connectors created without a protocol.
Contributed by Avi Flax.
- Representations returned by the CLAP connector now have their
modification date set if it is based on a file. Suggested by
Keke.
- Refactored and improved logging for Guard and challenge
processing. Suggested by Alex Milowski.
- Updated Reference's Javadocs to mention that getters do not
automatically do URI decoding. Suggested by Paul J. Lucas.
- Refactored NRE helpers hierarchy to take advantage of generics
and remove duplications.
- Added SSL unit test contributed by Bruno Harbulot.
- Completed the list of known media-types with Tomcat's
entries. Reported and contributed by Alex Milowski.
- The engine can now registers an URLStreamHandlerFactory
adapter on the java.net.URL class that is based on the
current context as retrieved via Context.getCurrent()
method.
- Added condition on javadocs flag for the stage-classic task
in the Ant build script. reported by Kevin Conaway.
- Changed licensing scheme to a choice between CDDL 1.0, LGPL
3.0 or LGPL 2.1.
- Ensured that all the framework (API, Engine and extensions)
are thread safe, especially the representation and
the request/reponse related ones. This will allow the usage
of separate reader / worker / writer threads to work on the
same request/response cycle. Reported by Tim Peierls.
- 1.1 Milestone 2 (2008-02-29)
- Bugs fixed
- Fixed NPE in Connector class. Reported by Rob Heittman and
fixed by Tim Peierls.
- WriterRepresentation was missing a default implementation for
getReader() abstract method.
- If an error is found in HttpClientHelper.sendRequest(),
StreamClientHelper ignores it and continues to parse the
response when it should stop processing. Fixed by Kevin
Conaway.
- Status.isSuccess(), is*Error(), isRedirection() and isInfo()
methods now support status classes as specified in HTTP 1.1.
Reported by Paul J. Lucas.
- The request ClientInfo address and port were not available
for the default connector and the Grizzly connector. Patch
contributed by Kevin Conaway.
- Fixed issue in SpringHost preventing usage of the
setRoutes(Map) method. Replaced with a setAttachments(Map)
method. Added Javadocs example. Reported by Simon Olofsson.
- ResourceException wasn't setting a message. Reported by Derek
Chiles.
- Representation.isAvailable() now returns false if the size is
'0'.
- Refactoring of HTTP server connectors code to better deal
with HEAD request, 1xx, 204, 205, 304 status codes. Issues
reported by Alex Milowski.
- Ensured all modifiable collections are properly documented in
the API. Suggested by Stephan Koops.
- Fixed Spring XML loading issue related to validation in
SpringContext class.
- Fixed bug with the FileClientHelper returning wrong list of
variants. Reported by Iestyn Evans.
- Fixed bug in Tag.equals() implementation. Reported by Stephan
Koops.
- Fixed NPE in the WAR client of the Servlet extension.
Reported by Jason Terhune.
- Caught exception with Simple connector when flushing a closed
stream. Now it is logged at a lower priority. Reported by
Todd Nguyen.
- Fixed NPE in the MediaTypes class. Reported and contributed
by Marc Portier.
- Fixed bug in SpringComponent preventing setting of clients.
Reported by Garriot Zhang.
- Fixed several bugs related to Grizzly (chunked encoding not
working, restarting NPE, etc.).
- API Enhancements
- Deprecated Status.isInfo(), replaced by isInformational() to
follow HTTP naming.
- Removed unecessary 'synchronized' keyword on
Application.createRoot() and added one to the setRoot()
method. Reported by Tim Peierls.
- Added support for Alpha-numerical sorting of index pages in
Directory. Suggested by Davide Angelocola based on David
Koelle's original idea. Optimized implementation contributed
by Rob Heittman from Solertium Corporation. New
setComparator, setAlphaComparator and setAlphaNumComparator
methods added. The default sorting is now "AlphaNum".
- Synchronized some list setters on Component and Connector
with explanation in Javadocs as suggested by Tim Peirls.
- Guard.checkSecret() method now has a Request parameter.
Suggested by Alex Milowski.
- Added new constructors to CookieSetting. Contributed by
Stephan Koops.
- Filter.beforeHandle() and doHandle() methods can now
indicates if the processing should continue normally, go to