Author: ihabunek
Date: Fri May 20 11:44:34 2011
New Revision: 1125335

URL: http://svn.apache.org/viewvc?rev=1125335&view=rev
Log:
LOG4PHP-122: RendererMap::getByClassName doesn't recognize instances of child 
classes

Modified:
    logging/log4php/trunk/src/changes/changes.xml
    logging/log4php/trunk/src/main/php/renderers/LoggerRendererMap.php
    logging/log4php/trunk/src/test/php/renderers/LoggerRendererMapTest.php

Modified: logging/log4php/trunk/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/changes/changes.xml?rev=1125335&r1=1125334&r2=1125335&view=diff
==============================================================================
--- logging/log4php/trunk/src/changes/changes.xml (original)
+++ logging/log4php/trunk/src/changes/changes.xml Fri May 20 11:44:34 2011
@@ -24,6 +24,7 @@
   </properties>
   <body>
        <release version="2.1" description="Stabilizing">
+               <action type="fix" issue="LOG4PHP-122" by="Moritz 
Schmidt">RendererMap::getByClassName doesnt recognize instances of child 
classes</action>
                <action type="fix" issue="LOG4PHP-123" by="Moritz Schmidt, Ivan 
Habunek">LoggerConfiguratorPhp does not parse renderer configuration</action>
                <action type="fix" issue="LOG4PHP-110" by="Vladimir Gorej, Ivan 
Habunek">Adapted MongoDB appender to better fit in log4php codebase.</action>
                <action type="fix" issue="LOG4PHP-126" by="Peter Chapman, 
Christian Grobmeier">LoggerConfiguratorPhp does not appear to respect appender 
file property from config</action>

Modified: logging/log4php/trunk/src/main/php/renderers/LoggerRendererMap.php
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/main/php/renderers/LoggerRendererMap.php?rev=1125335&r1=1125334&r2=1125335&view=diff
==============================================================================
--- logging/log4php/trunk/src/main/php/renderers/LoggerRendererMap.php 
(original)
+++ logging/log4php/trunk/src/main/php/renderers/LoggerRendererMap.php Fri May 
20 11:44:34 2011
@@ -126,7 +126,8 @@ class LoggerRendererMap {
         */
        public function getByClassName($class) {
                $r = null;
-               for($c = strtolower($class); !empty($c); $c = 
get_parent_class($c)) {
+               for($c = $class; !empty($c); $c = get_parent_class($c)) {
+                       $c = strtolower($c);
                        if(isset($this->map[$c])) {
                                return $this->map[$c];
                        }

Modified: logging/log4php/trunk/src/test/php/renderers/LoggerRendererMapTest.php
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/renderers/LoggerRendererMapTest.php?rev=1125335&r1=1125334&r2=1125335&view=diff
==============================================================================
--- logging/log4php/trunk/src/test/php/renderers/LoggerRendererMapTest.php 
(original)
+++ logging/log4php/trunk/src/test/php/renderers/LoggerRendererMapTest.php Fri 
May 20 11:44:34 2011
@@ -22,12 +22,16 @@
  * @version    SVN: $Id$
  * @link       http://logging.apache.org/log4php
  */
+
 class Fruit3 {
     public $test1 = 'test1';
     public $test2 = 'test2';
     public $test3 = 'test3';
 }
 
+class Fruit3Descendant extends Fruit3 {
+}
+
 class FruitRenderer3 implements LoggerRendererObject {
     public function render($o) {
                return $o->test1.','.$o->test2.','.$o->test3;
@@ -47,6 +51,17 @@ class LoggerRendererMapTest extends PHPU
                self::assertEquals('test1,test2,test3', $e);
        }
         
+       public function testFindAndRenderDescendants() {
+               $fruit = new Fruit3Descendant();
+               Logger::configure(dirname(__FILE__).'/test4.properties');
+               Logger::initialize();
+               $hierarchy = Logger::getHierarchy();
+
+               $map = $hierarchy->getRendererMap();
+               $e = $map->findAndRender($fruit);
+               self::assertEquals('test1,test2,test3', $e);
+       }
+
        public function testGetByObject() {
                $fruit = new Fruit3();
                Logger::configure(dirname(__FILE__).'/test4.properties');


Reply via email to