Author: carnold
Date: Mon Mar 6 22:51:03 2006
New Revision: 383802
URL: http://svn.apache.org/viewcvs?rev=383802&view=rev
Log:
Bug LOGCXX-35: Migrate from msxml/libxml2 to apr_xml_parse
Removed:
logging/log4cxx/trunk/include/log4cxx/helpers/gnomexml.h
logging/log4cxx/trunk/include/log4cxx/helpers/msxml.h
logging/log4cxx/trunk/src/gnomexml.cpp
logging/log4cxx/trunk/src/msxml.cpp
Modified:
logging/log4cxx/trunk/examples/delayedloop.cpp
logging/log4cxx/trunk/include/log4cxx/helpers/charsetdecoder.h
logging/log4cxx/trunk/include/log4cxx/xml/domconfigurator.h
logging/log4cxx/trunk/simplesocketserver/simplesocketserver.cpp
logging/log4cxx/trunk/src/Makefile.am
logging/log4cxx/trunk/src/charsetdecoder.cpp
logging/log4cxx/trunk/src/domconfigurator.cpp
logging/log4cxx/trunk/src/optionconverter.cpp
logging/log4cxx/trunk/tests/src/customlogger/xloggertestcase.cpp
logging/log4cxx/trunk/tests/src/defaultinit/testcase2.cpp
logging/log4cxx/trunk/tests/src/defaultinit/testcase4.cpp
logging/log4cxx/trunk/tests/src/main.cpp
logging/log4cxx/trunk/tests/src/varia/errorhandlertestcase.cpp
logging/log4cxx/trunk/tests/src/xml/customleveltestcase.cpp
logging/log4cxx/trunk/tests/src/xml/domtestcase.cpp
Modified: logging/log4cxx/trunk/examples/delayedloop.cpp
URL:
http://svn.apache.org/viewcvs/logging/log4cxx/trunk/examples/delayedloop.cpp?rev=383802&r1=383801&r2=383802&view=diff
==============================================================================
--- logging/log4cxx/trunk/examples/delayedloop.cpp (original)
+++ logging/log4cxx/trunk/examples/delayedloop.cpp Mon Mar 6 22:51:03 2006
@@ -61,14 +61,12 @@
static void init(const std::string& configFile)
{
-#ifdef LOG4CXX_HAVE_XML
if(configFile.length() > 4 &&
configFile.substr(configFile.length() - 4) == ".xml")
{
xml::DOMConfigurator::configureAndWatch(configFile,
3000);
}
else
-#endif
{
PropertyConfigurator::configureAndWatch(configFile,
3000);
}
Modified: logging/log4cxx/trunk/include/log4cxx/helpers/charsetdecoder.h
URL:
http://svn.apache.org/viewcvs/logging/log4cxx/trunk/include/log4cxx/helpers/charsetdecoder.h?rev=383802&r1=383801&r2=383802&view=diff
==============================================================================
--- logging/log4cxx/trunk/include/log4cxx/helpers/charsetdecoder.h (original)
+++ logging/log4cxx/trunk/include/log4cxx/helpers/charsetdecoder.h Mon Mar 6
22:51:03 2006
@@ -60,6 +60,10 @@
*/
static CharsetDecoderPtr getWideDecoder();
#endif
+ /**
+ * Get decoder for UTF-8.
+ */
+ static CharsetDecoderPtr getUTF8Decoder();
/**
* Decodes as many bytes as possible from the given
Modified: logging/log4cxx/trunk/include/log4cxx/xml/domconfigurator.h
URL:
http://svn.apache.org/viewcvs/logging/log4cxx/trunk/include/log4cxx/xml/domconfigurator.h?rev=383802&r1=383801&r2=383802&view=diff
==============================================================================
--- logging/log4cxx/trunk/include/log4cxx/xml/domconfigurator.h (original)
+++ logging/log4cxx/trunk/include/log4cxx/xml/domconfigurator.h Mon Mar 6
22:51:03 2006
@@ -27,6 +27,9 @@
#include <log4cxx/helpers/properties.h>
#include <log4cxx/spi/configurator.h>
+struct apr_xml_doc;
+struct apr_xml_elem;
+
namespace log4cxx
{
class File;
@@ -46,14 +49,6 @@
typedef helpers::ObjectPtrT<OptionHandler> OptionHandlerPtr;
}
- namespace helpers
- {
- class XMLDOMDocument;
- typedef helpers::ObjectPtrT<XMLDOMDocument> XMLDOMDocumentPtr;
-
- class XMLDOMElement;
- typedef helpers::ObjectPtrT<XMLDOMElement> XMLDOMElementPtr;
- }
namespace config
{
@@ -73,15 +68,6 @@
namespace xml
{
- class AppenderMap
- {
- public:
- AppenderPtr get(const LogString& appenderName);
- void put(const LogString& appenderName, AppenderPtr
appender);
-
- protected:
- std::map<LogString, AppenderPtr> map;
- };
/**
Use this class to initialize the log4cxx environment using a DOM
tree.
@@ -103,77 +89,93 @@
virtual public helpers::ObjectImpl
{
protected:
+ typedef std::map<LogString, AppenderPtr> AppenderMap;
/**
Used internally to parse appenders by IDREF name.
*/
- AppenderPtr
findAppenderByName(helpers::XMLDOMDocumentPtr doc,
- const LogString& appenderName);
+ AppenderPtr findAppenderByName(apr_xml_elem* elem,
+ const LogString& appenderName,
+ AppenderMap& appenders);
/**
Used internally to parse appenders by IDREF element.
*/
AppenderPtr findAppenderByReference(
- helpers::XMLDOMElementPtr appenderRef);
+ apr_xml_elem* appenderRef,
+ apr_xml_doc* doc,
+ AppenderMap& appenders);
/**
Used internally to parse an appender element.
*/
- AppenderPtr parseAppender(helpers::XMLDOMElementPtr
appenderElement);
+ AppenderPtr parseAppender(apr_xml_elem*
appenderElement,
+ apr_xml_doc* doc,
+ AppenderMap& appenders);
/**
Used internally to parse an [EMAIL PROTECTED]
spi::ErrorHandler ErrorHandler } element.
*/
- void parseErrorHandler(helpers::XMLDOMElementPtr
element, AppenderPtr appender);
+ void parseErrorHandler(apr_xml_elem*,
+ AppenderPtr& appender,
+ apr_xml_doc* doc,
+ AppenderMap& appenders);
/**
Used internally to parse a filter element.
*/
- void parseFilters(helpers::XMLDOMElementPtr element,
+ void parseFilters(apr_xml_elem* element,
std::vector<log4cxx::spi::FilterPtr>& filters);
/**
Used internally to parse a logger element.
*/
- void parseLogger(helpers::XMLDOMElementPtr
loggerElement);
+ void parseLogger(apr_xml_elem* loggerElement,
+ apr_xml_doc* doc,
+ AppenderMap& appenders);
/**
Used internally to parse the logger factory element.
*/
- void parseLoggerFactory(helpers::XMLDOMElementPtr
factoryElement);
+ void parseLoggerFactory(apr_xml_elem* factoryElement);
/**
Used internally to parse the logger factory element.
*/
- log4cxx::rolling::TriggeringPolicyPtr
parseTriggeringPolicy(helpers::XMLDOMElementPtr factoryElement);
+ log4cxx::rolling::TriggeringPolicyPtr
parseTriggeringPolicy(
+ apr_xml_elem* factoryElement);
/**
Used internally to parse the logger factory element.
*/
- log4cxx::rolling::RollingPolicyPtr
parseRollingPolicy(helpers::XMLDOMElementPtr factoryElement);
+ log4cxx::rolling::RollingPolicyPtr parseRollingPolicy(
+ apr_xml_elem* factoryElement);
/**
Used internally to parse the roor category element.
*/
- void parseRoot(helpers::XMLDOMElementPtr rootElement);
+ void parseRoot(apr_xml_elem* rootElement, apr_xml_doc*
doc, AppenderMap& appenders);
/**
Used internally to parse the children of a category
element.
*/
- void
parseChildrenOfLoggerElement(helpers::XMLDOMElementPtr catElement,
- LoggerPtr logger, bool isRoot);
+ void parseChildrenOfLoggerElement(
+ apr_xml_elem* catElement,
+ LoggerPtr logger, bool isRoot,
+ apr_xml_doc* doc,
+ AppenderMap& appenders);
/**
Used internally to parse a layout element.
*/
- LayoutPtr parseLayout(helpers::XMLDOMElementPtr
layout_element);
+ LayoutPtr parseLayout(apr_xml_elem* layout_element);
/**
Used internally to parse a level element.
*/
- void parseLevel(helpers::XMLDOMElementPtr element,
+ void parseLevel(apr_xml_elem* element,
LoggerPtr logger, bool isRoot);
- void setParameter(helpers::XMLDOMElementPtr elem,
+ void setParameter(apr_xml_elem* elem,
config::PropertySetter& propSetter);
/**
@@ -182,7 +184,9 @@
href="docs/log4j.dtd">log4j.dtd</a>.
*/
- void parse(helpers::XMLDOMElementPtr element);
+ void parse(apr_xml_elem* element,
+ apr_xml_doc* doc,
+ AppenderMap& appenders);
public:
DOMConfigurator();
@@ -240,11 +244,11 @@
spi::LoggerRepositoryPtr& repository);
protected:
+ static LogString getAttribute(apr_xml_elem*,
+ const std::string& attrName);
LogString DOMConfigurator::subst(const LogString&
value);
protected:
- void * appenderBag;
-
helpers::Properties props;
spi::LoggerRepositoryPtr repository;
spi::LoggerFactoryPtr loggerFactory;
@@ -253,6 +257,7 @@
// prevent assignment or copy statements
DOMConfigurator(const DOMConfigurator&);
DOMConfigurator& operator=(const DOMConfigurator&);
+
};
} // namespace xml
} // namespace log4cxx
Modified: logging/log4cxx/trunk/simplesocketserver/simplesocketserver.cpp
URL:
http://svn.apache.org/viewcvs/logging/log4cxx/trunk/simplesocketserver/simplesocketserver.cpp?rev=383802&r1=383801&r2=383802&view=diff
==============================================================================
--- logging/log4cxx/trunk/simplesocketserver/simplesocketserver.cpp (original)
+++ logging/log4cxx/trunk/simplesocketserver/simplesocketserver.cpp Mon Mar 6
22:51:03 2006
@@ -34,9 +34,7 @@
#include <log4cxx/stream.h>
using namespace log4cxx;
-#ifdef LOG4CXX_HAVE_XML
using namespace log4cxx::xml;
-#endif
using namespace log4cxx::net;
using namespace log4cxx::helpers;
@@ -52,7 +50,6 @@
{
port = atol(portStr.c_str());
-#ifdef LOG4CXX_HAVE_XML
// tests if configFile ends with ".xml"
if (configFile.length() > 4 &&
configFile.substr(configFile.length() -4) == ".xml")
@@ -60,7 +57,6 @@
DOMConfigurator::configure(configFile);
}
else
-#endif
{
PropertyConfigurator::configure(configFile);
}
Modified: logging/log4cxx/trunk/src/Makefile.am
URL:
http://svn.apache.org/viewcvs/logging/log4cxx/trunk/src/Makefile.am?rev=383802&r1=383801&r2=383802&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/Makefile.am (original)
+++ logging/log4cxx/trunk/src/Makefile.am Mon Mar 6 22:51:03 2006
@@ -45,7 +45,6 @@
fixedwindowrollingpolicy.cpp \
formattinginfo.cpp \
fulllocationpatternconverter.cpp \
- gnomexml.cpp \
hierarchy.cpp \
htmllayout.cpp \
inetaddress.cpp \
@@ -73,7 +72,6 @@
messagepatternconverter.cpp \
methodlocationpatternconverter.cpp \
mdc.cpp \
- msxml.cpp \
mutex.cpp \
nameabbreviator.cpp \
namepatternconverter.cpp \
Modified: logging/log4cxx/trunk/src/charsetdecoder.cpp
URL:
http://svn.apache.org/viewcvs/logging/log4cxx/trunk/src/charsetdecoder.cpp?rev=383802&r1=383801&r2=383802&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/charsetdecoder.cpp (original)
+++ logging/log4cxx/trunk/src/charsetdecoder.cpp Mon Mar 6 22:51:03 2006
@@ -444,6 +444,19 @@
return decoder;
}
+CharsetDecoderPtr CharsetDecoder::getUTF8Decoder() {
+ static CharsetDecoderPtr decoder(new UTF8CharsetDecoder());
+ //
+ // if invoked after static variable destruction
+ // (if logging is called in the destructor of a static object)
+ // then create a new decoder.
+ //
+ if (decoder == 0) {
+ return new UTF8CharsetDecoder();
+ }
+ return decoder;
+}
+
#if LOG4CXX_HAS_WCHAR_T
CharsetDecoder* CharsetDecoder::createWideDecoder() {
#if LOG4CXX_LOGCHAR_IS_WCHAR
Modified: logging/log4cxx/trunk/src/domconfigurator.cpp
URL:
http://svn.apache.org/viewcvs/logging/log4cxx/trunk/src/domconfigurator.cpp?rev=383802&r1=383801&r2=383802&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/domconfigurator.cpp (original)
+++ logging/log4cxx/trunk/src/domconfigurator.cpp Mon Mar 6 22:51:03 2006
@@ -15,14 +15,6 @@
*/
#include <log4cxx/private/log4cxx_private.h>
-#ifdef LOG4CXX_HAVE_XML
-
-#if defined(_WIN32)
-#include <windows.h>
-#include <log4cxx/helpers/msxml.h>
-#else
-#include <log4cxx/helpers/gnomexml.h>
-#endif
#include <log4cxx/xml/domconfigurator.h>
@@ -49,6 +41,9 @@
#include <log4cxx/helpers/transcoder.h>
#include <log4cxx/rolling/rollingfileappender.h>
#include <log4cxx/rolling/filterbasedtriggeringpolicy.h>
+#include <apr_xml.h>
+#include <log4cxx/helpers/bytebuffer.h>
+#include <log4cxx/helpers/charsetdecoder.h>
using namespace log4cxx;
using namespace log4cxx::xml;
@@ -57,6 +52,7 @@
using namespace log4cxx::config;
using namespace log4cxx::rolling;
+
class XMLWatchdog : public FileWatchdog
{
public:
@@ -75,125 +71,111 @@
}
};
-AppenderPtr AppenderMap::get(const LogString& appenderName)
-{
- AppenderPtr appender;
- std::map<LogString, AppenderPtr>::iterator it;
- it = map.find(appenderName);
-
- if (it != map.end())
- {
- appender = it->second;
- }
-
- return appender;
-}
-
-void AppenderMap::put(const LogString& appenderName, AppenderPtr appender)
-{
- map.insert(std::map<LogString, AppenderPtr>::value_type(appenderName,
appender));
-}
IMPLEMENT_LOG4CXX_OBJECT(DOMConfigurator)
-#define CONFIGURATION_TAG LOG4CXX_STR("log4j:configuration")
-#define OLD_CONFIGURATION_TAG LOG4CXX_STR("configuration")
-#define APPENDER_TAG LOG4CXX_STR("appender")
-#define APPENDER_REF_TAG LOG4CXX_STR("appender-ref")
-#define PARAM_TAG LOG4CXX_STR("param")
-#define LAYOUT_TAG LOG4CXX_STR("layout")
-#define ROLLING_POLICY_TAG LOG4CXX_STR("rollingPolicy")
-#define TRIGGERING_POLICY_TAG LOG4CXX_STR("triggeringPolicy")
-#define CATEGORY LOG4CXX_STR("category")
-#define LOGGER LOG4CXX_STR("logger")
-#define LOGGER_REF LOG4CXX_STR("logger-ref")
-#define CATEGORY_FACTORY_TAG LOG4CXX_STR("categoryFactory")
-#define NAME_ATTR LOG4CXX_STR("name")
-#define CLASS_ATTR LOG4CXX_STR("class")
-#define VALUE_ATTR LOG4CXX_STR("value")
-#define ROOT_TAG LOG4CXX_STR("root")
-#define ROOT_REF LOG4CXX_STR("root-ref")
-#define LEVEL_TAG LOG4CXX_STR("level")
-#define PRIORITY_TAG LOG4CXX_STR("priority")
-#define FILTER_TAG LOG4CXX_STR("filter")
-#define ERROR_HANDLER_TAG LOG4CXX_STR("errorHandler")
-#define REF_ATTR LOG4CXX_STR("ref")
-#define ADDITIVITY_ATTR LOG4CXX_STR("additivity")
-#define THRESHOLD_ATTR LOG4CXX_STR("threshold")
-#define CONFIG_DEBUG_ATTR LOG4CXX_STR("configDebug")
-#define INTERNAL_DEBUG_ATTR LOG4CXX_STR("debug")
+#define CONFIGURATION_TAG "log4j:configuration"
+#define OLD_CONFIGURATION_TAG "configuration"
+#define APPENDER_TAG "appender"
+#define APPENDER_REF_TAG "appender-ref"
+#define PARAM_TAG "param"
+#define LAYOUT_TAG "layout"
+#define ROLLING_POLICY_TAG "rollingPolicy"
+#define TRIGGERING_POLICY_TAG "triggeringPolicy"
+#define CATEGORY "category"
+#define LOGGER "logger"
+#define LOGGER_REF "logger-ref"
+#define CATEGORY_FACTORY_TAG "categoryFactory"
+#define NAME_ATTR "name"
+#define CLASS_ATTR "class"
+#define VALUE_ATTR "value"
+#define ROOT_TAG "root"
+#define ROOT_REF "root-ref"
+#define LEVEL_TAG "level"
+#define PRIORITY_TAG "priority"
+#define FILTER_TAG "filter"
+#define ERROR_HANDLER_TAG "errorHandler"
+#define REF_ATTR "ref"
+#define ADDITIVITY_ATTR "additivity"
+#define THRESHOLD_ATTR "threshold"
+#define CONFIG_DEBUG_ATTR "configDebug"
+#define INTERNAL_DEBUG_ATTR "debug"
DOMConfigurator::DOMConfigurator()
- : appenderBag(), props(), repository() {
+ : props(), repository() {
}
+
/**
Used internally to parse appenders by IDREF name.
*/
-AppenderPtr DOMConfigurator::findAppenderByName(XMLDOMDocumentPtr doc, const
LogString& appenderName)
-{
- AppenderPtr appender = ((AppenderMap *)appenderBag)->get(appenderName);
-
- if (appender != 0)
- {
- return appender;
+AppenderPtr DOMConfigurator::findAppenderByName(apr_xml_elem* element,
+ const LogString& appenderName,
+ AppenderMap& appenders) {
+ AppenderPtr appender;
+ std::string tagName(element->name);
+ if (tagName == APPENDER_TAG) {
+ if (appenderName == getAttribute(element, NAME_ATTR)) {
+ appender = parseAppender(element, 0, appenders);
+ }
}
- else
- {
- XMLDOMElementPtr element = doc->getElementById(APPENDER_TAG,
appenderName);
-
- if(element == 0)
- {
- LogLog::error(LOG4CXX_STR("No appender named [")+
- appenderName+LOG4CXX_STR("] could be found."));
- return 0;
- }
- else
- {
- appender = parseAppender(element);
- ((AppenderMap *)appenderBag)->put(appenderName,
appender);
- return appender;
- }
+ if (element->first_child && !appender) {
+ appender = findAppenderByName(element->first_child, appenderName,
appenders);
+ }
+ if (element->next && !appender) {
+ appender = findAppenderByName(element->next, appenderName, appenders);
}
+ return appender;
}
/**
Used internally to parse appenders by IDREF element.
*/
-AppenderPtr DOMConfigurator::findAppenderByReference(XMLDOMElementPtr
appenderRef)
+AppenderPtr DOMConfigurator::findAppenderByReference(apr_xml_elem* appenderRef,
+ apr_xml_doc* doc,
+ AppenderMap& appenders)
{
- LogString appenderName = subst(appenderRef->getAttribute(REF_ATTR));
- XMLDOMDocumentPtr doc = appenderRef->getOwnerDocument();
- return findAppenderByName(doc, appenderName);
+ LogString appenderName(subst(getAttribute(appenderRef, REF_ATTR)));
+ AppenderMap::const_iterator match = appenders.find(appenderName);
+ AppenderPtr appender;
+ if (match != appenders.end()) {
+ appender = match->second;
+ } else if (doc) {
+ appender = findAppenderByName(doc->root, appenderName, appenders);
+ if (appender) {
+ appenders.insert(AppenderMap::value_type(appenderName,
appender));
+ }
+ }
+ if (!appender) {
+ LogLog::error(LOG4CXX_STR("No appender named [")+
+ appenderName+LOG4CXX_STR("] could be found."));
+ }
+ return appender;
}
/**
Used internally to parse an appender element.
*/
-AppenderPtr DOMConfigurator::parseAppender(XMLDOMElementPtr appenderElement)
+AppenderPtr DOMConfigurator::parseAppender(apr_xml_elem* appenderElement,
+ apr_xml_doc* doc,
+ AppenderMap& appenders)
{
- LogString className = subst(appenderElement->getAttribute(CLASS_ATTR));
- LogLog::debug(LOG4CXX_STR("Class name: [") +
className+LOG4CXX_STR("]"));
+
+ LogString className(subst(getAttribute(appenderElement, CLASS_ATTR)));
+ LogLog::debug(LOG4CXX_STR("Class name: [") + className+LOG4CXX_STR("]"));
try
{
ObjectPtr instance =
Loader::loadClass(className).newInstance();
AppenderPtr appender = instance;
PropertySetter propSetter(appender);
-
appender->setName(subst(appenderElement->getAttribute(NAME_ATTR)));
+ appender->setName(subst(getAttribute(appenderElement,
NAME_ATTR)));
- XMLDOMNodeListPtr children = appenderElement->getChildNodes();
- int length = children->getLength();
+ for(apr_xml_elem* currentElement =
appenderElement->first_child;
+ currentElement;
+ currentElement = currentElement->next) {
- for (int loop = 0; loop < length; loop++)
- {
- XMLDOMNodePtr currentNode = children->item(loop);
-
- /* We're only interested in Elements */
- if (currentNode->getNodeType() ==
XMLDOMNode::ELEMENT_NODE)
- {
- XMLDOMElementPtr currentElement = currentNode;
- LogString tagName =
currentElement->getTagName();
+ std::string tagName(currentElement->name);
// Parse appender parameters
if (tagName == PARAM_TAG)
@@ -218,7 +200,7 @@
}
else if (tagName == ERROR_HANDLER_TAG)
{
- parseErrorHandler(currentElement,
appender);
+ parseErrorHandler(currentElement,
appender, doc, appenders);
}
else if (tagName == ROLLING_POLICY_TAG)
{
@@ -238,14 +220,14 @@
}
else if (tagName == APPENDER_REF_TAG)
{
- LogString refName =
subst(currentElement->getAttribute(REF_ATTR));
+ LogString refName =
subst(getAttribute(currentElement, REF_ATTR));
if(appender->instanceof(AppenderAttachable::getStaticClass()))
{
AppenderAttachablePtr aa =
appender;
LogLog::debug(LOG4CXX_STR("Attaching appender named [")+
refName+LOG4CXX_STR("]
to appender named [")+
appender->getName()+LOG4CXX_STR("]."));
-
aa->addAppender(findAppenderByReference(currentElement));
+
aa->addAppender(findAppenderByReference(currentElement, doc, appenders));
}
else
{
@@ -254,9 +236,8 @@
LOG4CXX_STR("] which
does not implement AppenderAttachable."));
}
}
- }
}
- Pool p;
+ Pool p;
propSetter.activate(p);
return appender;
}
@@ -273,10 +254,13 @@
/**
Used internally to parse an [EMAIL PROTECTED] ErrorHandler} element.
*/
-void DOMConfigurator::parseErrorHandler(XMLDOMElementPtr element, AppenderPtr
appender)
+void DOMConfigurator::parseErrorHandler(apr_xml_elem* element,
+ AppenderPtr& appender,
+ apr_xml_doc* doc,
+ AppenderMap& appenders)
{
ErrorHandlerPtr eh = OptionConverter::instantiateByClassName(
- subst(element->getAttribute(CLASS_ATTR)),
+ subst(getAttribute(element, CLASS_ATTR)),
ErrorHandler::getStaticClass(),
0);
@@ -285,27 +269,22 @@
eh->setAppender(appender);
PropertySetter propSetter(eh);
- XMLDOMNodeListPtr children = element->getChildNodes();
- int length = children->getLength();
- for (int loop = 0; loop < length; loop++)
- {
- XMLDOMNodePtr currentNode = children->item(loop);
- if (currentNode->getNodeType() ==
XMLDOMNode::ELEMENT_NODE)
- {
- XMLDOMElementPtr currentElement = currentNode;
- LogString tagName =
currentElement->getTagName();
+ for (apr_xml_elem* currentElement = element->first_child;
+ currentElement;
+ currentElement = currentElement->next) {
+ std::string tagName(currentElement->name);
if(tagName == PARAM_TAG)
{
setParameter(currentElement,
propSetter);
}
else if(tagName == APPENDER_REF_TAG)
{
-
eh->setBackupAppender(findAppenderByReference(currentElement));
+
eh->setBackupAppender(findAppenderByReference(currentElement, doc, appenders));
}
else if(tagName == LOGGER_REF)
{
- LogString loggerName =
currentElement->getAttribute(REF_ATTR);
+ LogString
loggerName(getAttribute(currentElement, REF_ATTR));
LoggerPtr logger =
repository->getLogger(loggerName, loggerFactory);
eh->setLogger(logger);
}
@@ -314,7 +293,6 @@
LoggerPtr root =
repository->getRootLogger();
eh->setLogger(root);
}
- }
}
Pool p;
propSetter.activate(p);
@@ -325,30 +303,25 @@
/**
Used internally to parse a filter element.
*/
-void DOMConfigurator::parseFilters(XMLDOMElementPtr element,
std::vector<log4cxx::spi::FilterPtr>& filters)
+void DOMConfigurator::parseFilters(apr_xml_elem* element,
std::vector<log4cxx::spi::FilterPtr>& filters)
{
- LogString clazz = subst(element->getAttribute(CLASS_ATTR));
+ LogString clazz = subst(getAttribute(element, CLASS_ATTR));
FilterPtr filter = OptionConverter::instantiateByClassName(clazz,
Filter::getStaticClass(), 0);
if(filter != 0)
{
PropertySetter propSetter(filter);
- XMLDOMNodeListPtr children = element->getChildNodes();
- int length = children->getLength();
- for (int loop = 0; loop < length; loop++)
+ for (apr_xml_elem* currentElement = element->first_child;
+ currentElement;
+ currentElement = currentElement->next)
{
- XMLDOMNodePtr currentNode = children->item(loop);
- if (currentNode->getNodeType() ==
XMLDOMNode::ELEMENT_NODE)
- {
- XMLDOMElementPtr currentElement = currentNode;
- LogString tagName =
currentElement->getTagName();
+ std::string tagName(currentElement->name);
if(tagName == PARAM_TAG)
{
setParameter(currentElement,
propSetter);
}
- }
}
Pool p;
propSetter.activate(p);
@@ -359,10 +332,12 @@
/**
Used internally to parse an category element.
*/
-void DOMConfigurator::parseLogger(XMLDOMElementPtr loggerElement)
+void DOMConfigurator::parseLogger(apr_xml_elem* loggerElement,
+ apr_xml_doc* doc,
+ AppenderMap& appenders)
{
// Create a new org.apache.log4j.Category object from the <category>
element.
- LogString loggerName = subst(loggerElement->getAttribute(NAME_ATTR));
+ LogString loggerName = subst(getAttribute(loggerElement, NAME_ATTR));
LogLog::debug(LOG4CXX_STR("Retreiving an instance of Logger."));
LoggerPtr logger = repository->getLogger(loggerName, loggerFactory);
@@ -372,26 +347,25 @@
// configuration is in progress.
synchronized sync(logger->getMutex());
bool additivity = OptionConverter::toBoolean(
- subst(loggerElement->getAttribute(ADDITIVITY_ATTR)),
+ subst(getAttribute(loggerElement, ADDITIVITY_ATTR)),
true);
LogLog::debug(LOG4CXX_STR("Setting
[")+logger->getName()+LOG4CXX_STR("] additivity to [")+
(additivity ? LogString(LOG4CXX_STR("true")) :
LogString(LOG4CXX_STR("false")))+LOG4CXX_STR("]."));
logger->setAdditivity(additivity);
- parseChildrenOfLoggerElement(loggerElement, logger, false);
+ parseChildrenOfLoggerElement(loggerElement, logger, false, doc,
appenders);
}
/**
Used internally to parse the logger factory element.
*/
-void DOMConfigurator::parseLoggerFactory(XMLDOMElementPtr factoryElement)
+void DOMConfigurator::parseLoggerFactory(apr_xml_elem* factoryElement)
{
- LogString className = subst(factoryElement->getAttribute(CLASS_ATTR));
+ LogString className(subst(getAttribute(factoryElement, CLASS_ATTR)));
if(className.empty())
{
- LogLog::error(LOG4CXX_STR("Logger Factory tag ") +
LogString(CLASS_ATTR) +
- LOG4CXX_STR(" attribute not found."));
+ LogLog::error(LOG4CXX_STR("Logger Factory tag class attribute
not found."));
LogLog::debug(LOG4CXX_STR("No Category Logger configured."));
}
else
@@ -403,22 +377,13 @@
0);
PropertySetter propSetter(loggerFactory);
- XMLDOMElementPtr currentElement = 0;
- XMLDOMNodePtr currentNode = 0;
- XMLDOMNodeListPtr children = factoryElement->getChildNodes();
- int length = children->getLength();
-
- for (int loop=0; loop < length; loop++)
- {
- currentNode = children->item(loop);
- if (currentNode->getNodeType() ==
XMLDOMNode::ELEMENT_NODE)
- {
- currentElement = currentNode;
- if (currentElement->getTagName() == PARAM_TAG)
- {
- setParameter(currentElement,
propSetter);
- }
- }
+ for (apr_xml_elem* currentElement =
factoryElement->first_child;
+ currentElement;
+ currentElement = currentElement->next) {
+ std::string tagName(currentElement->name);
+ if (tagName == PARAM_TAG) {
+ setParameter(currentElement, propSetter);
+ }
}
}
}
@@ -426,19 +391,20 @@
/**
Used internally to parse the roor category element.
*/
-void DOMConfigurator::parseRoot(XMLDOMElementPtr rootElement)
+void DOMConfigurator::parseRoot(apr_xml_elem* rootElement, apr_xml_doc* doc,
AppenderMap& appenders)
{
LoggerPtr root = repository->getRootLogger();
// category configuration needs to be atomic
synchronized sync(root->getMutex());
- parseChildrenOfLoggerElement(rootElement, root, true);
+ parseChildrenOfLoggerElement(rootElement, root, true, doc, appenders);
}
/**
Used internally to parse the children of a logger element.
*/
void DOMConfigurator::parseChildrenOfLoggerElement(
- XMLDOMElementPtr loggerElement, LoggerPtr logger, bool isRoot)
+ apr_xml_elem* loggerElement, LoggerPtr logger, bool isRoot,
+ apr_xml_doc* doc, AppenderMap& appenders)
{
PropertySetter propSetter(logger);
@@ -448,22 +414,15 @@
logger->removeAllAppenders();
- XMLDOMNodeListPtr children = loggerElement->getChildNodes();
- int length = children->getLength();
-
- for (int loop = 0; loop < length; loop++)
- {
- XMLDOMNodePtr currentNode = children->item(loop);
-
- if (currentNode->getNodeType() == XMLDOMNode::ELEMENT_NODE)
- {
- XMLDOMElementPtr currentElement = currentNode;
- LogString tagName = currentElement->getTagName();
+ for (apr_xml_elem* currentElement = loggerElement->first_child;
+ currentElement;
+ currentElement = currentElement->next) {
+ std::string tagName(currentElement->name);
if (tagName == APPENDER_REF_TAG)
{
- AppenderPtr appender =
findAppenderByReference(currentElement);
- LogString refName =
subst(currentElement->getAttribute(REF_ATTR));
+ AppenderPtr appender =
findAppenderByReference(currentElement, doc, appenders);
+ LogString refName =
subst(getAttribute(currentElement, REF_ATTR));
if(appender != 0)
{
LogLog::debug(LOG4CXX_STR("Adding
appender named [")+ refName+
@@ -490,7 +449,6 @@
{
setParameter(currentElement, propSetter);
}
- }
}
Pool p;
propSetter.activate(p);
@@ -499,9 +457,9 @@
/**
Used internally to parse a layout element.
*/
-LayoutPtr DOMConfigurator::parseLayout (XMLDOMElementPtr layout_element)
+LayoutPtr DOMConfigurator::parseLayout (apr_xml_elem* layout_element)
{
- LogString className = subst(layout_element->getAttribute(CLASS_ATTR));
+ LogString className(subst(getAttribute(layout_element, CLASS_ATTR)));
LogLog::debug(LOG4CXX_STR("Parsing layout of class:
\"")+className+LOG4CXX_STR("\""));
try
{
@@ -509,24 +467,17 @@
LayoutPtr layout = instance;
PropertySetter propSetter(layout);
- XMLDOMNodeListPtr params = layout_element->getChildNodes();
- int length = params->getLength();
-
- for (int loop = 0; loop < length; loop++)
- {
- XMLDOMNodePtr currentNode = params->item(loop);
- if (currentNode->getNodeType() ==
XMLDOMNode::ELEMENT_NODE)
- {
- XMLDOMElementPtr currentElement = currentNode;
- LogString tagName =
currentElement->getTagName();
+ for(apr_xml_elem* currentElement = layout_element->first_child;
+ currentElement;
+ currentElement = currentElement->next) {
+ std::string tagName(currentElement->name);
if(tagName == PARAM_TAG)
{
setParameter(currentElement,
propSetter);
}
- }
}
- Pool p;
+ Pool p;
propSetter.activate(p);
return layout;
}
@@ -541,9 +492,9 @@
/**
Used internally to parse a triggering policy
*/
-TriggeringPolicyPtr DOMConfigurator::parseTriggeringPolicy (XMLDOMElementPtr
layout_element)
+TriggeringPolicyPtr DOMConfigurator::parseTriggeringPolicy (apr_xml_elem*
layout_element)
{
- LogString className = subst(layout_element->getAttribute(CLASS_ATTR));
+ LogString className = subst(getAttribute(layout_element, CLASS_ATTR));
LogLog::debug(LOG4CXX_STR("Parsing triggering policy of class:
\"")+className+LOG4CXX_STR("\""));
try
{
@@ -551,16 +502,10 @@
TriggeringPolicyPtr layout = instance;
PropertySetter propSetter(layout);
- XMLDOMNodeListPtr params = layout_element->getChildNodes();
- int length = params->getLength();
-
- for (int loop = 0; loop < length; loop++)
- {
- XMLDOMNodePtr currentNode = params->item(loop);
- if (currentNode->getNodeType() ==
XMLDOMNode::ELEMENT_NODE)
- {
- XMLDOMElementPtr currentElement = currentNode;
- LogString tagName =
currentElement->getTagName();
+ for (apr_xml_elem* currentElement =
layout_element->first_child;
+ currentElement;
+ currentElement = currentElement->next) {
+ std::string tagName(currentElement->name);
if(tagName == PARAM_TAG)
{
setParameter(currentElement,
propSetter);
@@ -577,7 +522,6 @@
}
}
}
- }
}
Pool p;
@@ -595,9 +539,9 @@
/**
Used internally to parse a triggering policy
*/
-RollingPolicyPtr DOMConfigurator::parseRollingPolicy (XMLDOMElementPtr
layout_element)
+RollingPolicyPtr DOMConfigurator::parseRollingPolicy (apr_xml_elem*
layout_element)
{
- LogString className = subst(layout_element->getAttribute(CLASS_ATTR));
+ LogString className = subst(getAttribute(layout_element, CLASS_ATTR));
LogLog::debug(LOG4CXX_STR("Parsing rolling policy of class:
\"")+className+LOG4CXX_STR("\""));
try
{
@@ -605,20 +549,13 @@
RollingPolicyPtr layout = instance;
PropertySetter propSetter(layout);
- XMLDOMNodeListPtr params = layout_element->getChildNodes();
- int length = params->getLength();
-
- for (int loop = 0; loop < length; loop++)
- {
- XMLDOMNodePtr currentNode = params->item(loop);
- if (currentNode->getNodeType() ==
XMLDOMNode::ELEMENT_NODE)
- {
- XMLDOMElementPtr currentElement = currentNode;
- LogString tagName =
currentElement->getTagName();
+ for(apr_xml_elem* currentElement = layout_element->first_child;
+ currentElement;
+ currentElement = currentElement->next) {
+ std::string tagName(currentElement->name);
if(tagName == PARAM_TAG)
{
setParameter(currentElement,
propSetter);
- }
}
}
@@ -639,7 +576,7 @@
/**
Used internally to parse a level element.
*/
-void DOMConfigurator::parseLevel(XMLDOMElementPtr element, LoggerPtr logger,
bool isRoot)
+void DOMConfigurator::parseLevel(apr_xml_elem* element, LoggerPtr logger, bool
isRoot)
{
LogString loggerName = logger->getName();
if(isRoot)
@@ -647,7 +584,7 @@
loggerName = LOG4CXX_STR("root");
}
- LogString levelStr = subst(element->getAttribute(VALUE_ATTR));
+ LogString levelStr(subst(getAttribute(element, VALUE_ATTR)));
LogLog::debug(LOG4CXX_STR("Level value for ")+loggerName+LOG4CXX_STR("
is [")+levelStr+LOG4CXX_STR("]."));
if (StringHelper::equalsIgnoreCase(levelStr,LOG4CXX_STR("INHERITED"),
LOG4CXX_STR("inherited"))
@@ -664,7 +601,7 @@
}
else
{
- LogString className = subst(element->getAttribute(CLASS_ATTR));
+ LogString className(subst(getAttribute(element, CLASS_ATTR)));
if (className.empty())
{
@@ -704,10 +641,10 @@
logger->getEffectiveLevel()->toString());
}
-void DOMConfigurator::setParameter(XMLDOMElementPtr elem, PropertySetter&
propSetter)
+void DOMConfigurator::setParameter(apr_xml_elem* elem, PropertySetter&
propSetter)
{
- LogString name = subst(elem->getAttribute(NAME_ATTR));
- LogString value = elem->getAttribute(VALUE_ATTR);
+ LogString name(subst(getAttribute(elem, NAME_ATTR)));
+ LogString value(subst(getAttribute(elem, VALUE_ATTR)));
Pool p;
value = subst(value);
propSetter.setProperty(name, value, p);
@@ -717,32 +654,44 @@
{
repository->setConfigured(true);
this->repository = repository;
- std::basic_ostringstream<logchar> os(LOG4CXX_STR("DOMConfigurator
configuring file "));
- os << filename.getName() << LOG4CXX_STR("...");
- LogLog::debug(os.str());
+ LogString msg(LOG4CXX_STR("DOMConfigurator configuring file "));
+ msg.append(filename.getName());
+ msg.append(LOG4CXX_STR("..."));
+ LogLog::debug(msg);
- appenderBag = new AppenderMap();
loggerFactory = new DefaultCategoryFactory();
- try
- {
-#ifdef _WIN32
- XMLDOMDocumentPtr doc = new MsXMLDOMDocument();
-#else
- XMLDOMDocumentPtr doc = new GnomeXMLDOMDocument();
-#endif
- doc->load(filename);
- parse(doc->getDocumentElement());
- }
- catch (Exception& e)
- {
- // I know this is miserable..
- std::basic_ostringstream<logchar> os(LOG4CXX_STR("Could not parse
input source ["));
- os << filename.getName() << LOG4CXX_STR("].");
- LogLog::error(os.str(), e);
- }
+ Pool p;
+ apr_file_t *fd;
- delete (AppenderMap *)appenderBag;
+ log4cxx_status_t rv = filename.open(&fd, APR_READ, APR_OS_DEFAULT, p);
+ if (rv != APR_SUCCESS) {
+ LogString msg(LOG4CXX_STR("Could not open file ["));
+ msg.append(filename.getName());
+ msg.append(LOG4CXX_STR("]."));
+ LogLog::error(msg);
+ } else {
+ apr_xml_parser *parser;
+ apr_xml_doc *doc;
+ rv = apr_xml_parse_file((apr_pool_t*) p.getAPRPool(), &parser,
&doc, fd, 2000);
+ if (rv != APR_SUCCESS) {
+ char errbuf[2000];
+ char errbufXML[2000];
+ LogString msg(LOG4CXX_STR("Error parsing file ["));
+ msg.append(filename.getName());
+ msg.append(LOG4CXX_STR("], "));
+ apr_strerror(rv, errbuf, sizeof(errbuf));
+ LOG4CXX_DECODE_CHAR(lerrbuf, errbuf);
+ apr_xml_parser_geterror(parser, errbufXML, sizeof(errbufXML));
+ LOG4CXX_DECODE_CHAR(lerrbufXML, errbufXML);
+ msg.append(lerrbuf);
+ msg.append(lerrbufXML);
+ LogLog::error(msg);
+ } else {
+ AppenderMap appenders;
+ parse(doc->root, doc, appenders);
+ }
+ }
}
void DOMConfigurator::configure(const std::string& filename)
@@ -780,7 +729,6 @@
xdog->setDelay(delay);
xdog->start();
}
-
#if LOG4CXX_HAS_WCHAR_T
void DOMConfigurator::configureAndWatch(const std::wstring& filename, long
delay)
{
@@ -797,9 +745,11 @@
href="doc-files/log4j.dtd">log4j.dtd</a>.
*/
-void DOMConfigurator::parse(XMLDOMElementPtr element)
+void DOMConfigurator::parse(apr_xml_elem* element,
+ apr_xml_doc* doc,
+ AppenderMap& appenders)
{
- LogString rootElementName = element->getTagName();
+ std::string rootElementName(element->name);
if (rootElementName != CONFIGURATION_TAG)
{
@@ -812,13 +762,12 @@
}
else
{
- LogLog::error(LOG4CXX_STR("DOM element is - not a <")+
- LogString(CONFIGURATION_TAG)+LOG4CXX_STR(">
element."));
+ LogLog::error(LOG4CXX_STR("DOM element is - not a
<configuration> element."));
return;
}
}
- LogString debugAttrib = subst(element->getAttribute(INTERNAL_DEBUG_ATTR));
+ LogString debugAttrib = subst(getAttribute(element, INTERNAL_DEBUG_ATTR));
static const LogString NuLL(LOG4CXX_STR("NULL"));
LogLog::debug(LOG4CXX_STR("debug attribute= \"") + debugAttrib
+LOG4CXX_STR("\"."));
@@ -830,67 +779,50 @@
}
else
{
- LogLog::debug(LOG4CXX_STR("Ignoring ") +
LogString(INTERNAL_DEBUG_ATTR)
- + LOG4CXX_STR(" attribute."));
+ LogLog::debug(LOG4CXX_STR("Ignoring internalDebug
attribute."));
}
- LogString confDebug = subst(element->getAttribute(CONFIG_DEBUG_ATTR));
+ LogString confDebug = subst(getAttribute(element, CONFIG_DEBUG_ATTR));
if(!confDebug.empty() && confDebug != NuLL)
{
- LogLog::warn(LOG4CXX_STR("The
\"")+LogString(CONFIG_DEBUG_ATTR)+
- LOG4CXX_STR("\" attribute is deprecated."));
- LogLog::warn(LOG4CXX_STR("Use the
\"")+LogString(INTERNAL_DEBUG_ATTR)+
- LOG4CXX_STR("\" attribute instead."));
+ LogLog::warn(LOG4CXX_STR("The \"configDebug\" attribute is
deprecated."));
+ LogLog::warn(LOG4CXX_STR("Use the \"internalDebug\" attribute
instead."));
LogLog::setInternalDebugging(OptionConverter::toBoolean(confDebug, true));
}
- LogString thresholdStr = subst(element->getAttribute(THRESHOLD_ATTR));
+ LogString thresholdStr = subst(getAttribute(element, THRESHOLD_ATTR));
LogLog::debug(LOG4CXX_STR("Threshold =\"") + thresholdStr
+LOG4CXX_STR("\"."));
if(!thresholdStr.empty() && thresholdStr != NuLL)
{
repository->setThreshold(thresholdStr);
}
- LogString tagName;
- XMLDOMElementPtr currentElement;
- XMLDOMNodePtr currentNode;
- XMLDOMNodeListPtr children = element->getChildNodes();
- int length = children->getLength();
- int loop;
-
- for (loop = 0; loop < length; loop++)
- {
- currentNode = children->item(loop);
- if (currentNode->getNodeType() == XMLDOMNode::ELEMENT_NODE)
- {
- currentElement = currentNode;
- tagName = currentElement->getTagName();
+ apr_xml_elem* currentElement;
+ for(currentElement = element->first_child;
+ currentElement;
+ currentElement = currentElement->next) {
+ std::string tagName(currentElement->name);
if (tagName == CATEGORY_FACTORY_TAG)
{
parseLoggerFactory(currentElement);
}
- }
}
- for (loop = 0; loop < length; loop++)
- {
- currentNode = children->item(loop);
- if (currentNode->getNodeType() == XMLDOMNode::ELEMENT_NODE)
- {
- currentElement = currentNode;
- tagName = currentElement->getTagName();
+ for(currentElement = element->first_child;
+ currentElement;
+ currentElement = currentElement->next) {
+ std::string tagName(currentElement->name);
if (tagName == CATEGORY || tagName == LOGGER)
{
- parseLogger(currentElement);
+ parseLogger(currentElement, doc, appenders);
}
else if (tagName == ROOT_TAG)
{
- parseRoot(currentElement);
+ parseRoot(currentElement, doc, appenders);
}
- }
}
}
@@ -907,4 +839,17 @@
}
}
-#endif // LOG4CXX_HAVE_XML
+
+LogString DOMConfigurator::getAttribute(apr_xml_elem* element,
+ const std::string& attrName) {
+ LogString attrValue;
+ for(apr_xml_attr* attr = element->attr;
+ attr;
+ attr = attr->next) {
+ if (attrName == attr->name) {
+ ByteBuffer buf((char*) attr->value, strlen(attr->value));
+ CharsetDecoder::getUTF8Decoder()->decode(buf, attrValue);
+ }
+ }
+ return attrValue;
+}
Modified: logging/log4cxx/trunk/src/optionconverter.cpp
URL:
http://svn.apache.org/viewcvs/logging/log4cxx/trunk/src/optionconverter.cpp?rev=383802&r1=383801&r2=383802&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/optionconverter.cpp (original)
+++ logging/log4cxx/trunk/src/optionconverter.cpp Mon Mar 6 22:51:03 2006
@@ -362,7 +362,6 @@
LogString clazz = _clazz;
LogString filename(configFileName.getName());
-#ifdef LOG4CXX_HAVE_XML
if(clazz.empty()
&& filename.length() > 4
&& StringHelper::equalsIgnoreCase(
@@ -371,7 +370,6 @@
{
clazz = log4cxx::xml::DOMConfigurator::getStaticClass().toString();
}
-#endif
if(!clazz.empty())
{
Modified: logging/log4cxx/trunk/tests/src/customlogger/xloggertestcase.cpp
URL:
http://svn.apache.org/viewcvs/logging/log4cxx/trunk/tests/src/customlogger/xloggertestcase.cpp?rev=383802&r1=383801&r2=383802&view=diff
==============================================================================
--- logging/log4cxx/trunk/tests/src/customlogger/xloggertestcase.cpp (original)
+++ logging/log4cxx/trunk/tests/src/customlogger/xloggertestcase.cpp Mon Mar 6
22:51:03 2006
@@ -17,7 +17,6 @@
#define LOG4CXX_TEST 1
#include <log4cxx/private/log4cxx_private.h>
-#ifdef LOG4CXX_HAVE_XML
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
@@ -101,4 +100,3 @@
CPPUNIT_TEST_SUITE_REGISTRATION(XLoggerTestCase);
-#endif //HAVE_XML
Modified: logging/log4cxx/trunk/tests/src/defaultinit/testcase2.cpp
URL:
http://svn.apache.org/viewcvs/logging/log4cxx/trunk/tests/src/defaultinit/testcase2.cpp?rev=383802&r1=383801&r2=383802&view=diff
==============================================================================
--- logging/log4cxx/trunk/tests/src/defaultinit/testcase2.cpp (original)
+++ logging/log4cxx/trunk/tests/src/defaultinit/testcase2.cpp Mon Mar 6
22:51:03 2006
@@ -17,7 +17,6 @@
#define LOG4CXX_TEST 1
#include <log4cxx/private/log4cxx_private.h>
-#ifdef LOG4CXX_HAVE_XML
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
@@ -63,4 +62,3 @@
}
-#endif //LOG4CXX_HAVE_XML
Modified: logging/log4cxx/trunk/tests/src/defaultinit/testcase4.cpp
URL:
http://svn.apache.org/viewcvs/logging/log4cxx/trunk/tests/src/defaultinit/testcase4.cpp?rev=383802&r1=383801&r2=383802&view=diff
==============================================================================
--- logging/log4cxx/trunk/tests/src/defaultinit/testcase4.cpp (original)
+++ logging/log4cxx/trunk/tests/src/defaultinit/testcase4.cpp Mon Mar 6
22:51:03 2006
@@ -17,7 +17,6 @@
#define LOG4CXX_TEST 1
#include <log4cxx/private/log4cxx_private.h>
-#ifdef LOG4CXX_HAVE_XML
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
@@ -63,4 +62,3 @@
return TestCase4::suite();
}
-#endif //LOG4CXX_HAVE_XML
Modified: logging/log4cxx/trunk/tests/src/main.cpp
URL:
http://svn.apache.org/viewcvs/logging/log4cxx/trunk/tests/src/main.cpp?rev=383802&r1=383801&r2=383802&view=diff
==============================================================================
--- logging/log4cxx/trunk/tests/src/main.cpp (original)
+++ logging/log4cxx/trunk/tests/src/main.cpp Mon Mar 6 22:51:03 2006
@@ -43,10 +43,8 @@
extern CPPUNIT_NS::Test* createTestCase1();
extern CPPUNIT_NS::Test* createTestCase3();
-#if LOG4CXX_HAVE_XML
extern CPPUNIT_NS::Test* createTestCase2();
extern CPPUNIT_NS::Test* createTestCase4();
-#endif
//
// initializing a logger will cause the APR used by log4cxx library to be
initialized
@@ -90,14 +88,12 @@
case '3':
runner.addTest(createTestCase3());
break;
-#if LOG4CXX_HAVE_XML
case '2':
runner.addTest(createTestCase2());
break;
case '4':
runner.addTest(createTestCase4());
break;
-#endif
default:
break;
}
Modified: logging/log4cxx/trunk/tests/src/varia/errorhandlertestcase.cpp
URL:
http://svn.apache.org/viewcvs/logging/log4cxx/trunk/tests/src/varia/errorhandlertestcase.cpp?rev=383802&r1=383801&r2=383802&view=diff
==============================================================================
--- logging/log4cxx/trunk/tests/src/varia/errorhandlertestcase.cpp (original)
+++ logging/log4cxx/trunk/tests/src/varia/errorhandlertestcase.cpp Mon Mar 6
22:51:03 2006
@@ -17,7 +17,6 @@
#define LOG4CXX_TEST 1
#include <log4cxx/private/log4cxx_private.h>
-#ifdef LOG4CXX_HAVE_XML
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
@@ -139,5 +138,3 @@
const File ErrorHandlerTestCase::TEMP("output/temp");
const File ErrorHandlerTestCase::FILTERED("output/filtered");
-
-#endif //HAVE_XML
Modified: logging/log4cxx/trunk/tests/src/xml/customleveltestcase.cpp
URL:
http://svn.apache.org/viewcvs/logging/log4cxx/trunk/tests/src/xml/customleveltestcase.cpp?rev=383802&r1=383801&r2=383802&view=diff
==============================================================================
--- logging/log4cxx/trunk/tests/src/xml/customleveltestcase.cpp (original)
+++ logging/log4cxx/trunk/tests/src/xml/customleveltestcase.cpp Mon Mar 6
22:51:03 2006
@@ -18,7 +18,6 @@
#include <log4cxx/private/log4cxx_private.h>
-#ifdef LOG4CXX_HAVE_XML
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
@@ -125,5 +124,3 @@
const File CustomLevelTestCase::TEMP("output/temp");
-
-#endif //HAVE_XML
Modified: logging/log4cxx/trunk/tests/src/xml/domtestcase.cpp
URL:
http://svn.apache.org/viewcvs/logging/log4cxx/trunk/tests/src/xml/domtestcase.cpp?rev=383802&r1=383801&r2=383802&view=diff
==============================================================================
--- logging/log4cxx/trunk/tests/src/xml/domtestcase.cpp (original)
+++ logging/log4cxx/trunk/tests/src/xml/domtestcase.cpp Mon Mar 6 22:51:03 2006
@@ -14,7 +14,6 @@
* limitations under the License.
*/
-#ifdef HAVE_XML
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
@@ -202,5 +201,3 @@
const File
DOMTestCase::FILTERED_A1_2(LOG4CXX_TEST_STR("output/filtered.A1.2"));
const File
DOMTestCase::FILTERED_A2_2(LOG4CXX_TEST_STR("output/filtered.A2.2"));
-
-#endif //HAVE_XML