forked from agavi/agavi
-
Notifications
You must be signed in to change notification settings - Fork 1
/
CHANGELOG
785 lines (632 loc) · 49.2 KB
/
CHANGELOG
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
AGAVI CHANGELOG
===============
1.1.0 beta1 (June ??, 2009)
---------------------------
ADD: Improve hhvm compatibility (#1542) (Dominik)
ADD: Add AgaviTranslationManager::getMatchingLocaleIdentifiers() method (#1535) (Thomas Bachem)
ADD: Allow errors in validator_definition elements (#1497) (Steffen Gransow)
ADD: Add support for multiple option presets and mixed option/preset values (#1484) (Thomas Bachem)
ADD: Add validation depend tokens to validation report (#1486) (Steffen Gransow, Dominik)
ADD: BREAKING CHANGE: Allow 'translation_domain' attribute on <validators> (#1498) (Steffen Gransow, Dominik)
ADD: Allow all image formats supported by PHP in ImageFileValidator (#1480) (Thomas Bachem)
ADD: Support arbitrary "provides" and "depends" validator options with access to argument base parts (#1199) (David)
ADD: Allow calls to PHP functions in configuration file transformations (#1456) (David)
ADD: PSR-0 compatible namespaces autoloader (#1454) (David)
ADD: Allow validators to specify result code for exported data (#1453) (David)
ADD: Support "export_severity" validator parameter (#1565) (Thomas Bachem)
ADD: Allow validators to export to a different source (#1419) (David)
ADD: Automatically read from STDIN in AgaviConsoleRequest (#1437) (David)
ADD: Streams support in AgaviUploadedFile (#1449) (David)
ADD: Make filter chains and their filters accessible via an API (#1418) (David)
ADD: Allow MIME type checks in AgaviBaseFileValidator (#1342) (David)
ADD: Allow checking of MIME type in AgaviUploadedFile (#1407) (David)
ADD: Allow glob syntax for XIncludes in configuration files (#1406) (David)
ADD: Allow control over value literalization and whitespace handling in parameters and settings (#1389) (David)
ADD: AgaviHttpRedirectRoutingCallback (#1382, #1534) (David, Thomas Bachem)
ADD: Improve the build system for actions, views and models (#1106) (Felix)
ADD: Allow array syntax for slot names (#1110) (David)
ADD: Add support for custom filesystem layouts for modules to the project configuration system (#874) (Noah)
ADD: Response attributes (#1062) (David, TANAKA Koichi)
ADD: Add AgaviJsonValidator (#1566) (Thomas Bachem)
ADD: Add "forms_xpath" setting to AgaviFormPopulationFilter (#1527) (Thomas Bachem)
ADD: Add "cookie_encoding_callback" parameter to AgaviWebResponse (#1482) (Thomas Bachem)
ADD: Add getLevel() method to AgaviLogger and AgaviILogger (#1507) (Peter Limbach, Thomas Bachem)
CHG: Make AgaviXmlConfigParser::xinclude() use native sorting for glob (#1476) (Thomas Bachem)
CHG: Improve AgaviFormPopulationFilter's "log_parse_errors" setting to handle severities (#1481) (Thomas Bachem)
CHG: Improve AgaviFormPopulationFilter's error message callbacks (#1528) (Thomas Bachem, Steffen Gransow)
CHG: Ensure deterministic ordering of Tests (#1532) (Dominik)
CHG: Remove custom command line argument parsing from test runner (#1514) (Dominik)
CHG: Remove overwritten PHPUnit process isolation template (#1516) (Dominik)
CHG: Bump PHPUnit requirement to >= 3.7 (#1519) (Dominik)
CHG: Initialize Agavi on demand when used with composer (#1518) (Dominik)
CHG: Check process isolation settings for tests (#1517) (Dominik)
CHG: BREAKING CHANGE: Disable automatic process isolation in unittests (#1515) (Dominik)
CHG: Refactor instantiation of Actions and Views (#1398) (David)
CHG: Remove unlinking of temporary files in AgaviUploadedFile destructor (#1452) (David)
CHG: Overhaul default values in AgaviUploadedFile constructor (#1451) (David)
CHG: Move cleanup and wrapping of uploaded files from AgaviWebRequestDataHolder to AgaviWebRequest (#1450) (David)
CHG: Exit by default in AgaviTesting::dispatch() (#1446) (David)
CHG: Refactor request input handling to avoid disk writes (#1412) (David)
CHG: Deprecate support for property access in AgaviUploadedFile (#1408) (David)
CHG: Deprecate AgaviFilter::executeOnce() (#1410) (David)
CHG: Deprecate support for PHPTAL versions older than 1.2 in AgaviPhptalRenderer (#1416) (David)
CHG: Deprecate support for Doctrine versions older than 1.2 in AgaviDoctrineDatabase (#1414) (David)
CHG: Remove call overload and ArrayObject usage from AgaviUploadedFile (#1287) (David)
CHG: Remove AgaviCreoleDatabase (#1379) (David)
CHG: Remove support for Propel versions before 1.3 from AgaviPropelDatabase (#1381) (David)
CHG: Deprecate support for register_long_arrays (#1403) (David)
CHG: Deprecate support for magic_quotes_gpc (#1402) (David)
CHG: Make AgaviXmlConfigXsltProcessor generic and move it to util package (#1354) (David)
CHG: Make AgaviXmlConfigSchematronProcessor generic and move it to util package (#1355) (David)
CHG: Bump configuration namespaces to version 1.1 (#1385) (David)
CHG: Remove AgaviCreoleSessionStorage (#1380) (David)
CHG: Remove AgaviAdodbDatabase (#1375) (David)
CHG: Use bcrypt for password hashing in Sample Application (#1371) (David)
CHG: Do not throw exception in AgaviWebResponse if headers already sent (#1358) (David)
CHG: Make AgaviReturnArrayConfigHandler an AgaviXmlConfigHandler and add namespace awareness (#1277) (David)
CHG: Move loading of autoload.xml into Agavi::bootstrap() (#1206) (David)
CHG: Add response to default template assigns (#1095) (David)
CHG: Move all includes necessary for startup from Agavi::boostrap() into agavi.php (#1094) (David)
CHG: AgaviException::getFixedTrace() now also fixes empty traces and traces with a missing file entry (#1572) (Thomas Bachem)
FIX: Fix/remove unused/undefined variables and properties in the codebase (#1483) (Thomas Bachem)
FIX: Fix AgaviGregorianCalendar::pinDayOfMonth() (#1543) (Thomas Bachem)
FIX: Fixed path encoding in AgaviXmlConfigParser::xinclude() #1540 (Thomas Bachem)
FIX: prevent additional template pattern lookup w/ i18n (#1491) (Steffen Gransow)
FIX: Model code template Getter has unnessesary Parameter (#1322, #1494) (Robert Schulze, Benjamin Börngen-Schmidt)
FIX: [Config Breaking Change] Can't set default database with an empty <databases> block (#1524) (Dominik)
FIX: <databases> without default should not unset parent's default (#1533) (Dominik)
FIX: Prevent empty translation domains in the config (#1531) (Dominik)
FIX: <exclude> in suites.xml files is broken (#1525) (Dominik)
FIX: fix AgaviViewTestCase::assertViewSetsCookie throwing a notice (#1521) (Dominik)
FIX: Fix "session_id" parameter of AgaviSessionStorage (#1479) (Thomas Bachem)
FIX: Routing default values can now be zero or an empty string (#1545) (Thomas Bachem)
FIX: BREAKING CHANGE: Prefix, value & postfix of routing values do now default to null instead of an empty string if not present (#1570) (Thomas Bachem)
FIX: BREAKING CHANGE: <filters> element in translation.xml doesn't allow multiple <filter> child elements (#1475) (Dominik, Armin Rezayati)
FIX: BREAKING CHANGE: XML entities in configuration files are now properly substituted everywhere (#1571) (Thomas Bachem)
1.0.8 (June 28, 2015)
---------------------
CHG: Update timezone database to 2015e (#1553) (David, Dominik)
FIX: Fix closing tag `h2` in WelcomeSuccess (#1508) (Robert Schulze)
FIX: AgaviTemplateLayer possibly overwrites given parameters with defaults (#1490) (Steffen Gransow)
FIX: AgaviArrayPathDefinition::unsetValue() triggers a warning on empty paths (#1488) (Ionuț Matei)
FIX: Various fixes to the shiny exception template (#1478) (Thomas Bachem)
FIX: Use the Composer autoloader when running tests (#1473) (Dominik, Leon Weidauer)
FIX: Some tests fail when date.timezone is not set (#1474) (Dominik, Leon Weidauer)
FIX: The NumberFormatter tests fail with recent ICU versions (#1469) (Dominik)
1.0.7 (December 22, 2011)
-------------------------
ADD: Configurable context for AgaviFlowTestCase (#1465) (David)
CHG: Redesign welcome page (#1464) (David)
1.0.7 RC2 (December 14, 2011)
-----------------------------
CHG: Add missing interfaces to default compile.xml (#1462) (David)
CHG: Guarantee order of form population and give preferential treatment to automatically re-populated forms (#1461) (David)
CHG: Update singular and plural rules in AgaviInflector (#1460) (David)
FIX: Inflector does not handle uncountable words as part of strings (#1459) (David)
FIX: Fatal errors with PHPUnit 3.6 (#1457) (David)
1.0.7 RC1 (November 20, 2011)
-----------------------------
ADD: Optional argument for AgaviTesting::dispatch() to trigger exit with status code (#1444) (David)
ADD: Pass through "configuration" command line option to PHPUnit (#1439) (David)
ADD: Configuration option for character encoding in AgaviPhpTalRenderer (#1428) (David)
CHG: AgaviConsoleRequest should not populate $_FILES superglobal when processing STDIN content (#1448) (David)
CHG: Return test result from AgaviTesting::dispatch() (#1445) (David)
CHG: Remove function_exists check for spl_object_hash (#1441) (David)
CHG: Remove function_exists check for get_magic_quotes_gpc (#1440) (David)
CHG: Update timezone database to 2011n (#1430) (David)
CHG: Rephrase exception message about missing XSL extension to be more descriptive (#1426) (David)
CHG: Do not call getCredentials() if Action is not "secure" (#1400) (David)
FIX: AgavConsoleRequest creates array instead of AgaviUploadedFile for STDIN contents (#1447) (David)
FIX: AgaviSmartyRenderer fails to detect Smarty version 3.1 or later (#1438) (David)
FIX: AgaviSqlsrvDatabase does not assign resource property (#1443) (David)
FIX: AgaviPdoDatabase does not assign resource property (#1442) (David)
FIX: Several database adapters don't clean up connection and resource properties on shutdown (#1433) (David)
FIX: Doctrine database adapter won't trigger connect() on getResource() call (#1434) (David)
FIX: Doctrine2 database adapters won't trigger connect() on getResource() call (#1432) (David)
FIX: AgaviViewTestCase calls undefined method (#1424) (David, Markus Lervik)
FIX: Exporting and value casting behavior swapped in AgaviBooleanValidator (#1422) (Dominik)
1.0.6 (July 23, 2011)
---------------------
YAY: No changes over 1.0.6 RC1 :)
1.0.6 RC1 (July 11, 2011)
-------------------------
ADD: Doctrine 2 support (#1329) (David)
ADD: Support for configuration of Doctrine query/result caching (#1267) (David, TANAKA Koichi)
ADD: Make Doctrine connection event listener class configurable (#1399) (David)
ADD: AgaviViewTestCase::assertNotHasLayer() (#1278) (David)
ADD: Smarty 3 support in AgaviSmartyRenderer (#1328) (David)
ADD: Renderer for Twig (#1330) (David)
ADD: AgaviSqlsrvSessionStorage (#1392) (David)
CHG: Update timezone database to 2011h (#1396) (David)
CHG: Expand configuration directives in all routing attributes (#1383) (David, Thomas Bachem)
CHG: Factor out error message formatting in AgaviSqlsrvDatabase (#1393) (David)
CHG: Move Sample App WSDL serving into web context (#1390) (David)
FIX: AgaviConfigCache tests failing on Windows (#1391) (David)
1.0.5 (June 16, 2011)
---------------------
CHG: Use trigger_error() instead of die() in minimum PHP version check (#1387) (David)
CHG: Support PHPUnit 3.5 and drop compatibility with PHPUnit 3.4 (#1331) (David, Markus Lervik)
FIX: AgaviLoggingConfigHandler does not check for existence of declared classes, layouts or appenders (#1386) (David)
FIX: PEAR package declares Phing 2.3.1 or later as a dependency, but minimum required Phing version is 2.4.0 (#1388) (David)
FIX: _common.xsl copies namespace declarations without prefix (#1384) (David)
1.0.5 RC1 (June 6, 2011)
------------------------
ADD: Support for protocol-relative URL generation (#1224) (David, Steffen Gransow)
ADD: Support Thrift socket timeout in AgaviScribeLoggerAppender (#1351) (Dominik)
ADD: Add plaintext exception output to top and bottom of shiny.php (#1350) (David)
ADD: Zend_Cloud_DocumentService database adapter (#1349) (David)
ADD: Support for X-Forwarded-Proto style HTTPS indicators (#1345) (David)
CHG: Deprecate support for Propel versions before 1.3 in AgaviPropelDatabase (#1378) (David)
CHG: Deprecate AgaviCreoleSessionStorage (#1377) (David)
CHG: Deprecate AgaviCreoleDatabase (#1376) (David)
CHG: Prevent usage of SET NAMES for MySQL connections in AgaviMysqliDatabase (#1364) (David, Anthony Ferrara)
CHG: Prevent usage of SET NAMES for MySQL connections in AgaviMysqlDatabase (#1363) (David, Anthony Ferrara)
CHG: Prevent usage of SET NAMES for MySQL connections in AgaviPdoDatabase (#1362) (David, Anthony Ferrara)
CHG: Disable DirectorySlash in default .htaccess file (#1360) (David)
CHG: Update timezone database to 2011g (#1359) (David)
CHG: Add fail-safe to AgaviToolkit::clearCache() (#1357) (David)
CHG: AgaviSecurityUser::hasCredentials() should use AgaviSecurityUser::hasCredential() for complex lookups (#1356) (David)
CHG: Ignore .gitignore and .gitkeep in cache folder (#1346) (David)
CHG: Make AgaviFormPopulationFilter parsing more lenient (#1307) (David)
FIX: Exception in AgaviMysqlSessionStorage::sessionWrite() if no data modified on update (#1374) (David)
FIX: Exception in AgaviPdoSessionStorage::sessionWrite() with MySQL if no data modified on update (#1361) (David)
FIX: Inconsistent whitespace in code templates (#1373) (David)
FIX: FormPopulationFilter doesn't work with encodings other than UTF-8 (#1372) (David)
FIX: Undefined variable notice in AgaviView (#1370) (David)
FIX: Undefined variable notice in AgaviXmlConfigSchematronProcessor (#1369) (David)
FIX: Undefined variable notice in AgaviPostgresqlSessionStorage (#1368) (David)
FIX: Undefined variable notice in AgaviMysqlDatabase (#1367) (David)
FIX: Undefined variable notice in AgaviMysqliDatabase (#1366) (David)
FIX: Incorrect evaluation of escape sequences in AgaviLdmlConfigHandler (#1365) (David)
FIX: AgaviTranslationManager::getDefaultLocale returns null (#1348) (David)
FIX: AgaviException::buildParamList has escaping issues (#1344) (David)
FIX: Issues with FPF and HTML5 elements (#1292) (David)
1.0.4 (December 19, 2010)
-------------------------
ADD: Refine #1283 to allow extraction of multiple subpatterns in regex validator (#1335) (David)
CHG: Overhaul default .htaccess file (#1336) (David)
FIX: Non-string values for "export" parameter cause fatal error in AgaviValidator (#1337) (David)
1.0.4 RC1 (December 13, 2010)
-----------------------------
ADD: Render PHP 5.3 linked exceptions (#1308) (David)
ADD: AgaviScribeLoggerAppender (#1305) (David)
ADD: AgaviJsonLoggerLayout (#1304) (David)
ADD: Configuration options for AgaviPassthruLoggerLayout (#1303) (David)
ADD: AgaviXsltRenderer (#1299) (David)
ADD: Add Japanese translation for sample app (#1298, #1319) (TANAKA Koichi)
ADD: Allow configuration of prefix for route generation through options (#1285) (David)
ADD: Allow extraction of subpatterns in regex validator (#1283) (David)
ADD: Create an AgaviBooleanValidator (#1196) (Felix)
ADD: Windows Azure Session Storage (#1266) (David)
ADD: Support for IIS7 (#1265) (David)
ADD: Database adapter for ext/sqlsrv (#1264) (David)
CHG: Update timezone database to 2010o (#1332) (David)
CHG: Unbundle PHPUnit and move dependency to PEAR (#1158) (David)
CHG: Change Tango Icon Theme license information (#1309) (David)
CHG: Update ISO Schematron to version 2010-04-21 (#1306) (David)
CHG: Rename internal AgaviLoggerMessage parameters (#1302) (David)
CHG: Make AgaviConfig non-final (#1300) (David)
CHG: Build target "public-create" should overwrite existing files (#1288) (David)
CHG: Move check for default output type to end of config file compilation (#1286) (David)
CHG: Add packages and package-release Phing targets (#1276) (Simon)
CHG: Change package-pear Phing target to auto-generate tarball (#1275) (Simon)
CHG: Eliminate use of create_function() in AgaviTranslationManager::getLocaleIdentifier() (#1274) (David)
CHG: Make charset configuration and init queries event based in AgaviDoctrineDatabase (#1272) (David)
CHG: Optionally use readline wrapper for agavi script (#1271) (Simon, David)
CHG: Restore default Phing ANSI colors for Mac OS X Snow Leopard (#1270) (David)
FIX: Custom taskdef in project build.xml breaks script (#1280) (Noah)
FIX: AgaviNumberValidator fails with swedish locale for negative numbers (#1293) (David)
FIX: Phing 2.4.4 causes fatal error (#1333) (David)
FIX: AgaviExecutionFilter throws PHP warning if cache group value is not a scalar (#1314) (David)
FIX: Query string arguments in incoming URL cannot be unset using null when generating current route (#1294) (David)
FIX: AgaviException::buildParamList breaks multibyte string parameter (#1315) (David)
FIX: RbacSecurityUser doesn't handle users without roles properly (#1325) (David)
FIX: AgaviValidationReportQuery::getErrors() does only return first error message of each incident (#1321) (David)
FIX: Sample app Accept-Language header parsing is broken (#1324) (David)
FIX: Statically forcing the URL scheme to https in AgaviWebRequest is not possible (#1281) (David)
FIX: Regression: Invalid XHTML in shiny exception template when first line in stack frame is HTML (#1284) (David)
FIX: PHP 5.2.6 bug breaks FPF (#1279) (David)
FIX: AgaviGettextTranslator doesn't reset plural form function when switching locales (#1273) (David)
1.0.3 (April 16, 2010)
----------------------
ADD: Make DOMDocument::saveXML() options configurable (#1262) (David)
CHG: Update timezone database to 2010h (#1261) (David)
FIX: AgaviSeleniumTestCase extends non-existent PHPUnit_Framework_SeleniumTestCase (#1260) (David)
FIX: Sample app incompatible with PHP 5.2 (#1258) (David)
FIX: Regression: AgaviDecimalFormatter fraction error (#1257) (David)
1.0.3 RC1 (March 22, 2010)
--------------------------
ADD: Allow exporting of values in AgaviNumberValidator (#1160)
CHG: Update timezone database to 2010f (#1255) (David)
CHG: Make AgaviDecimalFormatter::parse() behavior more lenient and consistent with ICU's NumberFormatter (#1254)
CHG: AgaviNumberValidator should cast to desired type (#1250) (David)
CHG: Allow validation of non-string values in AgaviNumberValidator (#1249) (David)
CHG: Standard production exception templates should log errors (#1239) (David)
CHG: Refactor exception rendering (#1242) (David)
CHG: Allow "extension" parameter to be an array in file validators (#1235) (David)
CHG: File extension comparison should be case-insensitive in file validators (#1234) (David)
CHG: Require Phing 2.4 or newer (#1232) (David)
FIX: Integer over/underflow problem in AgaviDecimalFormatter::parse() (#1253) (David)
FIX: Integer over/underflow problem in AgaviNumberValidator (#1252) (David)
FIX: AgaviNumberValidator mutates value on error (#1251) (David)
FIX: XML config namespace copying broken on PHP 5.2.12/5.3.2 (#1244) (David)
FIX: Relative path passed to AgaviConfigCache::checkConfig() may result in misleading exception message (#1220) (David)
FIX: AgaviToolkit::isPathAbsolute accepts invalid values (#1204) (David)
FIX: AgaviLoggerAppender::write() lacks type hint (#1221) (David)
FIX: AgaviStringValidator trimming fails on newlines (#1243) (David)
FIX: Build script generates exception templates with non .php extension (#1179) (David)
FIX: AgaviWebRouting::gen(null) returns url without sid even if use_trans_sid is true (#1238) (David)
FIX: Implied route matches are repeated in generated urls where route is redefined (#1209) (David)
FIX: Regression: Form Population Filter strips value attribute from button inputs (#1236) (David)
FIX: Shiny exception template may produce invalid XHTML (#1240) (David)
FIX: Project build.xml not used with Phing 2.4.0+ (#1231) (Felix)
FIX: AgaviTranslationManager::getDefaultLocale() is broken and throws a notice (#1229) (Dominik)
FIX: AgaviWebRouting::gen(null) fails when multiple chars are defined as separators in arg_separator.input (#1227) (David)
FIX: Generated action cache configs have caching enabled by default (#1223) (David)
1.0.2 (January 27, 2010)
------------------------
CHG: Update timezone database to 2010b (#1219) (David)
CHG: Update ISO Schematron to version 2010-01-25 (#1217) (David)
FIX: Build system is incompatible with Phing 2.4.0 (#1216) (David)
FIX: Form Population Filter doesn't filter out empty error messages (#1214) (David)
1.0.2 RC4 (January 19, 2010)
----------------------------
ADD: Support for HTML 5 forms (#1213) (David)
ADD: Support for Doctrine 1.2 (#1210) (David)
ADD: Include error type and code when reporting libxml errors (#1202) (David)
CHG: Update timezone database to 2009u (#1207) (David)
CHG: Move error suppression operator for XML validation calls to wrapper methods (#1201) (David)
FIX: ICU Bug 6814 (#1211) (David)
FIX: AgaviTimeZoneDataParser doesn't support "-" as a time value (#1208) (David)
FIX: Several method existence checks don't deal with visibility (#1205) (David)
FIX: Configuration parameter whitespace handling is inconsistent (#1203) (David)
FIX: Regression: single Propel init query is lost during initialization (#1194) (David)
FIX: Regression: support for Propel 1.3 is broken (#1195) (David)
1.0.2 RC3 (December 8, 2009)
----------------------------
ADD: Support for Propel 1.4 (#1181) (David)
CHG: Use printf rather than echo in bin/agavi (#1191) (David)
CHG: Update to PHPUnit 3.4.3 (#1184) (David)
CHG: Update timezone database to 2009s (#1188) (David)
CHG: Make HTTP Content-Type response header charset detection in AgaviFormPopulationFilter more robust (#1187) (David)
FIX: Validation drops first element in multi-dimensional array exports (#1189) (Dominik)
FIX: AgaviToolkit::literalize incorrectly returns null for certain input values (#1190) (David)
FIX: HTML meta tag charset detection in AgaviFormPopulationFilter never matches strings without quotation marks (#1185) (David)
FIX: FormPopulationFilter raises warning with old PCRE versions (#1183) (David)
FIX: AgaviWebResponse throws notice if "http_headers" parameter is not an array (#1186) (David)
FIX: Duplicate error message if agavi console script cannot determine Phing version (#1180) (David)
1.0.2 RC2 (November 6, 2009)
----------------------------
CHG: Update to PHPUnit 3.4.2 (#1178) (David)
CHG: Change generated timezone files to have version info, not timestamp, in header comments (#1177) (David)
CHG: Update timezone database to 2009q (#1176) (David)
FIX: AgaviAttributeHolder::removeAttribute() does not return values by reference if array key access is used (#1175) (David)
FIX: AgaviParameterHolder::removeParameter() causes notice for invalid keys when calling with by-ref assignment (#1174) (David)
FIX: agavi.bat-dist lacks double quotes for PHP and Agavi path assignments (#1172) (David)
FIX: AgaviConfigParser::convertEncoding() performs case-sensitive comparison of encoding (#1162) (David)
FIX: AgaviConfigParser::convertEncoding() produces notice when throwing exception (#1161) (David)
FIX: Shiny exception template prepends file paths with an underscore (#1156) (David)
FIX: agavi.php erroneously always assumes it is a symlink if project.directory is empty (#1155) (Felix)
1.0.2 RC1 (September 13, 2009)
------------------------------
ADD: Accept optional argument identifier in AgaviValidator::getArgument() (#1142) (David)
ADD: Support for PHPTAL 1.2 (#1141) (David)
ADD: Allow optional strict comparison in AgaviEqualsValidator (#1128) (David, Dennis Meckel)
ADD: Allow optional strict comparison of elements in AgaviInarrayValidator (#1107) (David)
CHG: Update timezone database to 2009m (#1154) (David)
CHG: Update old tests to use bundled PHPUnit (#1153) (Felix)
CHG: Update to PHPUnit 3.4.0RC3 (#1152) (Felix)
CHG: Refactor renderers to perform engine creation in separate methods (#1139) (David)
CHG: Improve AgaviDatabaseConfigHandler error message in case no database connections are configured (#1138) (David)
CHG: Support PHP namespaces in configuration schemas (#1133) (David)
CHG: Validator shortcut "arraylength" should default to minimum of one element (#1123) (David)
CHG: Backport any necessary ICU changes and fixes (#858) (Dominik)
CHG: Remove unnecessary use of create_function() in AgaviInarrayValidator (#1112) (David)
CHG: Update ISO Schematron to version 2009-05-18 (#1103) (David)
CHG: Routing callback parameters should be set before initialize method is called (#1105) (David)
FIX: AgaviValidationReportQuery::getResult() possibly throws a notices when used with byValidator queries (#1151) (Dominik)
FIX: AgaviLdmlConfigHandler does not compile /ldml/numbers/symbols/minusSign (#1149) (David)
FIX: AgaviConfigCache::writeCacheFile() permission error handling is broken (#1148) (David)
FIX: AgaviVirtualArrayPath::get() ignores position argument (#1143) (Kirila)
FIX: agavi.sh does not allow parameters with spaces (#1137) (Felix)
FIX: AgaviNumberValidator does not allow "double" as type name (#1135) (David)
FIX: AgaviNumberValidator mutates invalid input if translation is used for parsing (#1136) (David)
FIX: XML Schema type "identifier" is broken (#1132) (David)
FIX: AgaviArrayPathDefinition is not included prior to framework startup (#1127) (David)
FIX: Numeric keys are reindexed, not merged, in AgaviConfig::fromArray() (#1126) (David)
FIX: Numeric keys are reindexed, not merged, in AgaviParameterHolder::setParameters() (#1125) (David)
FIX: Numeric keys are reindexed, not merged, in AgaviAttributeHolder::setParameters() (#1124) (David)
FIX: AgaviArraylengthValidator doesn't work with files (#1122) (David)
FIX: AgaviValidationManager::clear() doesn't clear validation errors (#1104) (David)
FIX: Validation xsd and doc block comments have references to the removed 'affects' parameter (#1101) (Dominik)
FIX: AgaviTranslationManager::_n() and _c() ignore custom locale independent format (#1099) (Dominik)
FIX: Configuration system does not permit identifiers to be one character in length (#1098) (Noah)
FIX: Multiple settings blocks and settings prefixes are not allowed in module configs (#1096) (David)
1.0.1 (May 1, 2009)
-------------------
CHG: Update timezone database to 2009g (#1093) (David)
1.0.1 RC2 (April 24, 2009)
--------------------------
CHG: Harden workaround for PHP bug 47206 (#1092) (David)
CHG: Return removed namespace from AgaviAttributeHolder::removeAttributeNamespace() (#1088) (David)
CHG: Update timezone database to 2009f (#1086) (David)
CHG: Allow omission of empty argument tag when using arguments base (#1085) (David)
CHG: Pass current execution container to caching callbacks in execution filter (#1079) (David)
FIX: Minimal output_types.xml code template does not define "slot" layout (#1087) (David)
FIX: Arrays that failed validation are not purged from request data (#1084) (David)
FIX: Memory leak in AgaviTranslationManager::getLocaleIdentifier() (#1083) (David)
FIX: SOAP support's document/literal wrapped marshalling cannot handle multi-part return values (#1081) (David)
1.0.1 RC1 (March 26, 2009)
--------------------------
ADD: Allow configuration directives as caching group values (#1059) (David)
CHG: Update to PHPUnit 3.4.0beta2 (#1076) (David)
CHG: Allow control over exporting behavior in combination with argument bases (#1074) (Dominik, David)
CHG: Harmonize handling of dots and slashes in action, view and model names (#1071) (David)
CHG: Update timezone database to 2009d (#1070) (David)
CHG: Generated WSDLs should not have namespace attribute on soap:body elements if service is document/literal (#1061) (David)
FIX: Exporting parameters from validators with an argument base causes fatal error (#1073) (David, Dominik)
FIX: Fatal error in AgaviArrayPathDefinition::setValue() in combination with arrays (#1075) (David)
FIX: Race conditions in AgaviConfigCache::writeCacheFile() may produce corrupt files (#1072) (Dominik)
FIX: Build templates for ProjectBaseView and output_types.xml use different name for slot layout (#1067) (Noah)
FIX: SOAP support's document/literal wrapped marshalling cannot handle certain empty structs (#1065) (David)
FIX: SOAP support's document/literal wrapped marshalling incorrectly wraps SoapFault objects (#1064) (David)
FIX: Form Population Filter inserts markup container for validation errors even if there are no messages to insert (#1060) (David)
FIX: Regression: changes to extra parameters in AgaviRoutingCallback::onGenerate() have no effect (#1057) (Dominik)
FIX: Regression: extra parameters added by AgaviRoutingCallback::onGenerate() are not added to routing string as e.g. query params (#1056) (Dominik)
FIX: Execution filter may run into fatal error if no caching rules are defined for an output type, and the action is cached (#1055) (David)
1.0.0 (February 25, 2009)
-------------------------
ADD: Project configuration system's public-create should ask for the environment to bootstrap (#1053) (David)
CHG: AgaviReturnArrayConfigHandler should throw exception if config file is not in legacy 0.11 XML namespace (#1054) (David)
FIX: Project configuration system script does not accept multiple property definitions (#1052) (Noah)
1.0.0 RC2 (February 23, 2009)
-----------------------------
ADD: Allow passing of an explicit Validation Report object to Form Population Filter (#1050) (David)
CHG: Improve best practices in generated projects (#1049) (David, Noah)
CHG: Make route patterns mandatory again (#1047) (David)
FIX: Regression: routing callbacks cannot modify options (#1051) (David)
FIX: Default View code template sets wrong title attribute (#1048) (David)
1.0.0 RC1 (February 16, 2009)
-----------------------------
ADD: Add AgaviArrayPathDefintion::flatten() method (#1042) (Dominik)
CHG: Make route patterns optional (#1046) (David)
CHG: Update timezone database to 2009b (#1043) (David)
CHG: Regex validator should export the validated data (#1041) (Felix)
CHG: Add workaround for PHP bug 47206 (#1038) (David)
FIX: AgaviTranslationManager::$translators and $supplementalData are not initialized as empty array (#1045) (David)
FIX: Certain libxml versions cause some config handlers to randomly produce invalid results due to corrupt XPath result sets (#1039) (David)
FIX: Regression: empty arguments that weren't validated remain in request data (#1044) (David)
FIX: Identity template in _common.xsl performs verbatim copies of elements (#1040) (David)
FIX: Regression: AgaviSoapController::dispatch() signature is incompatible with that of AgaviController::dispatch() (#1037) (David)
FIX: Regression: Sample App SOAP, XMLRPC and Console interfaces are broken (#1036) (David)
1.0.0 beta9 (February 10, 2009)
-------------------------------
ADD: Allow setting of session_cache_expire(), session_cache_limiter() and session_module_name() through configuration (#1035) (David)
ADD: Implement a basic system for testing Agavi applications and internal components, THIS IS EXPERIMENTAL! (#1021) (Felix, David)
ADD: Introduce special AgaviUncacheableException for cache group callbacks (#1032) (David)
ADD: Implement new validation report query API (#1022) (Dominik, David)
ADD: Allow routing callbacks to return an AgaviResponse (#1028) (David)
CHG: Rename "messageIndex" in AgaviValidationError to "name" (#1030) (David)
CHG: Explicitly call onNotMatched() method on a routing callback if its onMatched() method returned false (#1027) (David)
CHG: Restore state right after a routing callback returned false from onMatched() rather than at the end of the callback execution loop (#1026) (David)
CHG: Throw exception if Apache's SERVER_SOFTWARE env var contains insufficient version information (#1029) (David)
FIX: Regression: Fatal error in AgaviRouting with use_translation off (#1031) (David)
FIX: Regression: Locale and Request Method are not restored to previous value after a matching route's callback(s) caused the match to ultimately fail (#1024) (David)
FIX: Regression: invalid Locale or Output Type names in routes trigger premature exceptions (#1023) (David)
FIX: Use of undefined variable $request in AgaviWebRouting::execute() (#1025) (David)
1.0.0 beta8 (February 4, 2009)
------------------------------
SEC: CVE-2009-0417: Cross-site scripting vulnerability in handling of incoming URLs (#1019) (David)
ADD: AgaviController::dispatch() should accept an AgaviExecutionContainer as optional second argument (#1012) (David)
ADD: Allow relative min and max values using strtotime syntax in AgaviDateTimeValidator (#1018) (Dominik)
ADD: Support for arbitrary HTTP POST Content Types (#1015) (David)
ADD: Automatically decode HTTP PUT payload into request parameters for application/x-www-form-urlencoded Content-Type in AgaviWebRequest (#1016) (David)
ADD: Support for anti-stampede callbacks in Execution Filter (#744) (David)
ADD: AgaviResponse::hasContent() (#1007) (David)
ADD: Complete support for multiple SOAP services in the same application (#1001) (David)
ADD: AgaviException::render() should send shell exit code (#990) (David)
ADD: Command line support (request/response/routing) (#480) (David)
ADD: Optionally set 'secure' flag on response cookies automatically (#982) (David)
ADD: Optionally set 'secure' flag on session cookies automatically (#981) (David)
ADD: Add AgaviWebRequest::isHttps() convenience method (#980) (David)
ADD: Allow setting of session save path in AgaviSessionStorage (#979) (David)
CHG: Throw named error if "required" condition is not satisfied in validators (#1020) (Dominik)
CHG: Add extension points to XML schema definitions where feasible (#515) (David, Noah)
CHG: Change configuration system to support only XML (#519) (David, Noah)
CHG: AgaviTimezone::createCustomTimeZone() should throw exceptions for unparseable TZ strings (#958) (David)
CHG: Rewrite Routing (#448) (Dominik, David, Felix)
CHG: Make populating of module and action names into request data configurable and remove overwriting behavior (#812) (David)
CHG: Polish the Sample App (#998) (David)
CHG: Update timezone database to 2009a (#1013) (David)
CHG: Steamline date formatting and parsing behaviors when using timezones (#964) (Dominik, David, Felix)
CHG: Rename AgaviTranslationManager::getCurrentTimeZone() to getDefaultTimeZone() (#994) (David)
CHG: Remove unused property AgaviOperatorValidator::$errors (#987) (David)
CHG: Allow arbitrary number of fractional seconds for parsing date formats (#977) (Dominik)
FIX: Content-Type and Content-Length request headers are treated incorrectly (#1017) (David)
FIX: AgaviWebRequest HTTP PUT support ignores Content-Type header (#1014) (David)
FIX: Project configuration system does not reflect user-specified template extension in configuration (#1003) (Noah)
FIX: Project configuration system does not copy all templates according to user-specified extension (#1002) (Noah)
FIX: Several date classes are lacking type hints in method signatures (#997) (Dominik)
FIX: FPF does not insert error messages or classes for submit buttons (#1011) (David)
FIX: Shiny exception template produces invalid XHTML (#1009) (David)
FIX: Sample App's and code templates' SecureSuccessView responds with a 401 HTTP status code instead of 403 (#1010) (David)
FIX: [EXPLETIVE] Fucking Debian fucking ruined their fucking PHP package once again, and now we need to waste fucking time to fucking fix it (#1008)
FIX: AgaviSoapController does not handle some SoapServer/SoapClient options properly (#1006) (David)
FIX: Marshalling of document/literal wrapped SOAP responses is broken (#1004) (David)
FIX: Infinite loop is infinite (#1000) (David)
FIX: Default compile.xml and Sample app's Disabled module module.xml are still in old configuration format (#999) (David)
FIX: AgaviCalendar::setTimeInMillis() doesn't explicitly cast value to float (#996) (David)
FIX: Build system does not always identify modules correctly (#924) (Noah)
FIX: The AgaviDateTimeValidator doesn't check input value types for unix and unix_milliseconds formats
FIX: AgaviConfigCache::loadConfigHandlers() may trigger "cannot redeclare class" fatal error (#989) (David)
FIX: Caching generates invalid group values in some cases (#988) (David)
FIX: Validation marks fields that weren't processed due to unsatisfied dependencies as sucessful (#984) (Dominik, David)
FIX: Form Population Filter reveals errors from validators with severities "silent" and "info" (#986) (David)
FIX: Validators with argument arrays might not perform dependency checks (#985) (David, Dominik)
FIX: AgaviValidationErrror::__construct() does not check type of arguments (#983) (Dominik)
FIX: The Milliseconds 1-99 are missing the leading 0 when a date is formatted (#978) (Dominik)
FIX: Module setting values are not literalized (#976) (David)
1.0.0 beta7 (January 11, 2009)
------------------------------
ADD: AgaviDateTimeValidator should accept input as UnixTimestamp and as TimeInMillis (#974) (Dominik)
ADD: Add option to control Propel 1.3 instance pooling (#960) (Felix)
ADD: AgaviArraylengthValidator (#948) (Dominik)
ADD: Allow optional marshalling of document/literal wrapped request and response elements (#940) (Felix, David)
CHG: Harden path string handling in AgaviArrayPathDefinition (#973) (David, Dominik)
CHG: Change magic_quotes_gpc handling to require PHP 5.2.8 and use the fixes introduced there (#953) (David)
CHG: Rename AgaviException::printStackTrace() (#949) (David)
CHG: Re-throw exception instead of printing stack trace and info in exception templates when display_errors is off (#952) (David)
CHG: Refactor AgaviConfigCache::callHandler() to be more modular and testable (#929) (Felix)
CHG: Refactor AgaviToolkit::stringBase() (#935) (Felix)
CHG: Add configuration file path to header comments in compiled files if possible (#938) (David)
CHG: Add +FollowSymLinks to .htaccess code templates and samples (#893) (David)
FIX: Init queries are not run correctly for Propel 1.3 (#975) (David)
FIX: AgaviWebResponse sends Content-Length header with value 0 even if 'send_redirect_content' option is enabled (#972) (David)
FIX: Using the timezone option in a locale string passed to _d() can possibly change the timezone of the given calendar object (#962) (Dominik)
FIX: AgaviValidationValidatorResult missing from autoload.xml (#969) (Veikko)
FIX: Caching does not support customized view name schemes (#970) (David)
FIX: AgaviTranslationManager::createCalendar() forgets TZ offset when called with DateTime object (#957) (Dominik)
FIX: Missing variable declaration in AgaviGettextTranslator (#968) (Dominik)
FIX: AgaviWebRequestDataHolder method implementations are all over the place (#955) (David)
FIX: Request data is not cleared if default View is run in absence of suitable Action::execute*() method (#967) (David)
FIX: Slot container created inside a forward container retains "is_forward" parameter (#966) (David)
FIX: AgaviValidationManager::getFailedFields() calls invalid method (#963) (Dominik)
FIX: Access to global request data holder is not locked during AgaviAction::getDefaultViewName() (#954) (David)
FIX: The class name of AgaviAndoperatorValidator and AgaviNotoperatorValidator don't match the coding guidelines (#951) (David)
FIX: Several validators might raise notices or break altogether on incorrect argument types (#946) (Dominik)
FIX: AgaviValidator::getKeysInCurrentBase triggers a warning if the current validator base is no array (#947) (Dominik)
FIX: FPF error insertion fails if XPath expression yields more than one location in the document (#943) (David)
FIX: Arguments are unable to be named in validators configuration (#942) (Noah)
FIX: Possible to run any action by passing module/action parameters to invalid URL (#934) (David)
FIX: Pattern delimiter is not passed to several preg_quote calls (#939) (David)
FIX: Off-by-one error in AgaviToolkit::stringBase() (#936) (Felix)
FIX: AgaviPropelDatabase::connect() doesn't honor datasource parameter (#937) (David, Sven Kretschmann)
FIX: AgaviConfigCache::getCacheName() possibly creating ambiguous cache names (#932) (Felix)
FIX: AgaviConfigCache::getCacheName() path escaping problems (#931) (Felix)
FIX: Invalid CSS in project wizard's WelcomeSuccess template (#928) (TANAKA Koichi, David)
FIX: Converting an AgaviCalendar with a custom unnamed Timezone an DateTime object fails (#922) (Dominik)
1.0.0 beta6 (November 12, 2008)
-------------------------------
ADD: Optionally allow sending of response content when redirecting in AgaviWebResponse (#916) (David)
CHG: Assume "strict" validation mode directly inside AgaviValidationManager in addition to code templates and remove "conditional" default for development environments (#919) (David)
CHG: Add more best practices to code templates (#910) (David)
CHG: Use standard layouts etc for system actions instead of hand-built renderers and layers in code templates (#911) (David)
CHG: Always merge slot response metadata even if response content is null (#917) (David)
CHG: Update timezone database to 2008i (#912) (David)
CHG: Add standard warning about broken libxml versions (#909) (David)
CHG: Update timezone database to 2008h (#896) (David)
FIX: logging.xml and output_types.xml handlers have variable name escaping problems (#921) (David)
FIX: AgaviXmlConfigParser::transformProcessingInstructions() is broken completely (#918) (David)
FIX: Wrong urls when passing host and port to WebRouting::gen() (#902) (Felix)
FIX: build.xml is missing reset of code templates dir to default before copying dist.htaccess (#914) (David)
FIX: Filename patterns are escaped incorrectly in config_handlers.xml (#913) (Noah)
FIX: Build system fails to find or generate default action (#899) (Noah)
FIX: Config handlers definition loading sequence may cause exceptions with debug mode off (#905) (Dominik)
FIX: Less aggressive inclusion of per module config handlers, they are only loaded at first module initialization (#906) (Felix)
FIX: Regression: xml:base attributes left behind by XIncludes cause config validations to fail (#895) (Noah)
FIX: Regression: nested XIncludes cause segfaults in PHP 5.2.5 and lower (#894) (Noah)
FIX: Build system output is unreadable in Windows PowerShell (#891) (Noah)
FIX: AgaviSoapResponse::searchSoapHeader() compares namespaces incorrectly (#892) (David)
FIX: Calling AgaviValidationReport::getSucceededArguments() on virgin report object causes "Invalid argument supplied for foreach()" warning (#890) (David)
1.0.0 beta5 (October 20, 2008)
------------------------------
ADD: Allow for a fallback directory for template resolution in the project configuration system (#876) (Noah)
FIX: Validator config handler might produce undefined variable notices and subsequent errors with nested validators (#888) (David)
FIX: AgaviDatabase::getName() always returns false (#887) (David)
FIX: Validation config handler is broken for nested validators (#886) (David)
1.0.0 beta4 (October 19, 2008)
------------------------------
ADD: Add support for new validation configs to build system and introduce best practices (#882) (David)
ADD: Allow specifying of doctrine template implementations (#864) (David, TANAKA Koichi)
CHG: Clean up the Phing components of the project configuration system (#875) (Noah)
CHG: Change Form Population Filter to use validation system's ability to more accurately handle different sources of input (#786) (David)
CHG: Validation system needs to be able to tell two fields of same names, but from different sources, apart (#785) (Dominik)
CHG: Update logging.xml in Sample app and code templates and add "log" dir to Sample app (#879) (David)
CHG: Change singular/plural handling in AgaviXmlConfigDomElement convenience methods (#878) (David)
FIX: Build system output is unreadable in Terminal.app on Mac OS X Leopard (#885) (David)
FIX: Project configuration system depends on Phing >= 2.3.0, but should depend on >= 2.3.1 (#884) (Noah)
FIX: Build system does not create app/log folder in new projects (#881) (David, Noah)
FIX: Parameters are not merged in config_handlers.xml (#880) (David)
FIX: XInclude failure leads to corrupt exception error message (#877) (David)
FIX: Configuration files with old-style handlers are never validated (#870) (David)
FIX: Default autoload.xml is missing AgaviMysqliDatabase entry (#868) (David)
FIX: Per-module config_handlers.xml will cause "unsupported operand types" fatal error with debug mode off (#867) (David)
FIX: SOAP and XMLRPC test scripts in sample app are broken (#866) (David)
FIX: AgaviXmlConfigDomElement::hasChild() does not pass on $namespaceUri argument (#865) (David)
FIX: Certain validator names will cause a fatal error (#863) (David)
1.0.0 beta3 (September 21, 2008)
--------------------------------
ADD: Build system support for per-module config_handlers.xml (#855) (Noah)
ADD: Build system support for models in subdirectories (#851) (Noah)
ADD: Support for cache group callbacks (#854) (David)
ADD: Allow runtime configuration of Smarty via parameters in AgaviSmartyRenderer (#846) (David, TANAKA Koichi)
ADD: AgaviTidyFilter (#845) (David)
ADD: Allow convenience array index access in AgaviAttributeHolder (#843) (David)
ADD: Caching group element with array value support (#809) (David)
ADD: Allow customization of the way Actions, Views etc. are laid out in the filesystem (#668) (David)
ADD: AgaviXmlConfigDomElement::hasAgaviParameters() (#841) (David)
CHG: Update zoneinfo database to 2008f (#860) (David)
CHG: Improve sample app SearchEngineSpamAction to use ID and optionally name (#859) (David)
CHG: Factor out creation of frequently used classes from factories.xml to separate method (#857) (David)
CHG: Update ISO Schematron to latest release (#844) (Noah)
CHG: AgaviSmartyRenderer should not set a Smarty plugins dir (#848) (David)
CHG: Redesign module.xml completely to allow arbitrary settings (#834) (David)
FIX: Sample app SearchEngineSpamAction works with invalid product names (#861) (David)
FIX: Regression in AgaviXmlConfigDomElement::getAgaviParameters() (#856) (Noah)
FIX: XML namespace declarations are not carried over when transforming or merging configs (#853) (David)
FIX: AgaviXmlConfigParser does not copy <configurations> attributes when merging Agavi config files (#852) (David)
FIX: RELAX NG list definitions for "context" and "environment" attributes of <configuration> element allow only one value (#850) (David)
FIX: AgaviXmlrpcepiphpResponse::setHttpStatusCode() is not implemented but gets called in sample app Error404SuccessView (#849) (David)
FIX: System actions' templates are always copied to the first module (#805) (Noah)
FIX: Empty redirect in response may cause uninitialized string offset notice (#847) (David)
FIX: AgaviParameterHolder::removeParameter() does not try literal key lookup first (#842) (David)
FIX: module.xml must not be per-context (#839) (David)
FIX: AgaviXmlConfigDomElement::getIterator() uses incorrect XPath expressions (#840) (David)
FIX: AgaviXmlConfigXsltProcessor::transformToDoc() does not throw exceptions on runtime warnings (#837) (David)
FIX: AgaviXmlConfigXsltProcessor::transformToDoc() does not check parent return value (#836) (David)
FIX: Undefined variable notice when file for requested action does not exist (#835) (Felix)
1.0.0 beta2 (August 31, 2008)
-----------------------------
ADD: Add config option to run arbitrary SQL commands after connecting to a database (#646) (David)
ADD: Allow per-module config_handlers.xml (#826) (Felix)
ADD: Allow action-style subdirectory dot notation for models (#631) (Felix)
ADD: Allow ignoring of (X)HTML parse errors in FPF (#613) (David)
ADD: Allow skipping of template auto-assigns (#605) (David)
ADD: Set current Context instance on Doctrine connections (#800, #808) (David)
CHG: Sanity checks in AgaviExecutionContainer::set*Name() need refactoring (#780) (Felix)
CHG: Throw out legacy naming schemes support and support autoloading of Actions, Views and Models (#829) (Felix)
CHG: Add module initialization method and use it where appropriate (#825) (Felix)
CHG: Do not remove module autoload definitions after action execution (#824) (Felix)
CHG: Refactor AgaviExecutionContainer::execute, AgaviController::dispatch and AgaviSecurityFilter::dispatch to have forwards in separate methods (#827) (Felix)
CHG: Improve AgaviInflector performance (#823) (Thomas Bachem, David)
CHG: Change the Pricefinder Model in the Sample App to have a more useful name (#819) (Felix)
CHG: Make AgaviContext implementation configurable (#815) (David)
CHG: Enhance HTTP status code validation for AgaviWebResponse::setRedirect() (#804) (David)
FIX: AgaviEqualsValidator's docs do not match the actual validation process (#833) (Dominik)
FIX: Invalid argument name in AgaviValidationManager::hasError() (#832) (David)
FIX: Phing 2.2.0 is a dependency, but 2.3.0 is required for new build system (#828) (David)
FIX: The gettext translator doesn't interpret the plural forms like the original gettext implementation (#821) (Dominik)
FIX: AgaviView::initialize() incorrectly assigns container's response to a property (#813) (David)
FIX: Some config handlers use PHP-5.3-reserved-word "NAMESPACE" as constant (#810) (David, Benjamin Börngen-Schmidt)
FIX: src/config/xsl/routing.xsl is missing (#811) (David)
1.0.0 beta1 (August 10, 2008)
-----------------------------
ADD: Implement Schematron support (#761) (David, Noah)
ADD: XSL Transformations done by XML Config Parser should have some information available in template parameters (#710) (David, Noah)
ADD: Add extension points to XML schema definitions where feasible (#515) (David, Noah)
ADD: Update SOAP support to make use of functionality introduced in #710 (#795) (David)
ADD: Allow additional types for second argument of AgaviLoggerManager::log() (#634) (David)
ADD: AgaviMysqliDatabase (#601) (Blake Matheny, David)
CHG: Move XML validation to RelaxNG and Schematron (#462) (Noah, David)
CHG: Change configuration system to support only XML (#519) (David, Noah)
CHG: Change default for assigning of "inner" content to $slots template array to disabled (#794) (David)
CHG: Rewrite the project build system and throw out the old one (#689) (Noah)
CHG: Refactor internal "system action" handling and fowarding (#769) (David)
CHG: Bump minimum required PHP version to 5.2.0 (#738) (David)
CHG: Remove direct association of validator instances and request methods (#767) (David)
CHG: Make request method per-container (#667) (David)
CHG: Deprecate core.use_routing in favor of a routing config parameter (#683) (David)
CHG: Moved AgaviWebRequest::getSourceValue() to AgaviRequest (#686) (David)
CHG: Deprecated AgaviSecureWebRequest (#676) (David)
CHG: Deprecated AgaviAdodbDatabase (#662) (David)
FIX: Security filters cannot perform checks in addition to isSecure() (#671) (David)