root/tags/0.11.1/CHANGELOG

Revision 2470, 42.2 kB (checked in by david, 3 months ago)

0.11.1 version info

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