forked from mbooth101/brazil
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changes.html
5431 lines (5238 loc) · 401 KB
/
changes.html
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
<body bgcolor=white>
<dl>
<!-- new entry -->
<dt>Thu Apr 19 15:58:39 2007 PDT <b>suhler</b><dd>
<br><b>create</b>: samples/conman/misc/sample.conf
<br><b>update</b>: samples/conman/misc/Makefile, samples/conman/misc/README, samples/conman/misc/conf2.conf, samples/conman/README, samples/conman/config.conman, samples/conman/config.server, samples/conman/index.html
<br><b>delete</b>: samples/conman/misc/iax.conf, samples/conman/misc/extensions.conf
<pre>documentation fixes</pre>
<!-- new entry -->
<dt>Wed Apr 18 10:06:18 2007 PDT <b>suhler</b><dd>
<br><b>create</b>: docs/html/highlights.html, docs/packages/sunlabs.brazil.asterisk.package.html, docs/scripts/de-inner.tcl
<br><b>update</b>: docs/overview.html, docs/Makefile, docs/html/intro.html
<pre>documentation updates</pre>
<!-- new entry -->
<dt>Wed Apr 18 08:25:55 2007 PDT <b>suhler</b><dd>
<br><b>create</b>: samples/simple/config.nat
<br><b>update</b>: samples/simple/README
<pre>added "config.nat" example to demo simple "reverse proxy" operation</pre>
<!-- new entry -->
<dt>Mon Apr 16 15:19:52 2007 PDT <b>suhler</b><dd>
<br><b>update</b>: samples/README, samples/conman/misc/Makefile, samples/conman/misc/conf2.conf, samples/conman/misc/checkbsl, samples/conman/misc/dumpastdb.tcl, samples/conman/misc/freetts, samples/conman/misc/loadastdb.tcl, samples/conman/Makefile, samples/conman/README, samples/conman/conf.html, samples/conman/config.conman, samples/conman/confadmin-advanced.html, samples/conman/confadmin-simple.html, samples/conman/config.debug, samples/conman/config.help, samples/conman/config.server, samples/conman/config.title, samples/conman/createconf.html, samples/conman/credentials, samples/conman/db.html, samples/conman/debug.html, samples/conman/debug.template, samples/conman/index.html, samples/conman/init.macros, samples/conman/login.html, samples/conman/logout.html, samples/conman/main.template, samples/conman/min.template, samples/conman/monitor.html, samples/conman/poll.html, samples/conman/process.html, samples/conman/props.html, samples/conman/server.html, samples/conman/run, samples/conman/signup.html, samples/conman/std.js, samples/conman/style.css, samples/conman/userprefs.html
<pre>- added (c) notices to all files
- removed references to internal names and passwords</pre>
<!-- new entry -->
<dt>Wed Apr 11 15:48:40 2007 PDT <b>suhler</b><dd>
<br><b>create</b>: samples/conman/admin/ast.html, samples/conman/admin/conf.html, samples/conman/admin/command.html, samples/conman/admin/db.html, samples/conman/admin/eval.html, samples/conman/admin/confadmin-advanced.html, samples/conman/admin/debug.html, samples/conman/admin/msg.html, samples/conman/admin/getconfs.html, samples/conman/admin/index.html, samples/conman/admin/meetmeadmin.html, samples/conman/admin/monitor.html, samples/conman/admin/monkey.html, samples/conman/admin/mute.html, samples/conman/admin/props.html, samples/conman/admin/namespaces.html, samples/conman/admin/putconfs.html, samples/conman/admin/server.html, samples/conman/admin/system.html, samples/conman/admin/validate.html, samples/conman/admin/webusers.html, samples/conman/admin/Makefile, samples/conman/images/Makefile, samples/conman/images/README, samples/conman/images/baby_mute.gif, samples/conman/images/BrazilPowered.gif, samples/conman/images/baby_off.gif, samples/conman/images/baby_on.gif, samples/conman/images/beer_mute.gif, samples/conman/images/beer_off.gif, samples/conman/images/beer_on.gif, samples/conman/images/boot3.gif, samples/conman/images/cdog_mute.gif, samples/conman/images/cdog_off.gif, samples/conman/images/cdog_on.gif, samples/conman/images/dog_mute.gif, samples/conman/images/dog_off.gif, samples/conman/images/dog_on.gif, samples/conman/images/face_mute.gif, samples/conman/images/face_off.gif, samples/conman/images/face_on.gif, samples/conman/images/reset.gif, samples/conman/images/lock.gif, samples/conman/images/kbd_mute.gif, samples/conman/images/kbd_off.gif, samples/conman/images/kbd_on.gif, samples/conman/images/loud.gif, samples/conman/images/quiet.gif, samples/conman/images/monkey.gif, samples/conman/images/turkey_mute.gif, samples/conman/images/turkey_off.gif, samples/conman/images/turkey_on.gif, samples/conman/images/unlock.gif, samples/conman/misc/Makefile, samples/conman/misc/iax.conf, samples/conman/misc/README, samples/conman/misc/app_meetme.c, samples/conman/misc/conf2.conf, samples/conman/misc/extensions.conf, samples/conman/misc/checkbsl, samples/conman/misc/dumpastdb.tcl, samples/conman/misc/freetts, samples/conman/misc/loadastdb.tcl, samples/conman/Makefile, samples/conman/README, samples/conman/TODO, samples/conman/conf.html, samples/conman/config.conman, samples/conman/confadmin-advanced.html, samples/conman/confadmin-simple.html, samples/conman/config.debug, samples/conman/config.help, samples/conman/config.server, samples/conman/config.title, samples/conman/createconf.html, samples/conman/credentials, samples/conman/db.html, samples/conman/debug.html, samples/conman/debug.template, samples/conman/favicon.ico, samples/conman/index.html, samples/conman/init.macros, samples/conman/message.html, samples/conman/login.html, samples/conman/logout.html, samples/conman/main.template, samples/conman/newpass.html, samples/conman/min.template, samples/conman/monitor.html, samples/conman/nocookies.html, samples/conman/notfound.html, samples/conman/poll.html, samples/conman/process.html, samples/conman/props.html, samples/conman/run, samples/conman/server.html, samples/conman/signup.html, samples/conman/std.js, samples/conman/style.css, samples/conman/userprefs.html
<br><b>update</b>: samples/README, samples/Makefile
<pre>Add conference manager to the set of Naws sample applications.
Distibuting the conferencing application this way seems easier, paperwork wise
that the alternatives I can think of</pre>
<!-- new entry -->
<dt>Wed Apr 4 15:05:57 2007 PDT <b>suhler</b><dd>
<br><b>update</b>: server/Main.java, server/Request.java
<pre>better error diagnostics</pre>
<!-- new entry -->
<dt>Wed Apr 4 15:03:03 2007 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/PutHandler.java
<pre>doc fixes</pre>
<!-- new entry -->
<dt>Wed Apr 4 15:00:49 2007 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/BasicSSLHandler.java
<pre>remove the password from the properties if it was entered directly</pre>
<!-- new entry -->
<dt>Wed Apr 4 14:58:25 2007 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/AddHeaderTemplate.java
<pre>allow "last-modified" to take a time, in ms since the epoch</pre>
<!-- new entry -->
<dt>Wed Apr 4 14:56:42 2007 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/RestartingMultiHostHandler.java
<pre>lint</pre>
<!-- new entry -->
<dt>Wed Apr 4 14:55:09 2007 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/SMTPHandler.java
<pre>lint</pre>
<!-- new entry -->
<dt>Wed Apr 4 14:53:22 2007 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/RePollHandler.java
<pre>lint</pre>
<!-- new entry -->
<dt>Wed Apr 4 14:51:15 2007 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/MultiProxyHandler.java
<pre>rewrite to conform with the new GenericProxyHandler url mapping semantics</pre>
<!-- new entry -->
<dt>Wed Apr 4 14:49:07 2007 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/MultiHostHandler.java
<pre>lint</pre>
<!-- new entry -->
<dt>Wed Apr 4 14:46:18 2007 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/MapPage.java
<pre>- allow mapping tables to be cleared</pre>
<!-- new entry -->
<dt>Wed Apr 4 14:40:29 2007 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/GenericProxyHandler.java
<pre>- added passHost flag to pass the origin http "host" header instead of the
target one
- added noErrorReturn flag. If set, the handler returns false instead of
returning an error code to the client
- reworked the way the pageMapper works, so sub-classes are no longer required</pre>
<!-- new entry -->
<dt>Mon Mar 26 13:53:29 2007 PDT <b>suhler</b><dd>
<br><b>update</b>: request/HttpRequest.java
<pre>add main() to HttpRequest(), allowing it to function as a stand-alone
batch http URL fetcher (ala wget or curl, but with fewer options).</pre>
<!-- new entry -->
<dt>Mon Mar 26 10:29:46 2007 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/UrlMapperHandler.java
<pre>- add remappinging arbitrary http request header (instead of just a url)
- enable access to all http headers for ${} substitutions</pre>
<!-- new entry -->
<dt>Sun Jan 14 15:40:49 2007 PDT <b>suhler</b><dd>
<br><b>update</b>: util/StringMap.java, handlers/GenericProxyHandler.java, sunlabs/XmlTree.java
<pre>- add get(key, default) method for StringMap
- add better diagnostics for GenericProxyHandler
- add getRoot() to XmlTree to allow programatic access</pre>
<!-- new entry -->
<dt>Tue Jan 9 10:13:26 2007 PDT <b>suhler</b><dd>
<br><b>create</b>: contrib/dotvim.tar
<br><b>update</b>: contrib/Makefile, contrib/README
<pre>added sample vim Brazil template syntax highlighting</pre>
<!-- new entry -->
<dt>Mon Jan 8 15:23:16 2007 PDT <b>suhler</b><dd>
<br><b>update</b>: docs/Makefile, docs/scripts/ps.template
<pre>update 2006 -> 2007</pre>
<!-- new entry -->
<dt>Mon Jan 8 15:18:05 2007 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/SetTemplate.java
<pre>add <unimport> tag to reverse the effects of <import>. This
should probably be done using <import> .... </import>, but this preserves
backward compatibility.</pre>
<!-- new entry -->
<dt>Mon Jan 8 15:16:56 2007 PDT <b>suhler</b><dd>
<br><b>update</b>: server/FileHandler.java, handlers/templates/TemplateHandler.java
<pre>add static method to set the "lastModified" property, and call it.</pre>
<!-- new entry -->
<dt>Mon Dec 18 15:15:05 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: samples/README, samples/Makefile
<pre>remove "im" and "email" sample applications. They haven't kept
up with reality</pre>
<!-- new entry -->
<dt>Mon Dec 18 15:05:25 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: samples/simple/after.html, samples/simple/config.after, sunlabs/AfterTemplate.java
<br><b>update</b>: samples/simple/Makefile, samples/simple/README, handlers/templates/RewriteContext.java, util/LexML.java, sunlabs/Makefile
<pre>> - Add "AfterTemplate" to allow markup to be run after the content has
> been delivered to the client
> - add snarfTillClose() to RewriteContext to allow templates to snarf
> all content 'till the matching closing tag
> - minor bug fix in LexML.isSingleton()</pre>
<!-- new entry -->
<dt>Wed Dec 13 15:41:43 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/ValidateTemplate.java
<pre>doc fixes (more are needed)</pre>
<!-- new entry -->
<dt>Tue Dec 12 16:39:02 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: samples/simple/config.validate, samples/simple/validate.html, sunlabs/ValidateTemplate.java, tests/sunlabs.brazil.sunlabs.ValidateTemplate.test
<br><b>update</b>: samples/simple/Makefile, samples/simple/README, sunlabs/Makefile
<pre>Add ValidateTemplate, along with sample and tests
(thanks Tony)</pre>
<!-- new entry -->
<dt>Mon Dec 11 14:48:27 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/PollHandler.java
<pre>- allow URL's to be relative (the current server is implied)
- fix code to match the documentation
** WARNING ** potential incompatibility.
no properties are returned unless "prepend" is set. Although
the documentation claimed this was the case, it wasn't. In addition
"prepend" is prepended to the property names in all cases.</pre>
<!-- new entry -->
<dt>Sun Dec 10 11:28:27 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: samples/simple/config.builtin
<pre>built-in config file now serves built-in sources as well as javadocs</pre>
<!-- new entry -->
<dt>Sun Dec 10 11:27:40 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: samples/simple/chat.html, samples/simple/config.chat
<br><b>update</b>: samples/simple/Makefile, samples/simple/README
<pre>Add "chat" system example</pre>
<!-- new entry -->
<dt>Sun Dec 10 11:23:20 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/QueueTemplate.java
<pre>Documented previously undocumentet "glob" option
Added "delim" to make recipient list more flexible</pre>
<!-- new entry -->
<dt>Mon Dec 4 10:48:10 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: docs/scripts/exportMakefile.front
<pre>bump to correct version this time</pre>
<!-- new entry -->
<dt>Mon Dec 4 10:46:03 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: Makefile, docs/Makefile, docs/scripts/TERMS.moz, docs/scripts/label.tcl, docs/scripts/exclude.txt, docs/scripts/exportMakefile.front, docs/scripts/src_lns.tcl
<pre>bump version 2.2 -> 2.3</pre>
<!-- new entry -->
<dt>Mon Dec 4 08:10:25 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/MiscTemplate.java
<pre>add format="<DecimalFormatDpecifier>" to <expr> to permit formatting
of numerical results</pre>
<!-- new entry -->
<dt>Tue Nov 21 13:42:48 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: docs/scripts/src_lns.tcl
<pre>Create cross links to source file from html docs</pre>
<!-- new entry -->
<dt>Mon Nov 20 17:44:10 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: handlers/MatchString.java
<br><b>update</b>: handlers/Makefile
<pre>put a deprecated version of MatchString.java back in this package
for backward compatibility. It dispatches to the version in "util"</pre>
<!-- new entry -->
<dt>Mon Nov 20 17:42:30 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/TitleTemplate.java
<pre>Use Session Manager to store titles</pre>
<!-- new entry -->
<dt>Mon Nov 20 17:42:07 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: sunlabs/PutHandler.java
<br><b>update</b>: sunlabs/Makefile
<pre>New handler to handle PUT and DELETE requests</pre>
<!-- new entry -->
<dt>Fri Nov 17 15:48:56 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/TitleTemplate.java
<pre>read in title text from a separate file</pre>
<!-- new entry -->
<dt>Thu Nov 16 15:44:22 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/SimpleSessionHandler.java
<pre>bug fix: "value" configuration parameter wasn't being initialized properly</pre>
<!-- new entry -->
<dt>Mon Nov 13 15:43:56 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/SubstPropsHandler.java
<pre>SCCS book-keeping</pre>
<!-- new entry -->
<dt>Mon Nov 13 15:41:18 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/QueueTemplate.java
<pre>internal code shuffling in preparation for automatic Queue aging</pre>
<!-- new entry -->
<dt>Mon Nov 13 15:34:02 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/GenericProxyHandler.java
<pre>Pass target status code back to the client, allowing redirects and
authentication pass-thru</pre>
<!-- new entry -->
<dt>Mon Nov 13 15:32:13 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: slim/ATHandler.java, slim/AliceHandler.java, slim/TTSHandler.java, slim/TTSServerHandler.java
<pre>TTSServerHandler</pre>
<!-- new entry -->
<dt>Mon Nov 13 15:27:59 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: util/Format.java
<pre>add unsubst() to "escape" html, allowing it to be used in an attribute values (for future use)</pre>
<!-- new entry -->
<dt>Mon Nov 13 15:25:42 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: server/Request.java
<pre>small diagnostic improvements</pre>
<!-- new entry -->
<dt>Mon Nov 13 15:24:24 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/Makefile
<pre>add IdUniquificationTemplate and TitleTemplate</pre>
<!-- new entry -->
<dt>Mon Nov 13 15:23:54 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: sunlabs/TitleTemplate.java
<pre>new template to support "tool tips" in browsers using "title" attribute</pre>
<!-- new entry -->
<dt>Mon Nov 13 15:19:17 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/SetTemplate.java
<pre>- start code rearrangement for conversions (this should be combined
with the conversions in MiscTemplate, and made extensible)
- add "trim" and "lower" conversions
- add "track" attribute to track namespace changes on the console</pre>
<!-- new entry -->
<dt>Mon Nov 13 15:17:51 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/RewriteContext.java, handlers/templates/ScriptEvalTemplate.java
<pre>add substAttributeValues() as a convenience method in RewriteContext
do ${...} substitutions in ScriptEvalTemplate tag attributes</pre>
<!-- new entry -->
<dt>Mon Nov 13 15:16:38 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/MiscTemplate.java
<pre>add "esc" attribute to <inline> to allow \X processing</pre>
<!-- new entry -->
<dt>Mon Nov 13 15:16:07 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/ListTemplate.java
<pre>add "track" attribute to print all property changes on the console</pre>
<!-- new entry -->
<dt>Mon Nov 13 15:14:36 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/FormTemplate.java
<pre>do ${..} substitutions in all non-processed attribute values</pre>
<!-- new entry -->
<dt>Mon Nov 13 15:12:47 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/ContentTemplate.java
<pre>preserver references to external script files</pre>
<!-- new entry -->
<dt>Mon Nov 13 15:10:50 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: util/Makefile, server/ChainHandler.java, handlers/BasicAuthHandler.java, handlers/CookieSessionHandler.java, handlers/SimpleSessionHandler.java, handlers/AclSwitchHandler.java, handlers/ResourceHandler.java, handlers/RolesHandler.java, handlers/DialogHandler.java, handlers/NotFoundHandler.java, handlers/DirectoryHandler.java, handlers/PublishHandler.java, handlers/PushHandler.java, handlers/SMTPHandler.java, handlers/PropertiesHandler.java, handlers/RestrictClientHandler.java, handlers/ExprPropsHandler.java, handlers/templates/TemplateHandler.java, handlers/Makefile, filter/FilterHandler.java, filter/MD5Filter.java, tcl/TclHandler.java, beanshell/BeanShellHandler.java, sunlabs/ResourceLimitHandler.java, sunlabs/DelayHandler.java, util/MatchString.java
<br><b>rename</b>: handlers/MatchString.java -> util/MatchString.java
<pre>- added MatchString() capability to ChainHandler
- moved MatchString from package "handler" to "util
- updated all consumers of MatchString to reflect new package</pre>
<!-- new entry -->
<dt>Mon Nov 13 14:24:48 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/BSLTemplate.java
<pre>added "namespace" attribute to <foreach glob|match> to restrict matches
to specified namespace</pre>
<!-- new entry -->
<dt>Mon Nov 13 14:24:12 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/MatchString.java
<pre>- added "invert" attribute to invert sense of "glob" or "match"</pre>
<!-- new entry -->
<dt>Mon Nov 13 14:22:19 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: asterisk/AsteriskHandler.java
<pre>- added AMI name mapping
- cleaned up connection closing code
- fixed (sort of) race condition in tag_amicommand</pre>
<!-- new entry -->
<dt>Mon Nov 13 14:20:26 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: sunlabs/IdUniquificationTemplate.java
<pre>Template to create unique DOM id's for <div> and <span> tags per browser window</pre>
<!-- new entry -->
<dt>Wed Nov 8 10:27:51 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: proxy/ProxyHandler.java
<pre>- fixed stupid typo
- updated docs
- added rewriteHeaders() hook for subclasses</pre>
<!-- new entry -->
<dt>Tue Sep 5 14:53:28 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: samples/simple/asterisk.html
<pre>fix typo</pre>
<!-- new entry -->
<dt>Sun Aug 13 10:17:59 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: samples/simple/config.formhelp, samples/simple/formhelp.html, sunlabs/FormHelpTemplate.java
<br><b>update</b>: samples/simple/Makefile, samples/simple/README, sunlabs/Makefile
<pre>Added the FormHelpTemplate to allow easy integration of html form
with ajax-style field help</pre>
<!-- new entry -->
<dt>Mon Aug 7 16:37:46 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: sunlabs/LockTemplate.java
<br><b>update</b>: sunlabs/Makefile
<pre>Add the template: <lock name=xxx> .... </lock>
to add mutexes to templates. Only one request can access a section
of template markup bracketted by <lock> for a given name.
This provides an alternative to using the SimplSessionManager to
do implicit locking by session management, and should make synchronized
logging in, etc. easier.</pre>
<!-- new entry -->
<dt>Mon Aug 7 16:37:15 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/DelayHandler.java
<pre>The documentation was wrong: change the code to match the docs.</pre>
<!-- new entry -->
<dt>Wed Aug 2 14:07:12 2006 PDT <b>suhler</b><dd>
<br><b>rename</b>: samples/simple/agicommand.html -> samples/simple/amicommand.html, samples/simple/config.agicommand -> samples/simple/config.amicommand
<pre>wrong file names fixed</pre>
<!-- new entry -->
<dt>Wed Aug 2 14:05:29 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: asterisk/AsteriskHandler.java
<pre>version conolidation: This is the meetme server version. It has the newer AMI parsing semantice, but
no Q expiration stuff (that's next)</pre>
<!-- new entry -->
<dt>Wed Aug 2 13:46:56 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/Makefile, sunlabs/FetchTemplate.java
<br><b>rename</b>: sunlabs/IncludeTemplate.java -> sunlabs/FetchTemplate.java
<pre>rename IncludeTemplate to FetchTemplate to avoid confusion with the
IncludeTemplate in the template package</pre>
<!-- new entry -->
<dt>Tue Aug 1 14:11:45 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/RewriteContext.java, handlers/templates/TemplateRunner.java, handlers/templates/SetTemplate.java, sunlabs/MiscTemplate.java
<pre>Bug Fix:
The MiscTemplate <mapnames> tag could map names into a namespace that
was supposed to be imported by the SetTemplate, but was empty at the time,
so it was scheduled for chaining later. consequently, the newly mapped
names weren't showing up.
This [non-ideal] fix adds:
- doImport() to the SetTemplate, telling it to recheck namespaces scheduled
for import (but empty at the time)
- adds templateFromTag() method to RewriteContext (and TemplateRunner) that
allows templates to fetch references to other template objects that are
active in the current page template
- Changes MiscTemplate to call the doImport() method of the SetTemplate,
using templateFromTag() to find the right instance, when the MiscTemplate
might create previously empty imported namespace.</pre>
<!-- new entry -->
<dt>Mon Jul 31 15:01:05 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/MiscTemplate.java
<pre>added a bug note to the <mapnames> tag.</pre>
<!-- new entry -->
<dt>Mon Jul 31 14:46:04 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: properties/PropertiesList.java, sunlabs/MiscTemplate.java
<pre>added "removeProperties()" methods to propertylists that have the
same search semantics as getProperty().
added "remove=true" attribute to <mapnames> to allow the bulk
removeal of properties</pre>
<!-- new entry -->
<dt>Wed Jul 26 15:39:34 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/BSLTemplate.java
<pre>add "map" attributes for <extract match=...> when all=false (it was inadvertently left out</pre>
<!-- new entry -->
<dt>Wed Jul 26 12:01:17 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: samples/simple/config.vote, samples/simple/vote.html
<pre>Updated demo to use the MiscTemplate instead of the Calculator.</pre>
<!-- new entry -->
<dt>Thu Jun 15 12:52:38 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/ListTemplate.java, sunlabs/XmlTreeTemplate.java, handlers/templates/SetTemplate.java
<pre><namespace name=xxx> ... </namespace> now works with the <list> and
<xmltree> as the current namespace is exported as a request property
by the SetTemplate, and consumed by the List and XML templates.</pre>
<!-- new entry -->
<dt>Thu Jun 15 09:58:11 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/MiscTemplate.java
<pre>add "append=true" attribute to <inline> to append to existing
content</pre>
<!-- new entry -->
<dt>Thu Jun 15 09:54:39 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/QueueTemplate.java
<pre>Added the ability to detect if queues are no longer active, and to
remove them.</pre>
<!-- new entry -->
<dt>Wed Jun 14 10:27:25 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: samples/simple/config.php
<br><b>update</b>: handlers/CgiHandler.java, samples/simple/Makefile, samples/simple/README
<pre>enhanced the CgiHandler to be able to run php (and other scripting
systems) designed to work with apache:
- allow files to be run through an specified interpreter instead of
being executed directly
- make the cgi "mini headers" optional</pre>
<!-- new entry -->
<dt>Tue May 9 14:08:18 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: samples/simple/asterisk.html, samples/simple/config.asterisk
<br><b>update</b>: samples/simple/Makefile, samples/simple/README
<pre>Added sample for integrating the Asterisk manager api and ajax. This
is the last planned change for release 2.2</pre>
<!-- new entry -->
<dt>Mon May 8 12:06:50 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: samples/simple/agicommand.html, samples/simple/config.agicommand
<br><b>update</b>: samples/simple/Makefile, samples/simple/README, samples/simple/config.smtp, samples/simple/smtp.html
<pre>- added Asterisk AMI example
- cleaned up Makefile and Readme
- added FormTemplate to smtp example</pre>
<!-- new entry -->
<dt>Mon May 8 10:28:52 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: asterisk/AsteriskAGIHandler.java
<pre>add "agi_host" pseudo header onto agi requests containing the * server's hostname</pre>
<!-- new entry -->
<dt>Mon May 8 10:00:19 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: asterisk/AsteriskAGIHandler.java
<pre>prefix session id (e.g. unique call id) with properties prefix</pre>
<!-- new entry -->
<dt>Thu May 4 22:30:48 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: samples/simple/agi.html, handlers/templates/SetTemplate.java
<pre>bug fix: <import namespace=foo> when foo doesn't yet exists, followed
by <namespace name=foo load=...> wasn't properly importing the namespace.
- removed the work-around frok from agi.html</pre>
<!-- new entry -->
<dt>Thu May 4 17:40:06 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: samples/simple/agi.html, samples/simple/config.agi
<br><b>update</b>: samples/simple/Makefile, samples/simple/README
<pre>Added AGI example, demonstrating the Asterisk AGI handler</pre>
<!-- new entry -->
<dt>Mon May 1 15:41:56 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: samples/simple/ajax.html, samples/simple/config.ajax
<br><b>update</b>: samples/simple/Makefile
<pre>add brazil/ajax example</pre>
<!-- new entry -->
<dt>Fri Apr 28 16:17:17 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/ResourceHandler.java, server/Request.java
<pre>- The ResourceHandler now computes the content-lengh properly
- For calls to "sendResponse()" that have a status code of "204"
no content, no content is delivered. This is in better compliance
with the http spec, but make debugging a bit harder</pre>
<!-- new entry -->
<dt>Wed Apr 26 16:51:44 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: Makefile
<br><b>rename</b>: exportMakefile.back -> docs/scripts/exportMakefile.back, exportMakefile.front -> docs/scripts/exportMakefile.front
<pre>moved export makefile header/footer into docs/scripts</pre>
<!-- new entry -->
<dt>Wed Apr 26 16:46:38 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: docs/scripts/props2.tcl, docs/scripts/ps.template, docs/scripts/tags.tcl, docs/scripts/depends.tcl
<pre>minor updates for documentation generation</pre>
<!-- new entry -->
<dt>Wed Apr 26 16:37:28 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: samples/simple/misc.html, samples/simple/config.misc
<br><b>update</b>: samples/simple/Makefile, samples/simple/README
<pre>Added MiscTemplate example.
I need to add the "Ajax" and "Asterisk" examples, then call it done</pre>
<!-- new entry -->
<dt>Tue Apr 25 14:55:03 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: asterisk/AsteriskHandler.java, asterisk/AsteriskAGIHandler.java
<pre>doc fixes</pre>
<!-- new entry -->
<dt>Tue Apr 25 14:39:04 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: asterisk/AsteriskHandler.java, asterisk/AsteriskAGIHandler.java
<pre>minor updates</pre>
<!-- new entry -->
<dt>Tue Apr 25 14:32:11 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/HtmlRewriter.java
<pre>add public "getMap" method to return a copy of a tag's attributes</pre>
<!-- new entry -->
<dt>Tue Apr 25 14:31:28 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: server/Main.java
<pre>add a couple more built-in mime types</pre>
<!-- new entry -->
<dt>Tue Apr 25 14:30:29 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: server/Connection.java, handlers/UrlMapperHandler.java
<pre>fix diagnostic messages</pre>
<!-- new entry -->
<dt>Tue Apr 25 14:23:02 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/ResourceHandler.java, handlers/templates/TemplateHandler.java, handlers/templates/DirectoryTemplate.java, handlers/templates/MultipartSetTemplate.java, proxy/JunkBusterHandler.java, server/FileHandler.java
<pre>Consolidate the file suffix -> mime type conversion into a single
place (fileHandler.getMimeType), and have all classes use the same
code.
enhance the mime type glob-matching capability such that:
mimePatterns=*
mime*=text/plain
mime.hidden=unknown
Will cause all files with otherwise unspecified suffixes to be text/plain,
except files with the ".hidden" suffix, which will remain unknown (and thus
not be delivered).</pre>
<!-- new entry -->
<dt>Tue Apr 18 18:03:43 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: docs/scripts/depends.tcl
<br><b>update</b>: Makefile, Makefile.common, exportMakefile.back, exportMakefile.front
<pre>Redo the way the export makefile is created.
- The old scheme tried to javac [all java files] which only works if
all the optional jar files are available, as javac bails out way too soon.
- In the new scheme, all java files are categorized by external jar file
dependencies, so it is easy to only build the ones that you have the
external jar files for.
- Now by default, all the java files with now external dependencies
always get built
Notes:
* the target "make dependson" creates a table of java files and their
external jar file dependencies
* the script "depends.tcl" reads the output of "dependson" and generates
the guts of the makefile
* the same technique could be used with "ant", but I don't know ant
well enough.</pre>
<!-- new entry -->
<dt>Mon Feb 6 15:44:05 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: asterisk/AsteriskHandler.java
<pre>changes motivated by testing on multiple servers at once:
- add <amicommand> to allow for synchronous AMI commands
- wait a random time before the first keep-alive to keep the keep alives
for multiple servers out of step
- change lots of the diagnostic output to real log() messages
- add more documentation</pre>
<!-- new entry -->
<dt>Wed Feb 1 16:13:25 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: asterisk/AsteriskHandler.java
<pre>- Added "keepalives" to insure asterisk server is still up. If the keep-alive
fails, close and retry the connection
- QueueTemplate is now in the Templates package
- fix restarting when the connection dies
- code and doc cleanups</pre>
<!-- new entry -->
<dt>Fri Jan 27 08:48:10 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: handlers/templates/QueueTemplate.java
<br><b>update</b>: handlers/Makefile, handlers/templates/QueueTemplateOld.java
<br><b>rename</b>: handlers/templates/QueueTemplate.java -> handlers/templates/QueueTemplateOld.java
<pre>replace the old QueueTemplate with the experimental Asterisk version.
This changes Q items to be a collection of arbitrary name/value pairs</pre>
<!-- new entry -->
<dt>Fri Jan 20 10:32:32 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/MiscTemplate.java
<pre>added <random> tag for generation of random values (take 2)</pre>
<!-- new entry -->
<dt>Tue Jan 17 09:51:20 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: proxy/CookieFilter.java
<pre>fix typo</pre>
<!-- new entry -->
<dt>Tue Jan 17 09:49:59 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/PlainTemplate.java
<pre>doc fixes</pre>
<!-- new entry -->
<dt>Tue Jan 17 09:47:30 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: session/PJamaSessionManager.java, session/SerialPersist.java
<pre>doc fixes</pre>
<!-- new entry -->
<dt>Tue Jan 17 09:42:49 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: server/Request.java
<pre>doc fixes</pre>
<!-- new entry -->
<dt>Tue Jan 17 09:39:48 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/ContentTemplate.java
<pre>Bug fix: computation of <head> section was incorrect, and the "prepend"
attribute wasn't always honored.</pre>
<!-- new entry -->
<dt>Fri Jan 6 16:46:20 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: samples/simple/config.smtp, samples/simple/smtp.html
<br><b>update</b>: handlers/SMTPHandler.java, samples/simple/README
<pre>Add an example of using the SMTPHandler as a template for sending email</pre>
<!-- new entry -->
<dt>Fri Jan 6 14:05:24 2006 PDT <b>suhler</b><dd>
<br><b>create</b>: handlers/RestartingMultiHostHandler.java
<br><b>update</b>: handlers/MultiHostHandler.java, handlers/Makefile
<pre>- Enhancements to the MultiHostHandler. Each virtual host on the same
machine can now have it's own configuration file, and appear as if it
is (almost) the only host running on the server
- New RestartingMultiHostHandler. This allows a virtual host with it's
own configuration file to be modified and restarted without effecting
the other virual hosts using the same server.</pre>
<!-- new entry -->
<dt>Fri Jan 6 13:09:58 2006 PDT <b>suhler</b><dd>
<br><b>update</b>: samples/simple/config.groovy, docs/packages/sunlabs.brazil.groovy.package.html
<pre>Update the documentation and examples to use a more recent version of Groovy</pre>
<!-- new entry -->
<dt>Fri Dec 23 19:55:45 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/SMTPHandler.java
<pre>eliminate bogus warning at end of page</pre>
<!-- new entry -->
<dt>Thu Dec 22 16:45:37 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/MiscTemplate.java
<pre>- added <map> example
- allow sequences of 0 or 1 elements
- make "name" optional in <expr> and <inline></pre>
<!-- new entry -->
<dt>Thu Dec 22 16:43:42 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/MultiHostHandler.java
<pre>add "inherit" option to provide each sub-server its own properties</pre>
<!-- new entry -->
<dt>Wed Dec 21 13:34:44 2005 PDT <b>suhler</b><dd>
<br><b>create</b>: docs/scripts/tags.tcl
<br><b>update</b>: docs/overview.html, docs/Makefile, docs/packages/sunlabs.brazil.template.package.html
<pre>automatically generate tag summary in documentation</pre>
<!-- new entry -->
<dt>Wed Dec 21 10:31:28 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/DirectoryTemplate.java
<pre>allow "delimiter" attribute (in addition to request property)</pre>
<!-- new entry -->
<dt>Wed Dec 21 10:26:38 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/MultiHostHandler.java
<pre>don't include port #'s for host matching</pre>
<!-- new entry -->
<dt>Fri Dec 9 14:50:57 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: server/FileHandler.java
<pre>cleanup and document partial file delivery using the "range" header</pre>
<!-- new entry -->
<dt>Thu Dec 8 13:41:59 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: server/Connection.java, server/Request.java, util/http/MimeHeaders.java
<pre>Check for bogus http requests to alleviate DOS attacks</pre>
<!-- new entry -->
<dt>Mon Dec 5 14:01:47 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/VirtualHostHandler.java
<pre>- add "addlevel" attribute. This allows both "virtual hosting" and
"host wildcards" at the same time:
http://a.b.c/foo.html maps to file [docroot]/a.b.c/foo.html
http://x.a.b.c/foo.html maps to either:
[docroot]/a.b.c/foo.html
[docroot]/a.b.c/x/foo.html
The "levels" attribute determines how many levels (.'s+1) to use for the
virtual host, and "addlevel" causes all the least significant levels to
be prepended onto the usr for "wildcard" matching</pre>
<!-- new entry -->
<dt>Mon Dec 5 13:04:18 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/VirtualHostHandler.java
<pre>- add "levels" option to allow host wild-card mappings within virtual hosts
- diagnistic cleanups</pre>
<!-- new entry -->
<dt>Mon Nov 28 09:15:35 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/FormTemplate.java, handlers/templates/PropsTemplate.java, handlers/templates/SetTemplate.java
<pre>- added "prepend" option to <form> for FormTemplate to allow the property
whose value is used as a field value to have the indicated prefix.
example: <form prepend=foo><input name=a value=b></form> will cause the
initial value of form element "a" to be the current value of the request
property "foo.a" (the default with no prepend would be property "a")
- minor code cleanups</pre>
<!-- new entry -->
<dt>Sun Nov 27 18:31:18 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/CgiHandler.java, handlers/DefaultFileHandler.java, server/Connection.java, server/FileHandler.java, server/Server.java
<pre>CgiHandler: added "url=current|original" option to determine url to cgi mapping
Connection, Server: added better diagnostics
FileHAndler: fixed glob based mime-type matching</pre>
<!-- new entry -->
<dt>Wed Oct 19 14:36:36 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/LogHandler.java
<pre>fixed broken documentation</pre>
<!-- new entry -->
<dt>Thu Aug 25 10:53:57 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/MacroTemplate.java
<pre>Added special variables "isSingleton" and "args" to the expansion of
macros. This allows macros to know how they are called, and (with some
effort) inspect all the calling parameters.
You can, as an example:
<definemacro name=foo> ... </definemacro>
<definemacro name=/foo> ... <definemacro>
then tell the difference between:
<foo> ... </foo> and <foo /></pre>
<!-- new entry -->
<dt>Thu Aug 18 17:31:15 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/MiscTemplate.java
<pre>(this is the last set of capabilities planned for the MiscTemplate)
- added a "namespace" attribute to <stringop> so you can specify the
destination namespace (instead of always using the local namespace)
- added <mapnames src=src-glob-pattern [dst=dst-name-pattern] [ stringop operations] [namespace=dst-namespace]>
This allows mapping whole groups of names/value pairs from one namespace
to another, while allowing both the names to be mapped and the values
to be processed ala <stringop></pre>
<!-- new entry -->
<dt>Wed Aug 17 15:09:47 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/MiscTemplate.java
<pre>Added the <stringop> tag to perfom string operations on property values:
Attributes:
name=xxx The property to operate on
newname=xxx What to name the new value
trim=left|right|both Trims whitespace
range=from,to does substrings
case=lower|upper|title munges the case
convert=html|url another way to escape values for html or urls</pre>
<!-- new entry -->
<dt>Wed Jul 13 10:21:18 2005 PDT <b>suhler</b><dd>
<br><b>create</b>: samples/simple/basicssl.html, samples/simple/config.basicssl, sunlabs/BasicSSLHandler.java
<br><b>update</b>: server/Main.java, sunlabs/Makefile, handlers/templates/SetTemplate.java
<pre>Add an SslHandler that creates basic SSL servers. This requires jdk1.3+
see the "basicssl" examples in samples/simple for sample usage.
Added -D(elay) and "-x" options to Main.
-x skips sourceing the default resource
-D n delays "n" seconds, for use with "-s" to allow time for a server
to initialze before starting another one.
Added "headers.hostname" and "headers.hostport" to the SetTemplate "headers"
option, to make it easier to pre-parse hostnames and ports.</pre>
<!-- new entry -->
<dt>Tue Jul 12 10:39:52 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/CgiHandler.java, handlers/MapPage.java, filter/SessionFilter.java, filter/UrlSessionFilter.java, proxy/CookieFilter.java, proxy/ProxyHandler.java
<pre>Correct support for "https" as well as "http"</pre>
<!-- new entry -->
<dt>Tue Jun 28 12:30:52 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: docs/Makefile
<pre>Fixed pointers to online jdk docs, minor formatting corrections</pre>
<!-- new entry -->
<dt>Wed Jun 22 13:43:01 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/SimpleSessionHandler.java
<pre>Documentation improvements.
Don't do \n substitutions to value. This makes it harder to include
special \x characters in session IDs, but avoids requiring regexp
sub-expression matches be double \'d</pre>
<!-- new entry -->
<dt>Fri Jun 17 15:52:50 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: util/Calculator.java, handlers/templates/BSLTemplate.java
<pre>added <if expr="..numeric expression.."> option to the BSLTemplate.
This allows the use of the Calulator's primitive logical expression
capability in "if" expressions.
For example, you can now do:
<if expr="port=8080 && query.form && ! query.x">
which (almost) does what you want.</pre>
<!-- new entry -->
<dt>Thu Jun 16 08:05:52 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/BSLTemplate.java, handlers/templates/RewriteContext.java
<pre>Moved getNamespaceProperties from the BSLTemplate to the RewriteContext
to make it available to all templates that want to interact properly
with the SetTemplate</pre>
<!-- new entry -->
<dt>Thu Jun 16 08:02:20 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: util/Format.java, sunlabs/XmlTree.java, handlers/HtmlRewriter.java, handlers/templates/MacroTemplate.java
<pre>bug fix: The MacroTemplate wasn't removing quotes from some tag names.
- made the "deQuote" public static, and put it into Format
- changed all classes that require dequoting to use the one in Format</pre>
<!-- new entry -->
<dt>Wed Jun 15 13:24:39 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/MiscTemplate.java
<pre>added <sequence> to generate a sequence of values</pre>
<!-- new entry -->
<dt>Mon Jun 13 13:59:06 2005 PDT <b>suhler</b><dd>
<br><b>create</b>: sunlabs/MiscTemplate.java
<br><b>update</b>: sunlabs/Makefile
<pre>Added the "MiscTemplate", which adds a few useful string manipulation
functions that, although already possible using other mechanisms, provides
more convenient access. They are:
<append name=nnn value=nnn [delim=nnn]>
Appends a value to an existing variable, with an optional delimiter
<push name=nnn value=nnn>
<pop name=nnn>
Maintains a stack of values for a particular variable
<increment name=nnn [incr=n>
Increments (or decrements) a value.
<expr name=nnn value={an arithmetic expression}>
Runs the calculator
<eval markup="....">
"markup" as if it was present here in the input template
This is to make the dynamic-html macros easier to write and understand</pre>
<!-- new entry -->
<dt>Thu Jun 9 11:19:07 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/SourceTemplate.java
<pre>Added "resource=true" attribute to allow sourced file to be processed
as part of the template content after it is sourced.</pre>
<!-- new entry -->
<dt>Wed Jun 8 11:16:35 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/SetTemplate.java
<pre>changed the pseudo property "headers.count" to use the server
requestCount instead of the acceptCount.</pre>
<!-- new entry -->
<dt>Wed Jun 8 11:16:09 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: proxy/ProxyHandler.java
<pre>added "proxylog" option to proxy handler to log all http headers
on stderr.</pre>
<!-- new entry -->
<dt>Mon Jun 6 21:07:20 2005 PDT <b>suhler</b><dd>
<br><b>create</b>: asterisk/AsteriskHandler.java, asterisk/AsteriskAGIHandler.java
<pre>2 new handlers for Asterisk integration:
- AsteriskHandler: interface to the manager interface
- AsteriskAGIHandler: FAGI handler</pre>
<!-- new entry -->
<dt>Thu May 26 08:59:31 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: util/StringMap.java
<pre>add append() to combine 2 string maps (needed for Asterisk stuff)</pre>
<!-- new entry -->
<dt>Wed May 25 13:06:55 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: tests/README, tests/sunlabs.brazil.util.http.MimeHeaders.test, util/http/MimeHeaders.java
<pre>Add the ability to read new mime headers on top of exiting one, replacing
existing ones instead of adding to them (I even added a test case!)</pre>
<!-- new entry -->
<dt>Thu May 19 13:05:56 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/ExecTemplate.java, sunlabs/IncludeTemplate.java
<pre>- fix prefix handling in ExecTemplate
- only print stacktrace if log>3 in IncludeTemplate</pre>
<!-- new entry -->
<dt>Thu May 19 13:02:01 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: samples/simple/Makefile
<pre>added several new simple examples</pre>
<!-- new entry -->
<dt>Fri May 13 11:09:04 2005 PDT <b>suhler</b><dd>
<br><b>create</b>: derby/DerbyServer.java, derby/Makefile, docs/packages/sunlabs.brazil.derby.package.html
<br><b>update</b>: samples/simple/config.derby, Makefile
<pre>added "Derby" package and the "DerbyServer" handler that turns-on
network access to the embedded derby server</pre>
<!-- new entry -->
<dt>Wed May 11 14:28:29 2005 PDT <b>suhler</b><dd>
<br><b>create</b>: samples/simple/config.derby, samples/simple/derby.html
<br><b>update</b>: sql/SqlTemplate.java, docs/packages/sunlabs.brazil.sql.package.html
<pre>Add support for the Derby sql database in embedded mode
- added a sample of the Brazil version of the simple derby example
- enhanced the SqlTemplate:
+ added "type=system|query|update" to <sql> to permit running
execute(), executeQuery() and executeUpdate() respectively
+ added "timeout=[seconds]"
+ fixed redundant '.'s in property names</pre>
<!-- new entry -->
<dt>Wed May 11 11:55:46 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/BSLTemplate.java, handlers/templates/SetTemplate.java
<pre>- added "namespace" attributes to <extract> and <if>.
Which <extract>, any results are extracted to the specified
namespace. With <if> the "name" attribute is searched for in
the specified namespace (instead of just request.props)
- Changed the defaule "sessionTable" property of the SetTemplate.
it was "hr.prefix", it is now "hr.templatePrefix". With the new
behaviour, all templates (e.g. SetTemplate and BSLTemplate) run in
the same Template handler/filter automatically share the same sessionTable,
so the namespaces used with <set> and <import> match those used by
<if> and <extract>
- If this proves to be useful, it's now easy to add "namespace"
attributes to other tags.</pre>
<!-- new entry -->
<dt>Wed May 4 13:26:48 2005 PDT <b>suhler</b><dd>
<br><b>create</b>: samples/simple/config.dhtml, samples/simple/dhtml.html
<br><b>update</b>: samples/simple/config.vote
<pre>- remove redundant stuff from config.vote
- new DHTML example</pre>
<!-- new entry -->
<dt>Wed Jan 26 22:48:55 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/ExecTemplate.java, sunlabs/SourceTemplate.java
<pre>- add killToken() to execTemplate
- doc fixes for SourceTemplate</pre>
<!-- new entry -->
<dt>Tue Jan 11 09:56:46 2005 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/SMTPHandler.java
<pre>Don't look for <param> tags outside of <sendmail> ... </sendmail></pre>
<!-- new entry -->
<dt>Thu Dec 30 13:44:39 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: groovy/GroovyServerTemplate.java
<pre>minor doc fixes</pre>
<!-- new entry -->
<dt>Thu Dec 30 13:30:34 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: docs/Makefile, docs/html/roadmap.html, docs/html/todo.html, docs/packages/sunlabs.brazil.groovy.package.html
<pre>minor doc improvements</pre>
<!-- new entry -->
<dt>Thu Dec 30 13:04:20 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: Makefile.common
<pre>propagate JVM_VERSION to sub-makefiles</pre>
<!-- new entry -->
<dt>Thu Dec 30 13:01:46 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: util/LexML.java, handlers/ExprPropsHandler.java, handlers/ResourceHandler.java, handlers/templates/BSLTemplate.java, handlers/templates/QueueTemplate.java, handlers/templates/TemplateHandler.java, filter/TemplateFilter.java, sunlabs/ClockFormat.java, sunlabs/ListTemplate.java, sunlabs/XmlTree.java, sunlabs/DigestAuthHandler.java
<pre>javadoc fixes</pre>
<!-- new entry -->
<dt>Thu Dec 30 13:00:04 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: util/regexp/Regexp.java, util/regexp/Regsub.java
<pre>better diagnostics, allow Regsub to return its Regexp object</pre>
<!-- new entry -->
<dt>Fri Dec 17 14:28:32 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: groovy/GroovyServerTemplate.java
<pre>Defer starting the groovy intepreter until the first time it's needed</pre>
<!-- new entry -->
<dt>Fri Dec 17 11:52:44 2004 PDT <b>suhler</b><dd>
<br><b>create</b>: samples/simple/config.groovy, samples/simple/groovy.html, samples/simple/init.groovy
<pre>simple groovy example</pre>
<!-- new entry -->
<dt>Thu Dec 16 21:00:04 2004 PDT <b>suhler</b><dd>
<br><b>create</b>: groovy/GroovyServerTemplate.java, groovy/Makefile, docs/packages/sunlabs.brazil.groovy.package.html
<br><b>update</b>: Makefile
<pre>Added <groovy>...</groovy> for Rinaldo.</pre>
<!-- new entry -->
<dt>Wed Dec 15 13:18:58 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: samples/simple/config.form, samples/simple/form.html
<pre>updated to match MultipartSetTemplate</pre>
<!-- new entry -->
<dt>Wed Dec 15 13:12:22 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/MultipartSetTemplate.java
<pre>Implemented new mechanism for automatically saving uploaded files
to disk:
savePattern=[glob pattern] is used to specify which files on the form
are automaticaly written to disk.
saveName=[file name with ${..}]
is used to define the name used to save the file; field values
can be used as part of the name
This is safer than the previous strategy, as it prevents malicious users
from creating arbitrary files.</pre>
<!-- new entry -->
<dt>Wed Dec 15 12:38:26 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/SimpleSessionHandler.java
<pre>make inner class static</pre>
<!-- new entry -->
<dt>Wed Dec 15 12:30:40 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/templates/BSLTemplate.java
<pre>When using <foreach ... list="stuff" delim=[regexp] sort=no>
then the matched delimiter and all of its sub-matches are made
available in the scope of the foreach.</pre>
<!-- new entry -->
<dt>Tue Dec 7 09:47:24 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/SourceTemplate.java
<pre>Added name=xxx attribute to save source'd content to a property instead of
always incorporating it inline</pre>
<!-- new entry -->
<dt>Tue Nov 30 19:31:31 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: server/ChainHandler.java
<pre>better handling of invalid class errors for handlers</pre>
<!-- new entry -->
<dt>Tue Nov 30 15:27:18 2004 PDT <b>suhler</b><dd>
<br><b>create</b>: docs/scripts/fix-version.tcl
<pre>script to fix the version strings in all the source files</pre>
<!-- new entry -->
<dt>Tue Nov 30 15:21:55 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: util/Calculator.java, util/Base64.java, util/SocketFactory.java, util/Format.java, util/Glob.java, util/Guid.java, util/LexHTML.java, util/LexML.java, util/StringMap.java, util/Sort.java, util/http/HttpInputStream.java, util/http/HttpUtil.java, util/http/MimeHeaders.java, util/regexp/Regexp.java, util/regexp/Regsub.java, properties/PropertiesList.java, server/ChainHandler.java, server/Connection.java, server/FileHandler.java, server/Handler.java, server/Main.java, server/Request.java, server/Server.java, request/HttpSocketPool.java, request/HttpRequest.java, filter/CopyContentFilter.java, filter/ExecFilter.java, filter/Filter.java, filter/FilterHandler.java, filter/MD5Filter.java, filter/PlainFilter.java, filter/ReFilter.java, filter/ReplaceFilter.java, filter/SessionFilter.java, filter/TemplateFilter.java, filter/UrlSessionFilter.java, proxy/HistoryFilter.java, proxy/CookieFilter.java, proxy/ProxyHandler.java, proxy/SunProxy.java, proxy/UseProxy.java, sql/SqlTemplate.java, tcl/TclFilter.java, tcl/TclRePollHandler.java, tcl/TclHandler.java, tcl/TclServerTemplate.java, tcl/TclTemplateChannel.java, tcl/TclUtil.java, python/PythonServerTemplate.java, beanshell/BeanShellServerTemplate.java, beanshell/BeanShellHandler.java, beanshell/BeanShellTemplate.java, sunlabs/DigestTemplate.java, sunlabs/ChownHandler.java, sunlabs/ExpContentTemplate.java, sunlabs/ExecTemplate.java, sunlabs/ResourceLimitHandler.java, sunlabs/ListTemplate.java, sunlabs/ServerProcess.java, sunlabs/SnarfTemplate.java, sunlabs/SubstAllTemplate.java, sunlabs/UrlMapFilter.java, sunlabs/RemoteHostTemplate.java, sunlabs/SubstPropsHandler.java, ldap/LDAPTemplate.java, servlet/BServletServerSocket.java, servlet/BServletRequest.java, servlet/BServletSocket.java, servlet/BrazilServlet.java, email/EmailTemplate.java, velocity/VelocityFilter.java, javascript/JavaScriptTemplate.java, ssl/CertHandler.java, ssl/SslHandler.java
<pre>fixed @version strings</pre>
<!-- new entry -->
<dt>Tue Nov 30 11:05:43 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: samples/simple/config.form, samples/simple/form.html, samples/simple/vote.html
<pre>sync samples/simple
- format updates</pre>
<!-- new entry -->
<dt>Tue Nov 30 11:01:15 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/Makefile, handlers/templates/AddHeaderTemplate.java, handlers/templates/MultipartSetTemplate.java, sunlabs/RestartHandler.java, ssl/SslHandler.java
<pre>sync everything (except samples)
- unified version handling for java versions in Makefiles
- direct file uploads and saves for MultiPartSetTemplate
- add "keep" flag for RestartHandler
- minor doc fixes</pre>
<!-- new entry -->
<dt>Mon Nov 29 16:10:27 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/Makefile
<pre>add RestartHandler to Makefile, after checking java version</pre>
<!-- new entry -->
<dt>Wed Nov 24 16:02:52 2004 PDT <b>suhler</b><dd>
<br><b>create</b>: sunlabs/RestartHandler.java, samples/simple/restart.html, samples/simple/config.restart
<pre>Allow a server to restart when it gets a sigHUP.
This causes all the handlers to be reinitialized.
The restarted configuration can be supplied either by an external
configuration file, or the existing server.props can be reused.</pre>
<!-- new entry -->
<dt>Tue Nov 23 16:09:09 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/DigestAuthHandler.java
<pre>Credentials file can be re-read, allowing for the dynamic addition
of credentials.</pre>
<!-- new entry -->
<dt>Thu Nov 18 15:47:13 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: util/Glob.java
<pre>Allow null patterns in Glob.match() [always returns false]</pre>
<!-- new entry -->
<dt>Thu Nov 18 12:23:32 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: util/LexML.java
<pre>Initialze token type to STRING so getAttributes doesn't crash
if called before nextToken</pre>
<!-- new entry -->
<dt>Wed Nov 3 11:14:11 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: README
<pre>minor update (and test of the putback email distribution [1])</pre>
<!-- new entry -->
<dt>Wed Nov 3 10:36:03 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: sunlabs/DigestAuthHandler.java
<pre>use url.orig instead of request.url for uri checking</pre>
<!-- new entry -->
<dt>Wed Nov 3 08:36:20 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/HomeDirHandler.java, handlers/UrlMapperHandler.java, handlers/VirtualHostHandler.java, handlers/templates/PropsTemplate.java, handlers/templates/SetTemplate.java, server/Request.java
<pre>request.url is modified by various handlers to change the current notion
of what the current url is. However, sometimes (as in redirects or
authentication), the original url is required. For historical reasons,
"request.props("url.orig")" is the original URL, and request.url is the
current "virtual" url.
This changes has "url.orig" set when the request is first created, so
handlers/templates that change request.url don't have to check for it
first. Oh well.</pre>
<!-- new entry -->
<dt>Thu Oct 28 12:48:38 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/SMTPHandler.java, handlers/templates/DirectoryTemplate.java
<pre>update documentation to better reflect reality</pre>
<!-- new entry -->
<dt>Wed Oct 27 13:34:32 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/SMTPHandler.java
<pre>- better diagnostics (log level=5 displays xactionwith smtp server)
- better documentation
- proper handling of <param> and </sendmail> tag debugging</pre>
<!-- new entry -->
<dt>Tue Oct 26 11:30:37 2004 PDT <b>suhler</b><dd>
<br><b>create</b>: sunlabs/AsteriskTemplate.java
<br><b>update</b>: sunlabs/Makefile, sunlabs/SubstPropsHandler.java
<pre>Add AsteriskTemplate, a simple interface to the Asterisk (pbx) management interface
doc fixes</pre>
<!-- new entry -->
<dt>Tue Oct 26 11:29:38 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/UrlMapperHandler.java, handlers/templates/BSLTemplate.java
<pre>UrlMapperHandler.java: Make sure "export" ends with '.' (bug fix)
BSLTemplate.java: doc updates</pre>
<!-- new entry -->
<dt>Sun Oct 24 17:33:26 2004 PDT <b>suhler</b><dd>
<br><b>update</b>: handlers/VirtualHostHandler.java, handlers/templates/TemplateHandler.java
<pre>- VirtualHostHandler.java sets "url.orig" property