r500767 | eross | 2007-01-28 03:43:30 -0600 (Sun, 28 Jan 2007) | 2 lines

Bug 25106 - Support XInclude in XML configuration scripts
Use reflection to attempt to call SAXParserFactory#setXIncludeAware (true)

Index: src/java/org/apache/log4j/joran/JoranConfigurator.java
===================================================================
18a19
> import org.apache.log4j.Logger;
55a57
> import java.lang.reflect.Method;
129a132,145
>   private void setXIncludeAware(SAXParserFactory factory) {
>     try {
>       Class sig[] = new Class[] { boolean.class };
> Method m = factory.getClass().getMethod("setXIncludeAware", sig);
>       m.invoke(factory, new Object[] { Boolean.TRUE });
>     } catch (Exception e) {
>       getLogger().debug("setXIncludeAware not supported");
>     }
>   }
>
>   private Logger getLogger() {
>     return getLogger(repository);
>   }
>
142a159
>         setXIncludeAware(spf);
146c163
<       getLogger(repository).error(errMsg, pce);
---
>       getLogger().error(errMsg, pce);
157c174
<       getLogger(repository).error(errMsg, ie);
---
>       getLogger().error(errMsg, ie);
161c178
<       getLogger(repository).error(errMsg, ex);
---
>       getLogger().error(errMsg, ex);
174c191
<       getLogger(repository).debug("Finished parsing.");
---
>       getLogger().debug("Finished parsing.");
Index: src/java/org/apache/log4j/joran/action/LoggerAction.java
===================================================================
102a103
>       if (resourceBundle != null) {
106a108
>       }
Index: tests/input/xml/xinclude2.xml
===================================================================
0a1,3
> <logger name='foo'>
>    <level value='INFO'/>
> </logger>
Index: tests/input/xml/xinclude.xml
===================================================================
0a1,12
> <?xml version="1.0" encoding="UTF-8" ?>
> <!DOCTYPE log4j:configuration>
>
> <log4j:configuration xmlns:log4j='http://logging.apache.org/' debug='true' reset='true' xmlns:xi="http://www.w3.org/2001/XInclude";>
>
>   <xi:include href="xinclude2.xml"/>
>
>   <root>
>     <level value="ALL" />
>   </root>
>
> </log4j:configuration>
\ No newline at end of file
Index: tests/input/joran/resourceBundle.xml
===================================================================
0a1,21
> <?xml version="1.0" encoding="UTF-8" ?>
> <!DOCTYPE log4j:configuration>
>
> <log4j:configuration xmlns:log4j='http://logging.apache.org/' debug='true'>
>
>   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
>     <layout class="org.apache.log4j.PatternLayout">
> <param name="ConversionPattern" value="%5sn %d %level [%t] % c - %m%n"/>
>     </layout>
>   </appender>
>
>   <logger name="foo" resourceBundle="L7D"/>
>
>   <logger name="bar" resourceBundle="NOT_HERE"/>
>
>   <root>
>     <level value="DEBUG" />
>     <appender-ref ref="CONSOLE" />
>   </root>
>
> </log4j:configuration>
Index: tests/src/java/org/apache/log4j/joran/JoranConfiguratorTest.java
===================================================================
71c71
< jc.doConfigure("tests/input/joran/simple2.xml", LogManager.getLoggerRepository());
---
> jc.doConfigure("./input/joran/simple2.xml", LogManager.getLoggerRepository());
85a86,93
>   public void testXInclude() {
> jc.doConfigure("./input/xml/xinclude.xml", LogManager.getLoggerRepository());
>     jc.dumpErrors();
>     Logger l = Logger.getLogger("foo");
>     assertEquals(Level.INFO, l.getLevel());
>     System.out.println(jc.getExecutionContext().getErrorList());
>   }
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to