root/tags/0.11.1RC3/CHANGELOG

Revision 2461, 42.1 KB (checked in by david, 8 months ago)

0.11.1 RC3 version info

  • Property svn:keywords set to Id
Line 
1AGAVI CHANGELOG
2===============
3
40.11.1 RC3 (May 2, 2008)
5------------------------
6
7ADD: Add ability to cache complete request attribute namespaces in Execution Filter (#740) (David)
8
9CHG: Non-Agavi exceptions should be clearly marked as such (#749) (David)
10CHG: Change execution filter to run action again if action is cached, but output type of the view isn't (#742) (David)
11CHG: Update timezone database to 2008b (#728) (David)
12
13FIX: Arrays exported by a validator do not survive validation cleanup (#756) (Dominik)
14FIX: AgaviArrayPathDefinition::getFlatKeyNames() returns nonsense if the prefix is "0" or an empty string (#757) (Dominik)
15FIX: Request is not properly unlocked if an exception occurs (#753) (David)
16FIX: logging.xml in code templates does not work out of the box (#750) (David)
17FIX: Actions that return no View are never cached (#746) (David)
18FIX: AgaviDateFormatter::translate() might kill DateTime's DateTimeZone object (#743) (David)
19FIX: Reusable renderers do not work (#741) (David)
20FIX: AgaviInflector::singularize returns the wrong singular form of "caches" (#739) (Dominik)
21
22
230.11.1 RC2 (March 22, 2008)
24---------------------------
25
26CHG: Make AgaviView::createForwardContainer() forward arguments from the current container if no arguments given (#707) (David)
27CHG: AgaviView::create*Container() should use null as default for arguments (#735) (David)
28CHG: Routing, GettextTranslator etc should use AgaviToolkit::expandVariables (#708) (David)
29CHG: Speed up unique ID generation (#731) (David)
30CHG: Bring sample app and code templates up to date (#719) (David)
31CHG: Update timezone database to 2008a (#727) (David)
32CHG: List of matches for a route should be populated by the time onMatched() is called on a callback (#730) (David)
33CHG: Check for existing X-Powered-By header before setting it in WebResponse (#716) (David)
34CHG: Execution Filter should read action attributes for caching from Action, not Container (#706) (David)
35CHG: Cache write order in execution filter should be reversed (#703) (David)
36CHG: AgaviExecutionFilter::writeCache() could use third argument with lifetime (#702) (David)
37CHG: AgaviExecutionContainer::createExecutionContainer() should copy over container parameters (#699) (David)
38CHG: Improve the speed of array key lookups (#693) (Noah)
39CHG: Change *val() functions to proper typecasts (#697) (Noah)
40CHG: dist.htaccess in code templates should have RewriteEngine On (#678) (David)
41CHG: Bumped and fixed copyright years (#664) (David)
42CHG: Update timezone database to 2007k (#660) (David)
43
44FIX: Given arguments object is not cloned for Container execution if Action is "simple" (#736) (David)
45FIX: Form Population Filter handles boolean false values incorrectly (#737) (David)
46FIX: Percent signs are incorrectly escaped in AgaviRouting::parseDynamicSet() (#733) (David)
47FIX: routing.xsd does not allow dynamic expressions in output_type attribute (#734) (David)
48FIX: AgaviToolkit::expandVariables replacing is too greedy (#732) (David)
49FIX: AgaviPhpRenderer::$moreAssigns is not declared or initialized (#729) (David)
50FIX: AgaviWebRequest cannot map arbitrary HTTP verbs (#725) (David)
51FIX: AgaviWebRequest does not write all changed factory parameters back (#724) (David)
52FIX: Charset in Content-Type http-equiv meta tag might be parsed incorrectly (#722) (David)
53FIX: Generating the current route without additional arguments results in unescaped single quotes and square brackets, potentially incorrectly replaced argument separator (#718) (David)
54FIX: Generating the current route with additional or changed arguments allows code injections (#717) (David)
55FIX: Unsetting a user parameter that in a routing callback's onGenerate() was passed to gen() produces strange behavior (#714) (David)
56FIX: Setting a user parameter that was undefined in a routing callback's onGenerate() has no effect if a default is defined (#713) (David)
57FIX: Form Population trips over entities in error messages when inserting them into the document (#715) (David)
58FIX: Routing config handler cannot handle parameter arrays (#712) (David)
59FIX: XML config parser only applies the xsl stylesheet defined in the first processing instruction (#711) (David)
60FIX: Execution Filter does not restore cached action attributes on cache hit (#705) (David)
61FIX: caching.xsd has incorrect rules for <action_attribute> elements (#704) (David)
62FIX: View cache validity check does not use lifetime, might cause usage of stale data (#701) (David)
63FIX: Container info is not retained on internal forward due to disabled module (#700) (David)
64FIX: Incoming routing parameters can possibly overwrite routing parameters set in a callback (#698) (Dominik)
65FIX: AgaviReturnArrayConfigHandler creates an numerical indexed array of elements if child and parent have the same names (#694) (Dominik)
66FIX: AgaviConfig does not handle empty strings properly (#692) (Noah, David)
67FIX: onGenerate() method in callback is not run for routes with a source (#695) (David)
68FIX: Values in long request arrays are not decoded with magic_quotes_gpc on (#684) (David)
69FIX: WebRouting does not clean up in long request arrays (#685) (David)
70FIX: WebRouting does not clean up in $_REQUEST (#681) (David)
71FIX: $HTTP_RAW_POST_DATA is not removed on request startup (#679) (David)
72FIX: Copies of $_SERVER values in $_ENV are not cleaned (#674) (David)
73FIX: Request data is not cleaned for variables affected by register_argc_argv or register_long_arrays (#673) (David)
74FIX: AgaviWebRequest::startup() does not call parent startup() (#677) (David)
75FIX: AgaviCreoleDatabase does not support various Creole driver settings (#672) (David)
76
77
780.11.1 RC1 (December 26, 2007)
79------------------------------
80
81ADD: Creole session storage supports configurable date formatting (#639) (David)
82
83CHG: Session storages should reveal server error message in exceptions (#645) (David)
84CHG: Update timezone database to 2007j (#642) (David)
85CHG: Always send HTTP/1.0 responses in shiny exception template (#620) (David)
86CHG: Perform special multislash cleanup for all Apache 2.x versions (#619) (David)
87
88FIX: Content-Length header is sent regardless of "send_content_length" setting when a redirect is performed in a WebResponse (#659) (David)
89FIX: Validator names cause parse errors if they don't meet PHP label requirements (#658) (David)
90FIX: Agavi:boostrap() without arguments ignores writeable core.environment setting (#657) (David)
91FIX: PDOSessionStorage is unlikely to work properly in case of exceptions (#644) (David)
92FIX: PHP 5.2.5's completely ruined glob() can lead to unhappy foreach loops (#649) (David)
93FIX: RotatingLoggerAppender should complain about a rotation cycle smaller than 1 (#654) (David)
94FIX: validators.xsd is missing the "source" attribute in validators (#653) (Dominik)
95FIX: FPF's CDATA fix for <style> and <script> tags corrupts one-liners in HTML parsing mode (#652) (David)
96FIX: Code to remove potential duplicate xmlns attributes in FPF's HTML parsing mode does not work with certain libxml versions (#650) (David)
97FIX: libxml bug may lead to "attribute redefined" errors in FPF in HTML parsing mode (#651) (David)
98FIX: Undefined variable notice in AgaviValidationManager::hasIncidents() (#640) (David)
99FIX: Creole and PDO session storage incorrectly force garbage collection on session open (#638) (David)
100FIX: AgaviMysqlSessionStorage uses mysql_escape_string() instead of mysql_real_escape_string() (#637) (David)
101FIX: Database session storage implementations have incorrect read/write behavior (#636) (David)
102FIX: Some database session storages do not work with non-integer date() results. (#635) (David)
103FIX: Global request data is serialized in execution containers (#633) (David)
104FIX: Forwarding does not honor output types properly (#629) (David)
105FIX: Global request data is not locked during rendering of templates (#628) (David)
106FIX: Nested XIncludes cause segfault due to PHP bug (#621) (David)
107FIX: AgaviToolkit::mkdir might throw errors on concurrent directory creation (#615) (Dominik)
108FIX: WebRouting::gen() encodes additional parameters twice (#622) (David)
109FIX: Trailing ampersands and other special cases might still confuse the routing under some circumstances (#618) (David)
110
111
1120.11.0 (November 3, 2007)
113-------------------------
114
115ADD: Allow simpler format definitions in DateTime validator (#596) (David)
116
117CHG: Update timezone database to 2007i (#610) (Dominik)
118
119FIX: Adapt olson timezone generation task to agavi changes (#611) (Dominik)
120FIX: Optional route params are generated incorrectly under certain circumstances (#609) (Dominik)
121FIX: Incorrect handling of HTTP/1.0 requests (#604) (David)
122FIX: Caching leaves room for potential race condition (#608) (David)
123FIX: AgaviFormPopulationFilter calls fromUtf8 without $this-> (#606) (Veikko)
124FIX: Template layers do not expand empty parameters in formatting strings (#603) (David)
125FIX: Routing callbacks cannot set additional arguments that are not in the pattern (e.g. extra query args) (#602) (David)
126FIX: Strict standards violation in AgaviPdoSessionStorage (#600) (Veikko)
127FIX: Routing gets confused by a trailing ampersand in the query string under some circumstances (#599) (David)
128
129
1300.11.0 RC7 (October 23, 2007)
131-----------------------------
132
133ADD: Default extension of renderers can now be configured directly via "default_extension" parameter (#594) (David)
134ADD: Exception templates show current date and time (#595) (David)
135ADD: Pass on "is_slot" flag in View::createForwardContainer() (#591) (David)
136
137CHG: Use gmdate() in config handlers to prevent strict notices about timezone settings (#590) (David)
138
139FIX: View::appendLayer() and View::prependLayer() break when given a second argument (#593) (David)
140FIX: core.skip_config_validation logic is inverted (#592) (David)
141
142
1430.11.0 RC6 (October 12, 2007)
144-----------------------------
145
146ADD: Allow setting of the affected arguments in a validator via throwError() (#568) (Dominik)
147ADD: __sleep() and __wakeup() magic methods for AgaviModel to prevent Context serialization (#581) (David)
148ADD: Ability to insert error messages into forms automatically using FormPopulationFilter (#303) (David, Ross Lawley)
149ADD: AgaviWebResponse::unsetCookie() (#577) (David, Ross Lawley)
150ADD: AgaviDoctrineDatabase (#381) (David, Ross Lawley)
151ADD: Support for error class name maps in FormPopulationFilter (#575) (David)
152ADD: AgaviDatabase::startup() (#573) (David)
153ADD: AgaviDatabase::getName() (#572) (David)
154ADD: Cache group sources "request_data" and "global_request_data" (#571) (David)
155ADD: Make format used to insert dates and times configurable in database session storage adapters (#569) (David)
156ADD: Allow overriding of specific Propel runtime config directives via databases.xml (#567) (David)
157ADD: Added force_request_uri and force_request_url config options to FPF ([2066]) (David)
158ADD: Allow true as value for "org.agavi.filter.FormPopulationFilter"/"populate" to force use of global request data (#556) (David)
159ADD: Accept date/time strings as message for date formatter (#555) (David)
160ADD: AgaviEzctemplateRenderer (#326) (Felix Weis, David)
161ADD: Allow disabling of XML config validation (#552) (David)
162ADD: Allow logging of FormPopulationFilter parse errors (#543) (David)
163ADD: Add Agavi information to X-Powered-By header (#542) (David)
164ADD: Add LoggerManager::getDefaultMessageClass() (#539) (David)
165ADD: Support for SOAP faults (#532) (David, Noah Fontes)
166ADD: Support for SOAP response headers (#531) (David)
167ADD: Allow relative paths to xsd files in XML Schema Instance *schemaLocation attributes (#530) (David)
168
169CHG: Introduce new severity "info" and map now deprecated "none" to "silent" (#585) (Dominik)
170CHG: Validators with same names, but for different request methods, overwrite each other properly now (#582) (Dominik)
171CHG: Drastically improved performance and memory consumption of AgaviToolkit::expandDirectives() and AgaviToolkit::expandVariables() ([2092], [2093], [2127]) (David)
172CHG: Make Agavi ready for PHP6 (#563) (Noah Fontes, David)
173CHG: Make viewInstance available in the execution container (#557) (David, Ross Lawley)
174CHG: Made AgaviRenderer an AgaviParameterHolder (#553) (David)
175CHG: Removed bash dependency from agavi build script (#546) (David, simoncpu)
176CHG: Change agavi.release directive to use a slash instead of a space as the name/version delimiter (#541) (David)
177CHG: Bumped minimum required PHP version to 5.1.3 (#456) (David)
178
179FIX: Unvalidated arguments are left behind by non-required validators if those have multiple arguments and did not run (#578) (Dominik)
180FIX: AgaviToolkit::clearCache() throws errors if path doesn't exist (#584) (Dominik)
181FIX: Routing callbacks cannot set optional parameters (#579) (David, Dominik)
182FIX: Request should be locked in View's constructor and initialize() methods (#544) (David)
183FIX: Error control operator in AgaviToolkit::mkdir() might be problematic (#576) (Dominik)
184FIX: Default database exists twice in the databases array, thus is shutdown twice (#574) (David)
185FIX: Agavi validation manager is missing the declaration of $incidents (#566) (Dominik)
186FIX: FilterChain resets run count for each registered filter; thus executeOnce() does not work as intended (#565) (David)
187FIX: User-agent check in shiny exception template can throw errors (#564) (Noah Fontes)
188FIX: WebRouting::gen() ignores 'separator' option when generating existing routes (#545) (David)
189FIX: <route action=".Something" /> confuses template location code (#540) (David)
190FIX: AgaviPropelDatabase returns null in getConnection when used with Propel 1.2 (#538) (Dominik)
191FIX: "shiny" exception template may generate invalid markup if HTML is at first line of code snippet (#537) (David)
192FIX: AgaviToolkit::expandVariables() skips null arguments (#536) (David)
193FIX: AgaviParameterHolder::hasParameter() etc return false for keys that have a null value (#535) (David)
194FIX: AgaviExecutionFilter::clearCache doesn't clear the content cache properly (#534) (Veikko)
195FIX: Output messages with multiple parts break SOAP completely (#533) (David)
196FIX: Missing param declaration in wsdl.xsl might lead to corrupt response message blocks in generated WSDL (#529) (David)
197
198
1990.11.0 RC5 (June 18, 2007)
200--------------------------
201
202ADD: Add extension points to XML Schema definitions where feasible (#515) (David)
203ADD: Support for XML Schema instance schema location declarations (#517) (David)
204ADD: AgaviNullStorage (#523) (David)
205ADD: Experimental(!) support for native XML config handlers, base work for XML-only configuration system (#519) (David)
206ADD: Support for XSL stylesheets in configuration files (#509) (David)
207ADD: Support for XML namespaces in configuration files (#508) (David)
208ADD: SOAP Support (#301) with automatic WSDL generation (#514) (David)
209ADD: Interface for AgaviLogger (#507) (David)
210ADD: Allow routing callbacks to unset parameters by setting them to null (#505) (Dominik)
211ADD: Set "exception" in "org.agavi.controller.forwards.error_404" (#496) (David)
212ADD: Allow setting response content by returning data from View::execute*() (#503) (David)
213ADD: Support for configuration directives in href attributes of XInclude <include> elements (#488) (David)
214ADD: DateTime cast support for AgaviDateValidator (#475) (Dominik)
215ADD: Support for magic_quotes_gpc, including proper handling of indices in and outside of arrays as well as $_FILES
216ADD: Method to convert AgaviCalendar objects into native PHP DateTime objects ([1836]) (Dominik)
217ADD: Support for UTF-8 in StringValidator via parameter 'utf8', default on ([1820]) (David)
218ADD: Ability to prevent sending of the response in Controller::dispatch(), which now always returns the final (not global!) response (#469) (David)
219ADD: Made default layer class configurable via 'default_layer_class' config parameter for AgaviOutputTypeConfigHandler ([1800]) (David)
220
221CHG: Deprecate AgaviConfigHandler::literalize() and AgaviConfigHandler::replaceConstants() (#526) (David)
222CHG: Improvements for FPF's charset detection, now uses output type's http_headers Content-Type value if possible ([1982]) (David)
223CHG: Updated zoneinfo database to 2007f (#524) (David)
224CHG: Ability to get empty data instead of exceptions when accessing locked request data (#512) (David)
225CHG: Display full list of complete paths of templates tried when displaying "template not found" exception (#497) (David)
226CHG: Support for empty language blocks in SimpleTranslator (#483) (Dominik)
227CHG: Support for empty translation domain in SimpleTranslator (#482) (Dominik)
228CHG: Update timezone database to 2007c release ([1873]) (Dominik)
229CHG: More features and improved consistency for AgaviReturnArrayConfigHandler (#463) (David)
230CHG: Deprecate request attribute "matchedRoutes" in "org.agavi.routing" in favor of "matched_routes" (#465) (David)
231
232FIX: Resolved most double-slash issues under Apache 2.2 (#502) (David)
233FIX: XMLRPC Request and Response cause strict warnings, fatals, notices (#528) (David)
234FIX: Agavi's autoloader fails if Agavi has not been bootstrapped yet (#521) (David)
235FIX: Fixes for AgaviEmailValidator (#486) (Dominik)
236FIX: Correct standalone declarations for all XML configs (#518) (David)
237FIX: "agavi project" does not create stub translation.xml (#516) (David)
238FIX: Character escape sequences in CLDR data are not evaluated (#478) (Dominik)
239FIX: AgaviInarrayValidator throws missing argument error (#506) (Dominik)
240FIX: Quoted parts in date patterns might result in incorrect output (#513) (Dominik)
241FIX: Form Population Filter does not recognize action URLs with fragment identifier (#510) (David)
242FIX: AgaviUploadedFile notice in destructor due to ArrayObject bug (#511) (David, Ross Lawley)
243FIX: PUT file uploads might leave stale temporary file behind (#479) (David)
244FIX: Incorrect Content-Length header might delay HTTP "Locaation:" redirects (#504) (David)
245FIX: Prevent parse_url issues in request URIs that contain "://" (#494) (David)
246FIX: Corrected caching behavior in case neither <layer> nor <layers> elements are present in the config (#501) (David)
247FIX: Enabled attribute in caching configuration has no effect (#500) (David)
248FIX: Check for existance of default database connection to prevent potential error (#485) (David)
249FIX: User credentials routing source broken (#493) (Dominik)
250FIX: Broken AgaviInarrayValidator (#490) (Felix Gilcher, Dominik)
251FIX: Workaround for missing "file" stream proto in default Suhosin configurations (#484) (David)
252FIX: <parameter> nodes with numeric names (#481) (Dominik)
253FIX: AgaviCalendar::getNativeDateTime() has one month offset (#474) (Dominik)
254FIX: Fix date parsing for 1-12 hour formats (#472) (Dominik)
255FIX: Typos and too greedy exception catching in some validators ([1829], [1831]) (David, Dominik)
256FIX: Workaround for broken stream_get_wrappers() in Debian and Gentoo (and probably others) in latest PHP packages for versions < 5.2.1 thanks to, did I mention it yet, clueless Linux package maintainers who constantly manage to ruin their very uncool, very wrongly patched PHP versions ([1824]) (David)
257FIX: Suppress warning in AgaviImageFileValidator when a valid file, but no image is uploaded (#471) (David)
258FIX: Don't use unicode character properties in regular expressions, thanks to all the clueless Linux package maintainers who disable those even though they're on as default (just like they do it with DOM and other default stuff) ([1809], [1810]) (David)
259FIX: Make the pear package task create .keep files in empty dirs ([1807]) (David)
260FIX: When using 0 as default value for an optional parameter gen() could skip the parameter (#464) (Dominik)
261
262
2630.11.0 RC4 (February 25, 2007)
264------------------------------
265
266ADD: Throw exceptions in case PCRE operations fail (like with corrupt UTF-8 input) in FormPopulationFilter (#461) (David, Veikko)
267
268FIX: XML-RPC support broken completely (#459) (David)
269FIX: Handling of multiple <configuration> blocks is broken in FactoryConfigHandler (#458) (David)
270FIX: ExecutionFilter throws notice/warning while trying to determine slot cacheability status (#457) (David)
271FIX: Using date translator with a custom format doesn't work (#455, #460) (Dominik, David)
272
273
2740.11.0 RC3 (February 22, 2007)
275------------------------------
276
277ADD: Allow specifying per-locale formats for formatters as children to the parameter node (#453) (David)
278ADD: Allow non-absolute URLs for WebResponse redirects (#449) (David)
279ADD: AgaviRequest::isLocked() ([1728]) (David)
280ADD: Make AgaviRequestDataHolder classes configurable (#438) (David)
281ADD: Allow retrieval of the translators/formatters for a defined domain (#417) (Dominik)
282ADD: Routing generation options presets (#432) (David)
283ADD: Support for X-Sendfile family of headers in AgaviWebResponse (#431) (David)
284ADD: AgaviRbacUser::grantRoles (#430) (David)
285ADD: Translation for error messages in sample app (#416) (David)
286ADD: Use base path from routing if null path given to AgaviWebResponse::setCookie, assume same base path for session cookies (#425) (David)
287ADD: strtotime strings support for AgaviWebResponse::setCookie and session cookie lifetime (#423) (David)
288ADD: AgaviOutputType::getDefaultLayoutName() ([1689]) (David)
289ADD: Allow PHP 5.2 DateTime objects to be used with _d() (#420) (Dominik)
290ADD: AgaviDateFormatter::getFormat ([1683]) (Dominik)
291ADD: Add isContentMutable method to response and check where applicable (#414) (David)
292
293CHG: Made "class" attribute for <layer> elements optional in output_types.xml (#454) (David)
294CHG: Routing: use matched incoming parameters for same route generation on a hierarchial basis (#444) (Dominik)
295CHG: Update timezone database to 2007b release (#443) (Dominik)
296CHG: Translation Manager should call localeChanged on message translators (#447) (Dominik)
297CHG: Cleaned up config handlers ([1737]) (David)
298CHG: Fix $_FILES array only if no AgaviUploadedFile is in the request data ([1736]) (David)
299CHG: Don't hardcode AgaviUploadedFile class name and make that non-final ([1735]) (David)
300CHG: Update Unicode CLDR Data to release 1.4.1 (#442) (Dominik)
301CHG: Deprecated Request::getModuleAccessor() and Request::getActionAccessor() ([1720]) (David)
302CHG: Move pre- and postfix modification from defaultParams to userParams argument in RoutingCallback::onGenerate (#436) (Dominik)
303CHG: Allow returning of true or false from RoutingCallback::onGenerate() (#435) (Dominik)
304CHG: startup() methods for all core classes, shuffled initialization order (#433) (David)
305CHG: Store salted hash for autologon password in sample app, clean up sample app user implementation to serve as a better example (#429) (David)
306CHG: Make AgaviLocale a ParameterHolder, clean up Translation Manager method names, add caching of locale instances, add default locale getters (#426) (David)
307CHG: Removed 'Index' action auto-resolving from AgaviController::resolveAction (#424) (David)
308CHG: Allow nested <translator> tags (#422) (Dominik)
309CHG: auto assign 'validation_manager' in templates ([1691]) (David)
310CHG: Allow extra domain info to be passed to formatters (#419) (Dominik)
311
312FIX: Operator validators don't work with required=false (#451) (Dominik)
313FIX: Better handling of i18n off in NumberValidator and DateValidator [1753] (Dominik)
314FIX: Small bug in SimpleTranslator (#446) (Dominik)
315FIX: Some OperatorValidators are broken (#445) (Ross Lawley, David)
316FIX: Issue where request data "garbage" from a rewrite wouldn't be removed in routing initialize ([1732]) (David)
317FIX: Storage must check if the routing it is grabbing a "better" base path from for the session cookie is a WebRouting instance ([1730]) (David)
318FIX: AgaviWebserviceRouting method signature ([1729]) (Dominik)
319FIX: Possible exception in shiny.php exception template while request is locked ([1728]) (David)
320FIX: The currency formatter doesn't use the fraction information from the CLDR data (#439) (Dominik)
321FIX: When you manually set the currency symbol not the literal symbol should be used but the iso currency code (#440) (Dominik)
322FIX: Using currency formatters with a custom format doesn't work (#441) (Dominik)
323FIX: 0 as default value for routes skipped in route generation (#437) (David)
324FIX: Do not override default values using matched incoming parameters when generating the same route unless the route is implied (#434) (Dominik)
325FIX: Routing->gen() could possibly not remove unused parameters from the url when an url depends on multiple routes (#428) (Dominik)
326FIX: addIncident not using the validator of the incident for submitting field results ([1685]) (Dominik)
327FIX: In Sample App: Call to undefined method setError() (#415) (Veikko, codecop)
328
329
3300.11.0 RC2 (February 7, 2007)
331-----------------------------
332
333ADD: Add convenience container creation methods to view (#410) (David)
334ADD: Allow streams as response content (#408) (David)
335ADD: Add support for lightweight actions (#407) (David)
336ADD: Allow <sandbox> element inside <configurations> to make xincludes easier (#404) (David, Dominik)
337ADD: Allow AgaviLoggerManager::log() to accept strings for convenience (#401) (David)
338ADD: added isnotempty validator which provides what the issetvalidator has been in earlier versions (#359) (Dominik)
339ADD: Allow modification of options in callbacks for gen() (#395) (David)
340ADD: Support for HTTP PUT file Uploading (#393) (David, Ross Lawley)
341ADD: Allow the validation to validate different kinds of sources (request parameters, cookies, http headers, files) (#367) (Dominik)
342ADD: Allow multiple <settings> blocks with alternative prefix in settings.xml (#375) (Dominik)
343ADD: Add wildcard support to "environment" and "context" attributes (#374) (David)
344ADD: Add a TimestampLoggerLayout (#372) (David)
345ADD: Improve some aspects of file handling (#369) (David)
346ADD: Allow square bracket syntax when retrieving cookies. (#368) (David)
347ADD: Re-Introduce per-Output-Type exception templates (#357) (David)
348ADD: Allow only setting the locale options in the translation methods (#62) (Dominik)
349ADD: Add ability to include proto, host, port and hash in WebRouting::gen() (#358) (David)
350ADD: Add option to GettextTranslator that writes all translation calls to a PHP file (#356) (David)
351ADD: The translation formatters can have their format strings translated now (#62) (Dominik)
352ADD: Allow validation error messages to be translated (#62) (Dominik)
353ADD: Added an simple translator which stores translations directly in the translation configuration file. (#62) (Dominik)
354ADD: Filter possibilities for translators and formatters (#62) (David)
355ADD: Ability to parsing string numbers into php native numbers (int/float) (#62) (Dominik)
356ADD: Ability to parse a date from a string with a custom defined format (#62) (Dominik)
357ADD: Methods to retrieve locale timezone information (#62) (Dominik)
358ADD: Allow setting of connection options or attributes in the pdo database handler (David, Dominik)
359ADD: Add a CachingExecutionFilter (#78) (david)
360
361CHG: Ignore "Content-Type" parameter in output types and use values in generic "http_headers" parameter instead (#413) (David)
362CHG: Move error information into containers (#406) (David)
363CHG: Make validators use the same initialition strategy as the rest of the framework (#403) (Dominik)
364CHG: Dropped XslRenderer (#400) (Noah Fontes)
365CHG: Move AgaviUser initialization location and add a startup() method (#398) (David)
366CHG: Use libxml error handling for XML parsing and FPF (#396) (David)
367CHG: Remove 0.9.0 backwards compatibility in PropelDatabase (#392) (David)
368CHG: Make uploaded file handling really painless (#391) (David)
369CHG: Introduce RequestDataHolder (#389) (David, Dominik)
370CHG: Make sources for server name etc configurable in WebRequest (#388) (David)
371CHG: Renamed date validator to datetime validator (#385) (Dominik)
372CHG: Renamed AgaviValidatorManager in AgaviValidationManager (#384) (Dominik)
373CHG: Get rid of rendering filters (#377) (David)
374CHG: Remodel execution flow (#373) (David)
375CHG: Allow setting max forwards of the controller to '0' (#373) (David)
376CHG: Fix some of the borderline inoperable ugliness of the validation system (#367) (Dominik)
377CHG: Remove validatormanager argument from Action::registerValidators() (#360) (Dominik)
378CHG: Improve validators (#359) (Dominik)
379CHG: Renamed 'type' attribute for translators and formatters to 'class' (#62) (David)
380CHG: Allow pluralized parent tags to be omitted in most places in the configuration files. (Dominik)
381
382FIX: Orphan trailing & in URLs messes up routing base href detection when rewritten (#409) (David)
383FIX: Error information is lost as soon as slots are run (#405) (David)
384FIX: AgaviUploadedFile::move() creates world writeable files and directories by default (#402) (David)
385FIX: AgaviDecimalFormatter strips sign of number to format (#399) (Dominik)
386FIX: AgaviPdoSessionStorage corrupts session's data if it includes special characters (#397) (Veikko)
387FIX: Add compile.xml contents to autoload.xml (#390) (Veikko)
388FIX: AgaviCompileConfigHandler::formatFile doesn't handle files with special characters (#394) (Veikko)
389FIX: URLs relative to the base href are not matched by the form population filter (#387) (David)
390FIX: Base Href and Base Url not available from WebRouting with routing disabled (#386) (David)
391FIX: Exception is raised when no logger called "default" is configured (#371) (David)
392FIX: Fix validators not inheriting the severity of their parent (#269) (Dominik)
393FIX: Same logging appenders are shut down multiple times if used by multiple loggers (#366) (David)
394FIX: WebRouting::gen() does not accept arrays as query string arguments (#365) (David)
395FIX: Argument skipping by supplying null yields a question mark at the end of the URL (#364) (David)
396FIX: The h and k hour pattern are wrongly implemented in date formatting (#363) (Dominik)
397FIX: A validator using the argument base fails for multiple arguments the last error will overwrite all previous ones (#362) (Dominik)
398FIX: Setting the base for arguments in file validators doesn't work (#361) (Dominik)
399FIX: Routing w/o rewrite borked when path contains a space character (#355) (David)
400FIX: Fixes to the date formatter (#62) (Dominik)
401FIX: Fixed Form Population Filter for radiobuttons, fields containing [] (#327) (David)
402
403
4040.11.0 RC1 (November 13, 2006)
405------------------------------
406
407ADD: Add a PdoSessionStorage (#354) (Dominik)
408ADD: Allow the default logger to have a different name then default (#351) (Dominik)
409ADD: Make app dir name and template extension configurable for agavi cmdline script (#348) (Veikko)
410ADD: Add Controller, Request, Response and Routing for handling RESTful requests (#332) (David)
411ADD: Add RBAC User implementation (#320) (David)
412ADD: Allow passing of additional request params to slots (#318) (David)
413ADD: Add methods to retrieve View name and View's module name from ActionStackEntry (#317) (David)
414ADD: Add support for PHP 5.2 httpOnly cookie flag (#314) (David)
415ADD: Make creation of "run once" action and rendering filters easier (#307) (David)
416ADD: Add Controller, Request, Response and Routing for handling XMLRPC requests (#302) (David)
417ADD: Add a RotatingFileAppender (#294) (Veikko)
418ADD: Add an option that stores slots in a separate variable (#282) (David)
419ADD: Add support for IndexAction auto-discovery in sub-actions (#279) (David)
420ADD: WebRequest is missing hasCookie() method (#257) (David)
421ADD: Add a Response class (#187) (David)
422ADD: Make as many configuration files optional as possible (#165) (David)
423ADD: CompileConfigHandler needs optional "debug" mode (#147) (David)
424ADD: Add support for Output Types (#141) (David)
425ADD: Implement support for system configuration files (#130) (Dominik, David)
426ADD: Add getAttributes() method to User (#114) (David)
427ADD: Add namespaces support to Request attributes (#104) (David)
428ADD: Add Storage::startup() (#101) (Veikko, David)
429ADD: Add a PHPTALView (#98) (David)
430ADD: agavi project should create default error actions and set the correct modules in settings.xml (#89) (Veikko)
431ADD: Add option for persistent connections in PDODatabase class (#87) (David)
432ADD: Form validation and re-population filter (#79, #284, #327) (David)
433ADD: Introduce build.properties (#77) (David)
434ADD: Pluggable LoggerManager and ValidatorManager (#76) (David)
435ADD: Allow per-context/per-environment configurations (#72) (David, Dominik)
436ADD: Implement support for per-module autoload.xml (#71) (David)
437ADD: Write tests for new features, more tests for everything, PHPUnit2(+3?) (#65) (Dominik, David)
438ADD: i18n & l10n (#62, #335) (Dominik, David)
439ADD: Routes / Paths / Trails / Yipee more elegant/flexible URL handling (#52, #247, #280) (David, Dominik, Veikko)
440ADD: Module Based Custom Build Templates (#42) (Benjamin Muskalla, David)
441
442CHG: Bump minimum required PHP version to 5.1 (#329) (David)
443CHG: Consider renaming logging classes (#323) (Veikko)
444CHG: Ditch View::executeContextname() support and add executeOutputtypename() support instead (#321) (David)
445CHG: Add "literal" argument to View::set(Decorator)Template() (#315) (David)
446CHG: Throw out Request::extractParameters() (#309) (David)
447CHG: Change the way forwards are done by users (#306) (David)
448CHG: Change ActionStackEntry to use a float for the microtime (#300) (David)
449CHG: Move autoloading to a separate method and use either __autoload() or spl_autoload_register() (#299) (David)
450CHG: Rename "webapp" and "www" folders to something more generic (#298) (David)
451CHG: Loggin priority constants should be powers of two and logging priority should be defined as a bitmask (#296) (Veikko)
452CHG: Pass cleaned and validated request parameters to Action::execute() (#281) (David)
453CHG: Rewrite Validators (#75, #91, #102, #269, #276) (Uwe Mesecke, Dominik)
454CHG: Move global models dir to webapp/models (#267) (David)
455CHG: Rename BasicSecurityUser and BasicSecurityFilter (#256) (David)
456CHG: Make SecurityFilter an interface (#255) (David)
457CHG: SecurityUser should be an interface (#253) (David)
458CHG: Move shutdown procedure to Context (#182) (David)
459CHG: Harmonize template variable names, add name and extracting support to all Renderers (#180) (David)
460CHG: Rename AgaviHTTPSRequest to AgaviSecureWebRequest (#166) (David)
461CHG: Cleanup redundant files (#162) (David)
462CHG: Repeatedly used classes lack parameter support (#160) (David)
463CHG: Database Connections must be unique per Context (#159) (David)
464CHG: Standardize initialize() methods (#157) (David)
465CHG: clean up new Foo() vs Foo::newInstance($blah) mess (#156) (David)
466CHG: Clean up Context and Controller (#155) (David)
467CHG: Settle on an approach for handling Filter instances (#154) (David)
468CHG: Rewrite Model support (#153) (David)
469CHG: Rename (Action|User)::(get|has)Credential to (Action|User)::(get|has)Credentials (#152) (David)
470CHG: Remove Controller::inCLI() (#151) (David)
471CHG: Throw out ShutdownListeners (#149) (David)
472CHG: Abstract Request Methods and make their handling in Actions more intuitive (#148) (David)
473CHG: Improve exception output (#95, #146) (David)
474CHG: Standardize Controller::dispatch() signature and drop Front/Page Web Controllers (#143) (David)
475CHG: Rework Filter support (#142, #254) (David)
476CHG: Make all classes properly CamelCased (#140) (David)
477CHG: Decouple rendering from Views (#139, #179) (David)
478CHG: PHPDoc comments are here and there poorly formated (#137) (Veikko)
479CHG: Introduce a "registry" class to get rid of all those constants (#129) (David)
480CHG: Add support for environments and change the job of contexts (#128) (David)
481CHG: restructure config handling (#70, #124, #125, #271, #292, #322) (David, Dominik)
482CHG: Change bookstrapping method (#122) (David)
483CHG: Switch to PHPUnit2 (#121) (Dominik)
484CHG: Change default attribute namespaces so they use dots instead of slashes (#115) (David)
485CHG: Change Request::getAttribute() argument order to be consistent with User's (#113) (David)
486CHG: Consider moving attributes/namespaces functionality into a separate class (#111) (David)
487CHG: Add "agavi" package phpdoc comments to all files in src/buildtools/ (#108) (David)
488CHG: Make private class members protected where feasible (#107) (Veikko)
489CHG: webapp/cache folder should use subdirs (#106) (David)
490CHG: Move setCookie from WebRequest to WebController and add setContentType() and setHeader() methods (#103) (David)
491CHG: Support Creole's (and thus Propel's) trimming / case sensitivity change (#88) (David)
492CHG: Remove AgaviObject (#85) (David)
493CHG: Remove FormPHPView (#84) (David)
494CHG: Remove ConversionPattern (#83) (David)
495CHG: Remove MailAppender (#82) (David)
496CHG: Check if we can allow switching contexts at runtime (#74) (David)
497CHG: Rename all classes to have an "Agavi" prefix (#41) (Dominik)
498CHG: Make the framework E_STRICT compliant and remove all those "&"s (#34) (David)
499
500FIX: use of unititalized variable in AgaviWebRequest::getFileError() (#305) (David)
501FIX: Logging layouts need context and they need to be initialized even if there are no parameters (#297) (Veikko)
502FIX: Appender needs context and needs to be initialized even if there are no parameters (#295) (Veikko)
503FIX: Controller::getView() should throw an Exception if View is ultimately not found  closed (#268) (David)
504FIX: User must be available even with security disabled (#261) (David)
505FIX: Controller::getAction() should throw an Exception if Action is ultimately not found (#252) (David)
506FIX: Return subaction view with array syntax (#176) (David)
507FIX: Database instances need to know their DatabaseManager (#158) (David)
508FIX: What the hell is session_write_close() doing in Controller::shutdown() (#150) (David)
509FIX: CompileConfigHandler is too greedy (#127) (Blake Matheny)
510FIX: SmartyView::setAttributesByRef is broken (#126) (Veikko)
511FIX: creole session storage is missing a throw in sessionwrite (#120) (Dominik)
512FIX: Request::removeError shouldn't return by reference (#110) (David)
513FIX: Some @since comments say "2.0.0" (#109) (David)
514FIX: DatabaseManager doesn't know the context (#100) (David)
515FIX: Template collisions with SmartyView (#97) (David)
516FIX: The SmartyView should include Smarty.class.php in a more "correct" way. (#92) (Veikko)
517FIX: agavi script doens't work on Solaris (#90) (David)
518FIX: Some tests will not work on windows (#64) (David)
519FIX: Building many modules/actions etc. will make agavi run out of memory (#35) (David)
520
521
5220.10.2 (February 27, 2006)
523--------------------------
524
525CHG: Changed to new PEAR package task, package.xml v2 format, using PEAR channel pear.agavi.org (David)
526CHG: Declared API stability alpha (David)
527FIX: Fixed PHP 5.0.5 / 5.1 return by reference problem in logging/PassthruLayout (Markus Lervik, David)
528FIX: Fixed incorrect Phing dependendy (David)
529
530
5310.10.1 (January 6, 2006)
532------------------------
533
534FIX: Fixed critical bug that prevented parameters to be passed in config_handlers.ini
535
536
5370.10.0 (December 20, 2005)
538--------------------------
539
540CHG: Updated TODO
541CHG: Bumped Version Numbers
542FIX: ReturnArrayConfigHandler did not convert foo.bar.baz keys into multi-dimensional arrays
543FIX: RELEASE_NOTES and INSTALL were missing in AgaviPackageTask
544
545
5460.10.0 RC1 (December 16, 2005)
547------------------------------
548
549ADD: ShutdownListener support (Veikko)
550ADD: Cookie support for WebRequest (Veikko)
551ADD: Session Cookie parameter support (Veikko)
552ADD: CreoleSessionStorage (Veikko)
553ADD: HTTPSRequest (Markus Lervik, David)
554ADD: XSLView (Wes Hays)
555ADD: AdoDBDatabase (Steven Weiss, David)
556ADD: Sub-actions support for "agavi" helper script (David)
557ADD: code_templates have Template templates (David)
558ADD: Multiple credentials support (David)
559ADD: Support for setting session ID in SessionStorage (Mike)
560ADD: Constants support for config files (Bob, Johan)
561ADD: Logging functionality (Bob)
562ADD: WEBAPP_NAME setting in settings.ini (Mike)
563ADD: Request::getAttributes() (Bob)
564ADD: Auto-detection of modules for "agavi" helper script when executed inside or below a module's dir.
565ADD: ReturnArrayConfigHandler (David, Mike)
566ADD: Support for custom ExecutionFilters (David)
567ADD: Support for Singleton Models (David)
568ADD: FormPHPView (xardion)
569ADD: ValidatorManager, DateValidator (Graeme Foster, Mike)
570ADD: Test directory structure and stubs are auto-created when using the "agavi" helper script to add stuff.
571ADD: Advanced Propel integration via PropelAutoload, PropelDatabase still backwards compatible to old method (David)
572ADD: appendAttribute() methods for Request, User and View (Bob)
573CHG: Unified parameter names for database users to "username" everywhere (Veikko, David)
574CHG: Beefed up NumberValidator with min/max and integer support (Veikko)
575CHG: All AG_* configuration directives except AG_WEBAPP_DIR are optional (David)
576CHG: AG_WEBAPP_DIR and AG_APP_DIR will be auto-determined if possible (David)
577CHG: Action and View class names can now also be like Module_Some_Sub_MarineAction (and also Some_Sub_MarineAction)
578CHG: Config Handlers will throw UnreadableExceptions when appropriate (David)
579CHG: Added some helper methods and changed visibility of some methods in Views to allow for more control in ExecutionFilters (David)
580CHG: SmartyView uses the SMARTY_CACHE_DIR setting if set, AG_CACHE_DIR otherwise.
581CHG: Realigns configuration away from configuring controllers to configuring contexts (Mike)
582CHG: autoload.ini handling changed to support include_path (Bob)
583CHG: Autoload support for Controller::getGlobalModel() (Mike)
584CHG: Refactored helper script (Mike)
585CHG: Reworked Test infrastructure (Mike)
586CHG: Improved, changed and refactored many, many tests and the intrastructure for tests; "agavi test" runs tests (Mike)
587FIX: PHP 5.1 compatibility for ConfigCache::getCacheName() (Markus Lervik, David)
588FIX: Re-wrote broken directory and module recognition routines in AgaviFixPathsTask, fixed "agavi model" to work correctly (David, Miroslaw Wrobel)
589FIX: __autoload() won't throw exceptions anymore (Veikko)
590FIX: Plain text formating for AgaviException::printStackTrace (Veikko)
591FIX: Autostart sessions only after all initializations have finished (Veikko)
592FIX: Action::validate() to be called even when a ini validation criteria failed (David, Steven Weiss)
593FIX: Support for username and password in PDODatabase (David, Benjamin Muskalla)
594FIX: PHP 5.1.0 Compatibility for PDODatabase (David)
595FIX: Strict comparison for credentials (David)
596FIX: Avoid notices in ValidatorManager (Bob)
597FIX: Request::extractParameters() returns null for non-existent parameters (Mike)
598FIX: Set a default if calling agavi action from inside a module's dir or subdirs (Mike)
599FIX: Windows support for helper script (David)
600FIX: Use proper type "::" or "->" in stack trace (David)
601
602
6030.9.0 (June 8, 2005)
604--------------------
605
606- Initial Release
Note: See TracBrowser for help on using the browser.