summaryrefslogtreecommitdiff
path: root/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx
diff options
context:
space:
mode:
authorJustin Dickow <jjdickow@gmail.com>2014-10-20 17:44:41 -0400
committerJustin Dickow <jjdickow@gmail.com>2014-10-20 17:44:41 -0400
commit34e7256493ff0e6594029b9857d7e2aa31f5dbeb (patch)
tree367306b507c52d3af211533810adbc22004e0192 /src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx
parent2eef966e9b5fd4d94dd98820095eb765e200c64b (diff)
downloadsdl_core-34e7256493ff0e6594029b9857d7e2aa31f5dbeb.tar.gz
SDL 3.8!
Signed-off-by: Justin Dickow <jjdickow@gmail.com>
Diffstat (limited to 'src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx')
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/Makefile.am24
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/Makefile.in570
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/appender.h148
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/appenderskeleton.h213
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/asyncappender.h292
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/basicconfigurator.h65
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/Makefile.am18
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/Makefile.in446
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/propertysetter.h108
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config_msvc.h.in69
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/consoleappender.h79
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/dailyrollingfileappender.h203
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/Makefile.am18
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/Makefile.in446
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/odbcappender.h292
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/defaultconfigurator.h55
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/defaultloggerfactory.h45
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/file.h188
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/fileappender.h223
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/Makefile.am18
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/Makefile.in446
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/andfilter.h109
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/denyallfilter.h73
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/expressionfilter.h130
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/levelmatchfilter.h102
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/levelrangefilter.h137
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/locationinfofilter.h87
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/mapfilter.h44
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/propertyfilter.h81
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/stringmatchfilter.h92
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/Makefile.am18
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/Makefile.in446
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/absolutetimedateformat.h40
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/appenderattachableimpl.h128
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/aprinitializer.h57
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bufferedoutputstream.h63
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bufferedwriter.h63
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytearrayinputstream.h94
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytearrayoutputstream.h77
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytebuffer.h69
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/cacheddateformat.h220
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/charsetdecoder.h113
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/charsetencoder.h135
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/class.h67
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/classregistration.h41
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/condition.h73
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/cyclicbuffer.h92
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagrampacket.h135
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagramsocket.h128
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/date.h67
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/dateformat.h92
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datelayout.h91
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datetimedateformat.h42
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/exception.h287
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/fileinputstream.h96
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/fileoutputstream.h67
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/filewatchdog.h86
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inetaddress.h106
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inputstream.h72
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inputstreamreader.h94
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/integer.h50
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/iso8601dateformat.h46
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/loader.h43
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/locale.h49
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/loglog.h113
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/messagebuffer.h828
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/mutex.h51
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/object.h138
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectimpl.h49
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectoutputstream.h95
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectptr.h183
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/onlyonceerrorhandler.h103
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/optionconverter.h164
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/outputstream.h59
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/outputstreamwriter.h65
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/pool.h59
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/properties.h186
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/propertyresourcebundle.h62
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/reader.h72
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/relativetimedateformat.h47
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/resourcebundle.h89
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/serversocket.h64
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/simpledateformat.h96
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/socket.h90
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/socketoutputstream.h74
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/strftimedateformat.h68
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/strictmath.h49
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/stringhelper.h61
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/stringtokenizer.h49
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/synchronized.h44
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/syslogwriter.h48
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/system.h53
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/systemerrwriter.h59
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/systemoutwriter.h58
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/tchar.h171
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/thread.h184
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/threadlocal.h85
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/threadspecificdata.h67
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/timezone.h70
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/transcoder.h256
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/transform.h62
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/writer.h58
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/xml.h131
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/hierarchy.h283
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/htmllayout.h133
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/layout.h97
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/level.h285
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/log4cxx.h.in51
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/log4cxx.hw99
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logger.h1924
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logmanager.h212
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logstring.h90
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/mdc.h240
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/ndc.h353
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/Makefile.am18
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/Makefile.in446
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/smtpappender.h283
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/socketappender.h143
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/socketappenderskeleton.h179
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/sockethubappender.h197
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/syslogappender.h141
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/telnetappender.h158
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/xmlsocketappender.h150
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/EventLogCategories.mc42
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/Makefile.am18
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/Makefile.in445
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/nteventlogappender.h111
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/outputdebugstringappender.h48
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/Makefile.am18
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/Makefile.in446
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/classnamepatternconverter.h65
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/datepatternconverter.h82
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/filedatepatternconverter.h52
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/filelocationpatternconverter.h62
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/formattinginfo.h117
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/fulllocationpatternconverter.h63
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/integerpatternconverter.h64
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/levelpatternconverter.h62
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/linelocationpatternconverter.h62
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/lineseparatorpatternconverter.h69
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/literalpatternconverter.h67
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/loggerpatternconverter.h67
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/loggingeventpatternconverter.h84
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/messagepatternconverter.h60
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/methodlocationpatternconverter.h61
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/nameabbreviator.h81
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/namepatternconverter.h74
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/ndcpatternconverter.h60
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/patternconverter.h124
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/patternparser.h171
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/propertiespatternconverter.h71
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/relativetimepatternconverter.h59
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/threadpatternconverter.h60
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/throwableinformationpatternconverter.h74
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/patternlayout.h409
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/portability.h25
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/Makefile.am23
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/Makefile.in457
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/log4cxx_private.h.in56
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/log4cxx_private.hw84
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/propertyconfigurator.h395
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/provisionnode.h35
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/Makefile.am18
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/Makefile.in446
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/action.h87
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/filerenameaction.h59
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/filterbasedtriggeringpolicy.h118
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/fixedwindowrollingpolicy.h141
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/gzcompressaction.h73
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/manualtriggeringpolicy.h72
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingfileappender.h105
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingfileappenderskeleton.h152
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingpolicy.h82
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingpolicybase.h128
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rolloverdescription.h101
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/sizebasedtriggeringpolicy.h82
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/timebasedrollingpolicy.h227
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/triggeringpolicy.h80
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/zipcompressaction.h74
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rollingfileappender.h116
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/simplelayout.h83
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/Makefile.am19
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/Makefile.in558
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/appenderattachable.h98
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/configurator.h61
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/defaultrepositoryselector.h50
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/errorhandler.h127
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/filter.h133
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/hierarchyeventlistener.h65
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/Makefile.am18
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/Makefile.in446
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/locationinfo.h136
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggerfactory.h46
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggerrepository.h116
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggingevent.h284
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/optionhandler.h72
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/repositoryselector.h54
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/rootlogger.h60
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/triggeringeventevaluator.h50
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/stream.h566
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/ttcclayout.h187
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/Makefile.am18
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/Makefile.in446
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/fallbackerrorhandler.h116
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/writerappender.h217
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/Makefile.am18
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/Makefile.in446
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/domconfigurator.h316
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/xmllayout.h138
209 files changed, 29438 insertions, 0 deletions
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/Makefile.am
new file mode 100644
index 0000000000..719c2dde78
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/Makefile.am
@@ -0,0 +1,24 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+SUBDIRS = helpers net nt rolling spi varia xml config db private pattern filter
+log4cxxincdir = $(includedir)/log4cxx
+log4cxxinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/*.h log4cxx.h
+DISTCLEANFILES = log4cxx.h
+EXTRA_DIST = log4cxx.hw
+
+dist-hook:
+ -rm -f $(distdir)/log4cxx.h
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/Makefile.in
new file mode 100644
index 0000000000..464dad1111
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/Makefile.in
@@ -0,0 +1,570 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = src/main/include/log4cxx
+DIST_COMMON = $(log4cxxinc_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in $(srcdir)/log4cxx.h.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \
+ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES = log4cxx.h
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-exec-recursive install-info-recursive \
+ install-recursive installcheck-recursive installdirs-recursive \
+ pdf-recursive ps-recursive uninstall-info-recursive \
+ uninstall-recursive
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(log4cxxincdir)"
+log4cxxincHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(log4cxxinc_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+APR_LIBS = @APR_LIBS@
+APU_LIBS = @APU_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CFSTRING_API = @CFSTRING_API@
+CHARSET_EBCDIC = @CHARSET_EBCDIC@
+CHARSET_ISO88591 = @CHARSET_ISO88591@
+CHARSET_USASCII = @CHARSET_USASCII@
+CHARSET_UTF8 = @CHARSET_UTF8@
+CHAR_API = @CHAR_API@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_ODBC = @CPPFLAGS_ODBC@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOC_FALSE = @DOC_FALSE@
+DOC_TRUE = @DOC_TRUE@
+DOT = @DOT@
+DOXYGEN = @DOXYGEN@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HAS_FWIDE = @HAS_FWIDE@
+HAS_LIBESMTP = @HAS_LIBESMTP@
+HAS_MBSRTOWCS = @HAS_MBSRTOWCS@
+HAS_ODBC = @HAS_ODBC@
+HAS_STD_LOCALE = @HAS_STD_LOCALE@
+HAS_SYSLOG = @HAS_SYSLOG@
+HAS_WCHAR_T = @HAS_WCHAR_T@
+HAS_WCSTOMBS = @HAS_WCSTOMBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IODBC_CONFIG = @IODBC_CONFIG@
+LATEX_DOC_FALSE = @LATEX_DOC_FALSE@
+LATEX_DOC_TRUE = @LATEX_DOC_TRUE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBS_ODBC = @LIBS_ODBC@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@
+LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@
+LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@
+LTLIBOBJS = @LTLIBOBJS@
+LT_VERSION = @LT_VERSION@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+UNICHAR_API = @UNICHAR_API@
+VERSION = @VERSION@
+WCHAR_T_API = @WCHAR_T_API@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+base_dir = @base_dir@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+enable_dot = @enable_dot@
+enable_html_docs = @enable_html_docs@
+enable_latex_docs = @enable_latex_docs@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+manual_dest = @manual_dest@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+SUBDIRS = helpers net nt rolling spi varia xml config db private pattern filter
+log4cxxincdir = $(includedir)/log4cxx
+log4cxxinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/*.h log4cxx.h
+DISTCLEANFILES = log4cxx.h
+EXTRA_DIST = log4cxx.hw
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/main/include/log4cxx/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+log4cxx.h: $(top_builddir)/config.status $(srcdir)/log4cxx.h.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+install-log4cxxincHEADERS: $(log4cxxinc_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(log4cxxincdir)" || $(mkdir_p) "$(DESTDIR)$(log4cxxincdir)"
+ @list='$(log4cxxinc_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(log4cxxincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(log4cxxincdir)/$$f'"; \
+ $(log4cxxincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(log4cxxincdir)/$$f"; \
+ done
+
+uninstall-log4cxxincHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(log4cxxinc_HEADERS)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(log4cxxincdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(log4cxxincdir)/$$f"; \
+ done
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ $(mkdir_p) $(distdir)/../../../../src/main/include/log4cxx
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(mkdir_p) "$(distdir)/$$subdir" \
+ || exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-hook
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(HEADERS)
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(log4cxxincdir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-log4cxxincHEADERS
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-log4cxxincHEADERS
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
+ clean clean-generic clean-libtool clean-recursive ctags \
+ ctags-recursive dist-hook distclean distclean-generic \
+ distclean-libtool distclean-recursive distclean-tags distdir \
+ dvi dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-exec install-exec-am \
+ install-info install-info-am install-log4cxxincHEADERS \
+ install-man install-strip installcheck installcheck-am \
+ installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic maintainer-clean-recursive \
+ mostlyclean mostlyclean-generic mostlyclean-libtool \
+ mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
+ uninstall uninstall-am uninstall-info-am \
+ uninstall-log4cxxincHEADERS
+
+
+dist-hook:
+ -rm -f $(distdir)/log4cxx.h
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/appender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/appender.h
new file mode 100644
index 0000000000..8fd798ef5d
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/appender.h
@@ -0,0 +1,148 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_APPENDER_H
+#define _LOG4CXX_APPENDER_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/spi/optionhandler.h>
+#include <log4cxx/helpers/objectptr.h>
+#include <log4cxx/helpers/object.h>
+#include <vector>
+
+
+namespace log4cxx
+{
+ // Forward declarations
+ namespace spi
+ {
+ class LoggingEvent;
+ typedef helpers::ObjectPtrT<LoggingEvent> LoggingEventPtr;
+
+ class Filter;
+ typedef helpers::ObjectPtrT<Filter> FilterPtr;
+
+ class ErrorHandler;
+ typedef log4cxx::helpers::ObjectPtrT<ErrorHandler> ErrorHandlerPtr;
+ }
+
+ class Layout;
+ typedef log4cxx::helpers::ObjectPtrT<Layout> LayoutPtr;
+
+
+ /**
+ Implement this interface for your own strategies for outputting log
+ statements.
+ */
+ class LOG4CXX_EXPORT Appender :
+ public virtual spi::OptionHandler
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(Appender)
+
+ virtual ~Appender() {}
+
+ /**
+ Add a filter to the end of the filter list.
+ */
+ virtual void addFilter(const spi::FilterPtr& newFilter) = 0;
+
+ /**
+ Returns the head Filter. The Filters are organized in a linked list
+ and so all Filters on this Appender are available through the result.
+
+ @return the head Filter or null, if no Filters are present
+ */
+ virtual spi::FilterPtr getFilter() const = 0;
+
+ /**
+ Clear the list of filters by removing all the filters in it.
+ */
+ virtual void clearFilters() = 0;
+
+ /**
+ Release any resources allocated within the appender such as file
+ handles, network connections, etc.
+ <p>It is a programming error to append to a closed appender.
+ */
+ virtual void close() = 0;
+
+ /**
+ Log in <code>Appender</code> specific way. When appropriate,
+ Loggers will call the <code>doAppend</code> method of appender
+ implementations in order to log.
+ */
+ virtual void doAppend(const spi::LoggingEventPtr& event,
+ log4cxx::helpers::Pool& pool) = 0;
+
+
+ /**
+ Get the name of this appender. The name uniquely identifies the
+ appender.
+ */
+ virtual LogString getName() const = 0;
+
+
+ /**
+ Set the Layout for this appender.
+ */
+ virtual void setLayout(const LayoutPtr& layout) = 0;
+
+ /**
+ Returns this appenders layout.
+ */
+ virtual LayoutPtr getLayout() const = 0;
+
+
+ /**
+ Set the name of this appender. The name is used by other
+ components to identify this appender.
+ */
+ virtual void setName(const LogString& name) = 0;
+
+ /**
+ Configurators call this method to determine if the appender
+ requires a layout. If this method returns <code>true</code>,
+ meaning that layout is required, then the configurator will
+ configure an layout using the configuration information at its
+ disposal. If this method returns <code>false</code>, meaning that
+ a layout is not required, then layout configuration will be
+ skipped even if there is available layout configuration
+ information at the disposal of the configurator..
+
+ <p>In the rather exceptional case, where the appender
+ implementation admits a layout but can also work without it, then
+ the appender should return <code>true</code>.
+ */
+ virtual bool requiresLayout() const = 0;
+ };
+
+ LOG4CXX_PTR_DEF(Appender);
+ LOG4CXX_LIST_DEF(AppenderList, AppenderPtr);
+
+}
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+#endif //_LOG4CXX_APPENDER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/appenderskeleton.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/appenderskeleton.h
new file mode 100644
index 0000000000..16242bdc6a
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/appenderskeleton.h
@@ -0,0 +1,213 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_APPENDER_SKELETON_H
+#define _LOG4CXX_APPENDER_SKELETON_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/appender.h>
+#include <log4cxx/layout.h>
+#include <log4cxx/spi/errorhandler.h>
+#include <log4cxx/spi/filter.h>
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/helpers/mutex.h>
+#include <log4cxx/helpers/pool.h>
+#include <log4cxx/level.h>
+
+
+namespace log4cxx
+{
+ /**
+ * Implementation base class for all appenders.
+ *
+ * This class provides the code for common functionality, such as
+ * support for threshold filtering and support for general filters.
+ * */
+ class LOG4CXX_EXPORT AppenderSkeleton :
+ public virtual Appender,
+ public virtual helpers::ObjectImpl
+ {
+ protected:
+ /** The layout variable does not need to be set if the appender
+ implementation has its own layout. */
+ LayoutPtr layout;
+
+ /** Appenders are named. */
+ LogString name;
+
+ /**
+ There is no level threshold filtering by default. */
+ LevelPtr threshold;
+
+ /**
+ It is assumed and enforced that errorHandler is never null.
+ */
+ spi::ErrorHandlerPtr errorHandler;
+
+ /** The first filter in the filter chain. Set to <code>null</code>
+ initially. */
+ spi::FilterPtr headFilter;
+
+ /** The last filter in the filter chain. */
+ spi::FilterPtr tailFilter;
+
+ /**
+ Is this appender closed?
+ */
+ bool closed;
+
+ log4cxx::helpers::Pool pool;
+ log4cxx::helpers::Mutex mutex;
+
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(AppenderSkeleton)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(Appender)
+ LOG4CXX_CAST_ENTRY(spi::OptionHandler)
+ END_LOG4CXX_CAST_MAP()
+
+ AppenderSkeleton();
+ AppenderSkeleton(const LayoutPtr& layout);
+
+ void addRef() const;
+ void releaseRef() const;
+
+ /**
+ Finalize this appender by calling the derived class'
+ <code>close</code> method.
+ */
+ void finalize();
+
+ /**
+ Derived appenders should override this method if option structure
+ requires it.
+ */
+ virtual void activateOptions(log4cxx::helpers::Pool& /* pool */) {}
+ virtual void setOption(const LogString& option, const LogString& value);
+
+ /**
+ Add a filter to end of the filter list.
+ */
+ void addFilter(const spi::FilterPtr& newFilter) ;
+
+ /**
+ Subclasses of <code>AppenderSkeleton</code> should implement this
+ method to perform actual logging. See also AppenderSkeleton::doAppend
+ method.
+ */
+ protected:
+ virtual void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p) = 0;
+
+ /**
+ Clear the filters chain.
+ */
+ public:
+ void clearFilters();
+
+ /**
+ Return the currently set spi::ErrorHandler for this
+ Appender.
+ */
+ const spi::ErrorHandlerPtr& getErrorHandler() const { return errorHandler; }
+
+ /**
+ Returns the head Filter.
+ */
+ spi::FilterPtr getFilter() const { return headFilter; }
+
+ /**
+ Return the first filter in the filter chain for this
+ Appender. The return value may be <code>0</code> if no is
+ filter is set.
+ */
+ const spi::FilterPtr& getFirstFilter() const { return headFilter; }
+
+ /**
+ Returns the layout of this appender. The value may be 0.
+ */
+ LayoutPtr getLayout() const { return layout; }
+
+
+ /**
+ Returns the name of this Appender.
+ */
+ LogString getName() const { return name; }
+
+ /**
+ Returns this appenders threshold level. See the #setThreshold
+ method for the meaning of this option.
+ */
+ const LevelPtr& getThreshold() { return threshold; }
+
+ /**
+ Check whether the message level is below the appender's
+ threshold. If there is no threshold set, then the return value is
+ always <code>true</code>.
+ */
+ bool isAsSevereAsThreshold(const LevelPtr& level) const;
+
+
+ /**
+ * This method performs threshold checks and invokes filters before
+ * delegating actual logging to the subclasses specific
+ * AppenderSkeleton#append method.
+ * */
+ void doAppend(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& pool);
+
+ /**
+ Set the {@link spi::ErrorHandler ErrorHandler} for this Appender.
+ */
+ void setErrorHandler(const spi::ErrorHandlerPtr& eh);
+
+ /**
+ Set the layout for this appender. Note that some appenders have
+ their own (fixed) layouts or do not use one. For example, the
+ {@link net::SocketAppender SocketAppender} ignores the layout set
+ here.
+ */
+ void setLayout(const LayoutPtr& layout1) { this->layout = layout1; }
+
+ /**
+ Set the name of this Appender.
+ */
+ void setName(const LogString& name1) { this->name.assign(name1); }
+
+
+ /**
+ Set the threshold level. All log events with lower level
+ than the threshold level are ignored by the appender.
+
+ <p>In configuration files this option is specified by setting the
+ value of the <b>Threshold</b> option to a level
+ string, such as "DEBUG", "INFO" and so on.
+ */
+ void setThreshold(const LevelPtr& threshold);
+
+ }; // class AppenderSkeleton
+} // namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+
+#endif //_LOG4CXX_APPENDER_SKELETON_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/asyncappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/asyncappender.h
new file mode 100644
index 0000000000..cbe9b3c754
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/asyncappender.h
@@ -0,0 +1,292 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_ASYNC_APPENDER_H
+#define _LOG4CXX_ASYNC_APPENDER_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/appenderskeleton.h>
+#include <log4cxx/helpers/appenderattachableimpl.h>
+#include <deque>
+#include <log4cxx/spi/loggingevent.h>
+#include <log4cxx/helpers/thread.h>
+#include <log4cxx/helpers/mutex.h>
+#include <log4cxx/helpers/condition.h>
+
+
+namespace log4cxx
+{
+
+ /**
+ The AsyncAppender lets users log events asynchronously. It uses a
+ bounded buffer to store logging events.
+
+ <p>The AsyncAppender will collect the events sent to it and then
+ dispatch them to all the appenders that are attached to it. You can
+ attach multiple appenders to an AsyncAppender.
+
+ <p>The AsyncAppender uses a separate thread to serve the events in
+ its bounded buffer.
+
+ <p><b>Important note:</b> The <code>AsyncAppender</code> can only
+ be script configured using the {@link xml::DOMConfigurator DOMConfigurator}.
+ */
+ class LOG4CXX_EXPORT AsyncAppender :
+ public virtual spi::AppenderAttachable,
+ public virtual AppenderSkeleton
+ {
+ public:
+ DECLARE_LOG4CXX_OBJECT(AsyncAppender)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(AsyncAppender)
+ LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton)
+ LOG4CXX_CAST_ENTRY(spi::AppenderAttachable)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Create new instance.
+ */
+ AsyncAppender();
+
+ /**
+ * Destructor.
+ */
+ virtual ~AsyncAppender();
+
+ void addRef() const;
+ void releaseRef() const;
+
+ /**
+ * Add appender.
+ *
+ * @param newAppender appender to add, may not be null.
+ */
+ void addAppender(const AppenderPtr& newAppender);
+
+ void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p);
+
+ /**
+ Close this <code>AsyncAppender</code> by interrupting the
+ dispatcher thread which will process all pending events before
+ exiting.
+ */
+ void close();
+
+ /**
+ * Get iterator over attached appenders.
+ * @return list of all attached appenders.
+ */
+ AppenderList getAllAppenders() const;
+
+ /**
+ * Get appender by name.
+ *
+ * @param name name, may not be null.
+ * @return matching appender or null.
+ */
+ AppenderPtr getAppender(const LogString& name) const;
+
+ /**
+ * Gets whether the location of the logging request call
+ * should be captured.
+ *
+ * @return the current value of the <b>LocationInfo</b> option.
+ */
+ bool getLocationInfo() const;
+ /**
+ * Determines if specified appender is attached.
+ * @param appender appender.
+ * @return true if attached.
+ */
+ bool isAttached(const AppenderPtr& appender) const;
+
+ virtual bool requiresLayout() const;
+
+ /**
+ * Removes and closes all attached appenders.
+ */
+ void removeAllAppenders();
+
+ /**
+ * Removes an appender.
+ * @param appender appender to remove.
+ */
+ void removeAppender(const AppenderPtr& appender);
+ /**
+ * Remove appender by name.
+ * @param name name.
+ */
+ void removeAppender(const LogString& name);
+
+ /**
+ * The <b>LocationInfo</b> attribute is provided for compatibility
+ * with log4j and has no effect on the log output.
+ * @param flag new value.
+ */
+ void setLocationInfo(bool flag);
+
+ /**
+ * The <b>BufferSize</b> option takes a non-negative integer value.
+ * This integer value determines the maximum size of the bounded
+ * buffer.
+ * */
+ void setBufferSize(int size);
+
+ /**
+ * Gets the current buffer size.
+ * @return the current value of the <b>BufferSize</b> option.
+ */
+ int getBufferSize() const;
+
+ /**
+ * Sets whether appender should wait if there is no
+ * space available in the event buffer or immediately return.
+ *
+ * @param value true if appender should wait until available space in buffer.
+ */
+ void setBlocking(bool value);
+
+ /**
+ * Gets whether appender should block calling thread when buffer is full.
+ * If false, messages will be counted by logger and a summary
+ * message appended after the contents of the buffer have been appended.
+ *
+ * @return true if calling thread will be blocked when buffer is full.
+ */
+ bool getBlocking() const;
+
+
+ /**
+ * Set appender properties by name.
+ * @param option property name.
+ * @param value property value.
+ */
+ void setOption(const LogString& option, const LogString& value);
+
+
+ private:
+ AsyncAppender(const AsyncAppender&);
+ AsyncAppender& operator=(const AsyncAppender&);
+ /**
+ * The default buffer size is set to 128 events.
+ */
+ enum { DEFAULT_BUFFER_SIZE = 128 };
+
+ /**
+ * Event buffer.
+ */
+ LOG4CXX_LIST_DEF(LoggingEventList, log4cxx::spi::LoggingEventPtr);
+ LoggingEventList buffer;
+
+ /**
+ * Mutex used to guard access to buffer and discardMap.
+ */
+ ::log4cxx::helpers::Mutex bufferMutex;
+ ::log4cxx::helpers::Condition bufferNotFull;
+ ::log4cxx::helpers::Condition bufferNotEmpty;
+
+ class DiscardSummary {
+ private:
+ /**
+ * First event of the highest severity.
+ */
+ ::log4cxx::spi::LoggingEventPtr maxEvent;
+
+ /**
+ * Total count of messages discarded.
+ */
+ int count;
+
+ public:
+ /**
+ * Create new instance.
+ *
+ * @param event event, may not be null.
+ */
+ DiscardSummary(const ::log4cxx::spi::LoggingEventPtr& event);
+ /** Copy constructor. */
+ DiscardSummary(const DiscardSummary& src);
+ /** Assignment operator. */
+ DiscardSummary& operator=(const DiscardSummary& src);
+
+ /**
+ * Add discarded event to summary.
+ *
+ * @param event event, may not be null.
+ */
+ void add(const ::log4cxx::spi::LoggingEventPtr& event);
+
+ /**
+ * Create event with summary information.
+ *
+ * @return new event.
+ */
+ ::log4cxx::spi::LoggingEventPtr createEvent(::log4cxx::helpers::Pool& p);
+ };
+
+ /**
+ * Map of DiscardSummary objects keyed by logger name.
+ */
+ typedef std::map<LogString, DiscardSummary> DiscardMap;
+ DiscardMap* discardMap;
+
+ /**
+ * Buffer size.
+ */
+ int bufferSize;
+
+ /**
+ * Nested appenders.
+ */
+ helpers::AppenderAttachableImplPtr appenders;
+
+ /**
+ * Dispatcher.
+ */
+ helpers::Thread dispatcher;
+
+ /**
+ * Should location info be included in dispatched messages.
+ */
+ bool locationInfo;
+
+ /**
+ * Does appender block when buffer is full.
+ */
+ bool blocking;
+
+ /**
+ * Dispatch routine.
+ */
+ static void* LOG4CXX_THREAD_FUNC dispatch(apr_thread_t* thread, void* data);
+
+ }; // class AsyncAppender
+ LOG4CXX_PTR_DEF(AsyncAppender);
+} // namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+
+#endif// _LOG4CXX_ASYNC_APPENDER_H
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/basicconfigurator.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/basicconfigurator.h
new file mode 100644
index 0000000000..3785139212
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/basicconfigurator.h
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_BASIC_CONFIGURATOR_H
+#define _LOG4CXX_BASIC_CONFIGURATOR_H
+
+#include <log4cxx/helpers/objectptr.h>
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/logger.h>
+#include <log4cxx/logstring.h>
+#include <log4cxx/spi/configurator.h>
+
+namespace log4cxx
+{
+ class Appender;
+ typedef helpers::ObjectPtrT<Appender> AppenderPtr;
+
+ /**
+ Use this class to quickly configure the package.
+ <p>For file based configuration see
+ PropertyConfigurator. For XML based configuration see
+ DOMConfigurator.
+ */
+ class LOG4CXX_EXPORT BasicConfigurator
+ {
+ protected:
+ BasicConfigurator() {}
+
+ public:
+ /**
+ Add a ConsoleAppender that uses PatternLayout
+ using the PatternLayout#TTCC_CONVERSION_PATTERN and
+ prints to <code>stdout</code> to the root logger.*/
+ static void configure();
+
+ /**
+ Add <code>appender</code> to the root logger.
+ @param appender The appender to add to the root logger.
+ */
+ static void configure(const AppenderPtr& appender);
+
+ /**
+ Reset the default hierarchy to its defaut. It is equivalent to
+ calling
+ <code>Logger::getDefaultHierarchy()->resetConfiguration()</code>.
+ See Hierarchy#resetConfiguration() for more details. */
+ static void resetConfiguration();
+ }; // class BasicConfigurator
+} // namespace log4cxx
+
+#endif //_LOG4CXX_BASIC_CONFIGURATOR_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/Makefile.am
new file mode 100644
index 0000000000..0d7a6cf9aa
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/Makefile.am
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+configincdir = $(includedir)/log4cxx/config
+configinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/config/*.h
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/Makefile.in
new file mode 100644
index 0000000000..7e056a435c
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/Makefile.in
@@ -0,0 +1,446 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = src/main/include/log4cxx/config
+DIST_COMMON = $(configinc_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \
+ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(configincdir)"
+configincHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(configinc_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+APR_LIBS = @APR_LIBS@
+APU_LIBS = @APU_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CFSTRING_API = @CFSTRING_API@
+CHARSET_EBCDIC = @CHARSET_EBCDIC@
+CHARSET_ISO88591 = @CHARSET_ISO88591@
+CHARSET_USASCII = @CHARSET_USASCII@
+CHARSET_UTF8 = @CHARSET_UTF8@
+CHAR_API = @CHAR_API@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_ODBC = @CPPFLAGS_ODBC@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOC_FALSE = @DOC_FALSE@
+DOC_TRUE = @DOC_TRUE@
+DOT = @DOT@
+DOXYGEN = @DOXYGEN@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HAS_FWIDE = @HAS_FWIDE@
+HAS_LIBESMTP = @HAS_LIBESMTP@
+HAS_MBSRTOWCS = @HAS_MBSRTOWCS@
+HAS_ODBC = @HAS_ODBC@
+HAS_STD_LOCALE = @HAS_STD_LOCALE@
+HAS_SYSLOG = @HAS_SYSLOG@
+HAS_WCHAR_T = @HAS_WCHAR_T@
+HAS_WCSTOMBS = @HAS_WCSTOMBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IODBC_CONFIG = @IODBC_CONFIG@
+LATEX_DOC_FALSE = @LATEX_DOC_FALSE@
+LATEX_DOC_TRUE = @LATEX_DOC_TRUE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBS_ODBC = @LIBS_ODBC@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@
+LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@
+LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@
+LTLIBOBJS = @LTLIBOBJS@
+LT_VERSION = @LT_VERSION@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+UNICHAR_API = @UNICHAR_API@
+VERSION = @VERSION@
+WCHAR_T_API = @WCHAR_T_API@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+base_dir = @base_dir@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+enable_dot = @enable_dot@
+enable_html_docs = @enable_html_docs@
+enable_latex_docs = @enable_latex_docs@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+manual_dest = @manual_dest@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+configincdir = $(includedir)/log4cxx/config
+configinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/config/*.h
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/config/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/main/include/log4cxx/config/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+install-configincHEADERS: $(configinc_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(configincdir)" || $(mkdir_p) "$(DESTDIR)$(configincdir)"
+ @list='$(configinc_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(configincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(configincdir)/$$f'"; \
+ $(configincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(configincdir)/$$f"; \
+ done
+
+uninstall-configincHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(configinc_HEADERS)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(configincdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(configincdir)/$$f"; \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/config
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(configincdir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-configincHEADERS
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-configincHEADERS uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool ctags distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am \
+ install-configincHEADERS install-data install-data-am \
+ install-exec install-exec-am install-info install-info-am \
+ install-man install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags uninstall uninstall-am \
+ uninstall-configincHEADERS uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/propertysetter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/propertysetter.h
new file mode 100644
index 0000000000..91dc48ce05
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/propertysetter.h
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_CONFIG_PROPERTYSETTER_H
+#define _LOG4CXX_CONFIG_PROPERTYSETTER_H
+
+#include <log4cxx/logstring.h>
+#include <log4cxx/helpers/objectptr.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class Object;
+ typedef ObjectPtrT<Object> ObjectPtr;
+
+ class Properties;
+ class Pool;
+ }
+
+ namespace config
+ {
+ /**
+ General purpose Object property setter. Clients repeatedly invokes
+ {@link #setProperty setProperty(name,value)} in order to invoke setters
+ on the Object specified in the constructor.
+
+ <p>Usage:
+ <pre>
+ PropertySetter ps(anObject);
+ ps.set("name", "Joe");
+ ps.set("age", "32");
+ ps.set("isMale", "true");
+ </pre>
+ will cause the invocations anObject->setOption("name", "Joe"),
+ anObject->setOption("age", "32") and anObject->setOption("isMale", "true")
+ if the spi::OptionHandler interface is supported by anObject.
+ */
+ class LOG4CXX_EXPORT PropertySetter
+ {
+ protected:
+ helpers::ObjectPtr obj;
+
+ public:
+ /**
+ Create a new PropertySetter for the specified Object. This is done
+ in prepartion for invoking #setProperty one or more times.
+
+ @param obj the object for which to set properties
+ */
+ PropertySetter(const helpers::ObjectPtr& obj);
+
+ /**
+ Set the properties of an object passed as a parameter in one
+ go. The <code>properties</code> are parsed relative to a
+ <code>prefix</code>.
+
+ @param obj The object to configure.
+ @param properties A java.util.Properties containing keys and values.
+ @param prefix Only keys having the specified prefix will be set.
+ @param p pool to use for any allocations required during call.
+ */
+ static void setProperties(const helpers::ObjectPtr& obj,
+ helpers::Properties& properties,
+ const LogString& prefix,
+ log4cxx::helpers::Pool& p);
+
+ /**
+ Set the properites for the object that match the
+ <code>prefix</code> passed as parameter.
+ */
+ void setProperties(helpers::Properties& properties,
+ const LogString& prefix,
+ log4cxx::helpers::Pool& p);
+
+ /**
+ Set a property on this PropertySetter's Object. If the underlying
+ Object supports the spi::OptionHandler interface, the
+ {@link spi::OptionHandler#setOption setOption} method is called.
+
+ @param option name of the property
+ @param value String value of the property
+ @param p pool to use for any allocations required during call.
+ */
+ void setProperty(const LogString& option,
+ const LogString& value,
+ log4cxx::helpers::Pool& p);
+
+ void activate(log4cxx::helpers::Pool& p);
+ }; // class PropertySetter
+ } // namespace config;
+} // namespace log4cxx
+
+#endif //_LOG4CXX_CONFIG_PROPERTYSETTER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config_msvc.h.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config_msvc.h.in
new file mode 100644
index 0000000000..a1c25acd64
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config_msvc.h.in
@@ -0,0 +1,69 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/* Name of package */
+#define PACKAGE "log4cxx"
+
+/* Version number of package */
+#define VERSION "@VERSION@"
+
+/* Define to 1 if you have the `ftime' function. */
+#define LOG4CXX_HAVE_FTIME 1
+
+/* ODBC support through Microsoft ODBC. */
+#define LOG4CXX_HAVE_MS_ODBC 1
+
+/* thread support through Microsoft threads. */
+#define LOG4CXX_HAVE_MS_THREAD 1
+
+/* ODBC support */
+#define LOG4CXX_HAVE_ODBC 1
+
+/* thread support */
+#define LOG4CXX_HAVE_THREAD 1
+
+typedef __int64 int64_t;
+
+#if defined(WIN32) || defined(_WIN32)
+#pragma warning(disable : 4250 4251 4786 4290)
+#endif
+
+#ifdef LOG4CXX_STATIC
+#define LOG4CXX_EXPORT
+// cf. file msvc/static/static.cpp
+#pragma comment(linker, "/include:?ForceSymbolReferences@@YAXXZ")
+#else // DLL
+#ifdef LOG4CXX
+ #define LOG4CXX_EXPORT __declspec(dllexport)
+#else
+ #define LOG4CXX_EXPORT __declspec(dllimport)
+#endif
+#endif
+
+#if !defined(LOG4CXX_HAVE_OLD_WIN32_INTERLOCKS)
+#if defined(_MSC_VER)
+#if _MSC_VER <= 1200
+#define LOG4CXX_HAVE_OLD_WIN32_INTERLOCKS 1
+#else
+#define LOG4CXX_HAVE_OLD_WIN32_INTERLOCKS 0
+#endif
+#else
+#define LOG4CXX_HAVE_OLD_WIN32_INTERLOCKS 0
+#endif
+#endif
+
+#define _WIN32_WINNT 0x0400
+
+#include <tchar.h>
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/consoleappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/consoleappender.h
new file mode 100644
index 0000000000..f77ac022c6
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/consoleappender.h
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_CONSOLE_APPENDER_H
+#define _LOG4CXX_CONSOLE_APPENDER_H
+
+#include <log4cxx/writerappender.h>
+
+namespace log4cxx
+{
+
+ /**
+ * ConsoleAppender appends log events to <code>stdout</code> or
+ * <code>stderr</code> using a layout specified by the user. The
+ * default target is <code>stdout</code>.
+ */
+ class LOG4CXX_EXPORT ConsoleAppender : public WriterAppender
+ {
+ private:
+ LogString target;
+
+ public:
+ DECLARE_LOG4CXX_OBJECT(ConsoleAppender)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(ConsoleAppender)
+ LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton)
+ END_LOG4CXX_CAST_MAP()
+
+ ConsoleAppender();
+ ConsoleAppender(const LayoutPtr& layout);
+ ConsoleAppender(const LayoutPtr& layout, const LogString& target);
+ ~ConsoleAppender();
+
+
+ /**
+ * Sets the value of the <b>target</b> property. Recognized values
+ * are "System.out" and "System.err". Any other value will be
+ * ignored.
+ * */
+ void setTarget(const LogString& value);
+
+ /**
+ * Returns the current value of the <b>target</b> property. The
+ * default value of the option is "System.out".
+ *
+ * See also #setTarget.
+ * */
+ LogString getTarget() const;
+
+ void activateOptions(log4cxx::helpers::Pool& p);
+ void setOption(const LogString& option, const LogString& value);
+ static const LogString& getSystemOut();
+ static const LogString& getSystemErr();
+
+
+ private:
+ void targetWarn(const LogString& val);
+ static log4cxx::helpers::WriterPtr createWriter(const LogString& target);
+
+ };
+ LOG4CXX_PTR_DEF(ConsoleAppender);
+} //namespace log4cxx
+
+#endif //_LOG4CXX_CONSOLE_APPENDER_H
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/dailyrollingfileappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/dailyrollingfileappender.h
new file mode 100644
index 0000000000..628a9978b6
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/dailyrollingfileappender.h
@@ -0,0 +1,203 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_DAILYROLLINGFILEAPPENDER_H
+#define _LOG4CXX_DAILYROLLINGFILEAPPENDER_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/appender.h>
+#include <log4cxx/fileappender.h>
+#include <log4cxx/spi/optionhandler.h>
+#include <log4cxx/rolling/rollingfileappenderskeleton.h>
+
+namespace log4cxx {
+ namespace helpers {
+ class Pool;
+ }
+
+ namespace spi {
+ class ErrorHandler;
+ typedef log4cxx::helpers::ObjectPtrT<ErrorHandler> ErrorHandlerPtr;
+ }
+
+
+/**
+ DailyRollingFileAppender extends {@link log4cxx::FileAppender FileAppender} so that the
+ underlying file is rolled over at a user chosen frequency.
+
+ <p>The rolling schedule is specified by the <b>DatePattern</b>
+ option. This pattern should follow the
+ {@link log4cxx::helpers::SimpleDateFormat SimpleDateFormat}
+ conventions. In particular, you <em>must</em> escape literal text
+ within a pair of single quotes. A formatted version of the date
+ pattern is used as the suffix for the rolled file name.
+
+ <p>For example, if the <b>File</b> option is set to
+ <code>/foo/bar.log</code> and the <b>DatePattern</b> set to
+ <code>'.'yyyy-MM-dd</code>, on 2001-02-16 at midnight, the logging
+ file <code>/foo/bar.log</code> will be copied to
+ <code>/foo/bar.log.2001-02-16</code> and logging for 2001-02-17
+ will continue in <code>/foo/bar.log</code> until it rolls over
+ the next day.
+
+ <p>Is is possible to specify monthly, weekly, half-daily, daily,
+ hourly, or minutely rollover schedules.
+
+ <p><table border="1" cellpadding="2">
+ <tr>
+ <th>DatePattern</th>
+ <th>Rollover schedule</th>
+ <th>Example</th>
+
+ <tr>
+ <td><code>'.'yyyy-MM</code>
+ <td>Rollover at the beginning of each month</td>
+
+ <td>At midnight of May 31st, 2002 <code>/foo/bar.log</code> will be
+ copied to <code>/foo/bar.log.2002-05</code>. Logging for the month
+ of June will be output to <code>/foo/bar.log</code> until it is
+ also rolled over the next month.
+
+ <tr>
+ <td><code>'.'yyyy-ww</code>
+
+ <td>Rollover at the first day of each week. The first day of the
+ week depends on the locale.</td>
+
+ <td>Assuming the first day of the week is Sunday, on Saturday
+ midnight, June 9th 2002, the file <i>/foo/bar.log</i> will be
+ copied to <i>/foo/bar.log.2002-23</i>. Logging for the 24th week
+ of 2002 will be output to <code>/foo/bar.log</code> until it is
+ rolled over the next week.
+
+ <tr>
+ <td><code>'.'yyyy-MM-dd</code>
+
+ <td>Rollover at midnight each day.</td>
+
+ <td>At midnight, on March 8th, 2002, <code>/foo/bar.log</code> will
+ be copied to <code>/foo/bar.log.2002-03-08</code>. Logging for the
+ 9th day of March will be output to <code>/foo/bar.log</code> until
+ it is rolled over the next day.
+
+ <tr>
+ <td><code>'.'yyyy-MM-dd-a</code>
+
+ <td>Rollover at midnight and midday of each day.</td>
+
+ <td>At noon, on March 9th, 2002, <code>/foo/bar.log</code> will be
+ copied to <code>/foo/bar.log.2002-03-09-AM</code>. Logging for the
+ afternoon of the 9th will be output to <code>/foo/bar.log</code>
+ until it is rolled over at midnight.
+
+ <tr>
+ <td><code>'.'yyyy-MM-dd-HH</code>
+
+ <td>Rollover at the top of every hour.</td>
+
+ <td>At approximately 11:00.000 o'clock on March 9th, 2002,
+ <code>/foo/bar.log</code> will be copied to
+ <code>/foo/bar.log.2002-03-09-10</code>. Logging for the 11th hour
+ of the 9th of March will be output to <code>/foo/bar.log</code>
+ until it is rolled over at the beginning of the next hour.
+
+
+ <tr>
+ <td><code>'.'yyyy-MM-dd-HH-mm</code>
+
+ <td>Rollover at the beginning of every minute.</td>
+
+ <td>At approximately 11:23,000, on March 9th, 2001,
+ <code>/foo/bar.log</code> will be copied to
+ <code>/foo/bar.log.2001-03-09-10-22</code>. Logging for the minute
+ of 11:23 (9th of March) will be output to
+ <code>/foo/bar.log</code> until it is rolled over the next minute.
+
+ </table>
+
+ <p>Do not use the colon ":" character in anywhere in the
+ <b>DatePattern</b> option. The text before the colon is interpeted
+ as the protocol specificaion of a URL which is probably not what
+ you want.
+*/
+
+ class LOG4CXX_EXPORT DailyRollingFileAppender : public log4cxx::rolling::RollingFileAppenderSkeleton {
+ DECLARE_LOG4CXX_OBJECT(DailyRollingFileAppender)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(DailyRollingFileAppender)
+ LOG4CXX_CAST_ENTRY_CHAIN(FileAppender)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ The date pattern used to initiate rollover.
+ */
+ LogString datePattern;
+
+
+public:
+ /**
+ The default constructor simply calls its {@link
+ FileAppender#FileAppender parents constructor}. */
+ DailyRollingFileAppender();
+
+ /**
+ Instantiate a DailyRollingFileAppender and open the file designated by
+ <code>filename</code>. The opened filename will become the ouput
+ destination for this appender.
+
+ */
+ DailyRollingFileAppender(
+ const LayoutPtr& layout,
+ const LogString& filename,
+ const LogString& datePattern);
+
+
+ /**
+ The <b>DatePattern</b> takes a string in the same format as
+ expected by {@link log4cxx::helpers::SimpleDateFormat SimpleDateFormat}. This options determines the
+ rollover schedule.
+ */
+ void setDatePattern(const LogString& pattern);
+
+ /** Returns the value of the <b>DatePattern</b> option. */
+ LogString getDatePattern();
+
+ void setOption(const LogString& option,
+ const LogString& value);
+
+ /**
+ * Prepares DailyRollingFileAppender for use.
+ */
+ void activateOptions(log4cxx::helpers::Pool&);
+
+};
+
+LOG4CXX_PTR_DEF(DailyRollingFileAppender);
+
+}
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/Makefile.am
new file mode 100644
index 0000000000..7f9677ee5d
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/Makefile.am
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+dbincdir = $(includedir)/log4cxx/db
+dbinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/db/*.h
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/Makefile.in
new file mode 100644
index 0000000000..853f4cf941
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/Makefile.in
@@ -0,0 +1,446 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = src/main/include/log4cxx/db
+DIST_COMMON = $(dbinc_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \
+ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(dbincdir)"
+dbincHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(dbinc_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+APR_LIBS = @APR_LIBS@
+APU_LIBS = @APU_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CFSTRING_API = @CFSTRING_API@
+CHARSET_EBCDIC = @CHARSET_EBCDIC@
+CHARSET_ISO88591 = @CHARSET_ISO88591@
+CHARSET_USASCII = @CHARSET_USASCII@
+CHARSET_UTF8 = @CHARSET_UTF8@
+CHAR_API = @CHAR_API@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_ODBC = @CPPFLAGS_ODBC@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOC_FALSE = @DOC_FALSE@
+DOC_TRUE = @DOC_TRUE@
+DOT = @DOT@
+DOXYGEN = @DOXYGEN@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HAS_FWIDE = @HAS_FWIDE@
+HAS_LIBESMTP = @HAS_LIBESMTP@
+HAS_MBSRTOWCS = @HAS_MBSRTOWCS@
+HAS_ODBC = @HAS_ODBC@
+HAS_STD_LOCALE = @HAS_STD_LOCALE@
+HAS_SYSLOG = @HAS_SYSLOG@
+HAS_WCHAR_T = @HAS_WCHAR_T@
+HAS_WCSTOMBS = @HAS_WCSTOMBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IODBC_CONFIG = @IODBC_CONFIG@
+LATEX_DOC_FALSE = @LATEX_DOC_FALSE@
+LATEX_DOC_TRUE = @LATEX_DOC_TRUE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBS_ODBC = @LIBS_ODBC@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@
+LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@
+LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@
+LTLIBOBJS = @LTLIBOBJS@
+LT_VERSION = @LT_VERSION@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+UNICHAR_API = @UNICHAR_API@
+VERSION = @VERSION@
+WCHAR_T_API = @WCHAR_T_API@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+base_dir = @base_dir@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+enable_dot = @enable_dot@
+enable_html_docs = @enable_html_docs@
+enable_latex_docs = @enable_latex_docs@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+manual_dest = @manual_dest@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+dbincdir = $(includedir)/log4cxx/db
+dbinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/db/*.h
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/db/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/main/include/log4cxx/db/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+install-dbincHEADERS: $(dbinc_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(dbincdir)" || $(mkdir_p) "$(DESTDIR)$(dbincdir)"
+ @list='$(dbinc_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(dbincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(dbincdir)/$$f'"; \
+ $(dbincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(dbincdir)/$$f"; \
+ done
+
+uninstall-dbincHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dbinc_HEADERS)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(dbincdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(dbincdir)/$$f"; \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/db
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(dbincdir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-dbincHEADERS
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-dbincHEADERS uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool ctags distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dbincHEADERS install-exec \
+ install-exec-am install-info install-info-am install-man \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-dbincHEADERS \
+ uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/odbcappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/odbcappender.h
new file mode 100644
index 0000000000..0d278e26a6
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/odbcappender.h
@@ -0,0 +1,292 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_DB_ODBC_APPENDER_H
+#define _LOG4CXX_DB_ODBC_APPENDER_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/log4cxx.h>
+
+#include <log4cxx/helpers/exception.h>
+#include <log4cxx/appenderskeleton.h>
+#include <log4cxx/spi/loggingevent.h>
+#include <list>
+
+namespace log4cxx
+{
+ namespace db
+ {
+ class LOG4CXX_EXPORT SQLException : public log4cxx::helpers::Exception {
+ public:
+ SQLException(short fHandleType,
+ void* hInput, const char* prolog,
+ log4cxx::helpers::Pool& p);
+ SQLException(const char* msg);
+ SQLException(const SQLException& src);
+ private:
+ const char* formatMessage(short fHandleType,
+ void* hInput, const char* prolog,
+ log4cxx::helpers::Pool& p);
+ };
+
+ /**
+ <p><b>WARNING: This version of ODBCAppender
+ is very likely to be completely replaced in the future. Moreoever,
+ it does not log exceptions.</b> </p>
+
+ The ODBCAppender provides for sending log events to a database.
+
+
+ <p>Each append call adds to an <code>ArrayList</code> buffer. When
+ the buffer is filled each log event is placed in a sql statement
+ (configurable) and executed.
+
+ <b>BufferSize</b>, <b>db URL</b>, <b>User</b>, & <b>Password</b> are
+ configurable options in the standard log4j ways.
+
+ <p>The <code>setSql(String sql)</code> sets the SQL statement to be
+ used for logging -- this statement is sent to a
+ <code>PatternLayout</code> (either created automaticly by the
+ appender or added by the user). Therefore by default all the
+ conversion patterns in <code>PatternLayout</code> can be used
+ inside of the statement. (see the test cases for examples)
+
+ <p>Overriding the {@link #getLogStatement} method allows more
+ explicit control of the statement used for logging.
+
+ <p>For use as a base class:
+
+ <ul>
+
+ <li>Override getConnection() to pass any connection
+ you want. Typically this is used to enable application wide
+ connection pooling.
+
+ <li>Override closeConnection -- if
+ you override getConnection make sure to implement
+ <code>closeConnection</code> to handle the connection you
+ generated. Typically this would return the connection to the
+ pool it came from.
+
+ <li>Override getLogStatement to
+ produce specialized or dynamic statements. The default uses the
+ sql option value.
+
+ </ul>
+ */
+
+ class LOG4CXX_EXPORT ODBCAppender : public AppenderSkeleton
+ {
+ protected:
+ /**
+ * URL of the DB for default connection handling
+ */
+ LogString databaseURL;
+
+ /**
+ * User to connect as for default connection handling
+ */
+ LogString databaseUser;
+
+ /**
+ * User to use for default connection handling
+ */
+ LogString databasePassword;
+
+ typedef void* SQLHDBC;
+ typedef void* SQLHENV;
+ typedef void* SQLHANDLE;
+ typedef short SQLSMALLINT;
+
+ /**
+ * Connection used by default. The connection is opened the first time it
+ * is needed and then held open until the appender is closed (usually at
+ * garbage collection). This behavior is best modified by creating a
+ * sub-class and overriding the <code>getConnection</code> and
+ * <code>closeConnection</code> methods.
+ */
+ SQLHDBC connection;
+ SQLHENV env;
+
+ /**
+ * Stores the string given to the pattern layout for conversion into a SQL
+ * statement, eg: insert into LogTable (Thread, File, Message) values
+ * ("%t", "%F", "%m")
+ *
+ * Be careful of quotes in your messages!
+ *
+ * Also see PatternLayout.
+ */
+ LogString sqlStatement;
+
+ /**
+ * size of LoggingEvent buffer before writing to the database.
+ * Default is 1.
+ */
+ size_t bufferSize;
+
+ /**
+ * ArrayList holding the buffer of Logging Events.
+ */
+ std::list<spi::LoggingEventPtr> buffer;
+
+ public:
+ DECLARE_LOG4CXX_OBJECT(ODBCAppender)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(ODBCAppender)
+ LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton)
+ END_LOG4CXX_CAST_MAP()
+
+ ODBCAppender();
+ virtual ~ODBCAppender();
+
+ /**
+ Set options
+ */
+ virtual void setOption(const LogString& option, const LogString& value);
+
+ /**
+ Activate the specified options.
+ */
+ virtual void activateOptions(log4cxx::helpers::Pool& p);
+
+ /**
+ * Adds the event to the buffer. When full the buffer is flushed.
+ */
+ void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool&);
+
+ /**
+ * By default getLogStatement sends the event to the required Layout object.
+ * The layout will format the given pattern into a workable SQL string.
+ *
+ * Overriding this provides direct access to the LoggingEvent
+ * when constructing the logging statement.
+ *
+ */
+ protected:
+ LogString getLogStatement(const spi::LoggingEventPtr& event,
+ helpers::Pool& p) const;
+
+ /**
+ *
+ * Override this to provide an alertnate method of getting
+ * connections (such as caching). One method to fix this is to open
+ * connections at the start of flushBuffer() and close them at the
+ * end. I use a connection pool outside of ODBCAppender which is
+ * accessed in an override of this method.
+ * */
+ virtual void execute(const LogString& sql,
+ log4cxx::helpers::Pool& p) /*throw(SQLException)*/;
+
+ /**
+ * Override this to return the connection to a pool, or to clean up the
+ * resource.
+ *
+ * The default behavior holds a single connection open until the appender
+ * is closed (typically when garbage collected).
+ */
+ virtual void closeConnection(SQLHDBC con);
+
+ /**
+ * Override this to link with your connection pooling system.
+ *
+ * By default this creates a single connection which is held open
+ * until the object is garbage collected.
+ */
+ virtual SQLHDBC getConnection(log4cxx::helpers::Pool& p) /*throw(SQLException)*/;
+
+ /**
+ * Closes the appender, flushing the buffer first then closing the default
+ * connection if it is open.
+ */
+ public:
+ virtual void close();
+
+ /**
+ * loops through the buffer of LoggingEvents, gets a
+ * sql string from getLogStatement() and sends it to execute().
+ * Errors are sent to the errorHandler.
+ *
+ * If a statement fails the LoggingEvent stays in the buffer!
+ */
+ virtual void flushBuffer(log4cxx::helpers::Pool& p);
+
+ /**
+ * ODBCAppender requires a layout.
+ * */
+ virtual bool requiresLayout() const
+ { return true; }
+
+ /**
+ * Set pre-formated statement eg: insert into LogTable (msg) values ("%m")
+ */
+ void setSql(const LogString& s);
+
+ /**
+ * Returns pre-formated statement eg: insert into LogTable (msg) values ("%m")
+ */
+ inline const LogString& getSql() const
+ { return sqlStatement; }
+
+
+ inline void setUser(const LogString& user)
+ { databaseUser = user; }
+
+
+ inline void setURL(const LogString& url)
+ { databaseURL = url; }
+
+
+ inline void setPassword(const LogString& password)
+ { databasePassword = password; }
+
+
+ inline void setBufferSize(size_t newBufferSize)
+ { bufferSize = newBufferSize; }
+
+ inline const LogString& getUser() const
+ { return databaseUser; }
+
+
+ inline const LogString& getURL() const
+ { return databaseURL; }
+
+
+ inline const LogString& getPassword() const
+ { return databasePassword; }
+
+ inline size_t getBufferSize() const
+ { return bufferSize; }
+ private:
+ ODBCAppender(const ODBCAppender&);
+ ODBCAppender& operator=(const ODBCAppender&);
+ }; // class ODBCAppender
+ LOG4CXX_PTR_DEF(ODBCAppender);
+
+ } // namespace db
+} // namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+#endif // _LOG4CXX_DB_ODBC_APPENDER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/defaultconfigurator.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/defaultconfigurator.h
new file mode 100644
index 0000000000..c88d33730c
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/defaultconfigurator.h
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_DEFAULT_CONFIGURATOR_H
+#define _LOG4CXX_DEFAULT_CONFIGURATOR_H
+
+#include <log4cxx/spi/configurator.h>
+
+namespace log4cxx
+{
+ namespace spi {
+ class LoggerRepository;
+ typedef helpers::ObjectPtrT<LoggerRepository> LoggerRepositoryPtr;
+ }
+
+ /**
+ * Configures the repository from environmental settings and files.
+ *
+ */
+ class LOG4CXX_EXPORT DefaultConfigurator
+ {
+ private:
+ DefaultConfigurator() {}
+
+ public:
+ /**
+ Add a ConsoleAppender that uses PatternLayout
+ using the PatternLayout#TTCC_CONVERSION_PATTERN and
+ prints to <code>stdout</code> to the root logger.*/
+ static void configure(log4cxx::spi::LoggerRepository*);
+
+ private:
+ static const LogString getConfigurationFileName();
+ static const LogString getConfiguratorClass();
+
+
+
+ }; // class DefaultConfigurator
+} // namespace log4cxx
+
+#endif //_LOG4CXX_DEFAULT_CONFIGURATOR_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/defaultloggerfactory.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/defaultloggerfactory.h
new file mode 100644
index 0000000000..3f3c6744a5
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/defaultloggerfactory.h
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_DEFAULT_LOGGER_FACTORY_H
+#define _LOG4CXX_DEFAULT_LOGGER_FACTORY_H
+
+#include <log4cxx/spi/loggerfactory.h>
+#include <log4cxx/helpers/objectimpl.h>
+
+namespace log4cxx
+{
+ class Logger;
+ typedef helpers::ObjectPtrT<Logger> LoggerPtr;
+
+ class LOG4CXX_EXPORT DefaultLoggerFactory :
+ public virtual spi::LoggerFactory,
+ public virtual helpers::ObjectImpl
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(DefaultLoggerFactory)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(spi::LoggerFactory)
+ END_LOG4CXX_CAST_MAP()
+
+ virtual LoggerPtr makeNewLoggerInstance(
+ log4cxx::helpers::Pool& pool,
+ const LogString& name) const;
+ };
+} // namespace log4cxx
+
+#endif //_LOG4CXX_DEFAULT_LOGGER_FACTORY_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/file.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/file.h
new file mode 100644
index 0000000000..a7629499e7
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/file.h
@@ -0,0 +1,188 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_FILE_H
+#define _LOG4CXX_FILE_H
+
+#include <log4cxx/logger.h>
+#include <log4cxx/logstring.h>
+
+extern "C" {
+struct apr_file_t;
+struct apr_finfo_t;
+}
+
+namespace log4cxx
+{
+ namespace helpers {
+ class Transcoder;
+ class Pool;
+ }
+
+ /**
+ * An abstract representation of file and directory path names.
+ */
+ class LOG4CXX_EXPORT File
+ {
+ public:
+ /**
+ * Construct a new instance.
+ */
+ File();
+ /**
+ * Construct a new instance. Use setPath to specify path using a LogString.
+ * @param path file path in local encoding.
+ */
+ File(const char* path);
+ /**
+ * Construct a new instance. Use setPath to specify path using a LogString.
+ * @param path file path in current encoding.
+ */
+ File(const std::string& path);
+#if LOG4CXX_WCHAR_T_API
+ /**
+ * Construct a new instance. Use setPath to specify path using a LogString.
+ * @param path file path.
+ */
+ File(const wchar_t* path);
+ /**
+ * Construct a new instance. Use setPath to specify path using a LogString.
+ * @param path file path.
+ */
+ File(const std::wstring& path);
+#endif
+#if LOG4CXX_UNICHAR_API
+ /**
+ * Construct a new instance. Use setPath to specify path using a LogString.
+ * @param path file path.
+ */
+ File(const UniChar* path);
+ /**
+ * Construct a new instance. Use setPath to specify path using a LogString.
+ * @param path file path.
+ */
+ File(const std::basic_string<UniChar>& path);
+#endif
+#if LOG4CXX_CFSTRING_API
+ /**
+ * Construct a new instance. Use setPath to specify path using a LogString.
+ * @param path file path.
+ */
+ File(const CFStringRef& path);
+#endif
+ /**
+ * Copy constructor.
+ */
+ File(const File& src);
+ /**
+ * Assignment operator.
+ */
+ File& operator=(const File& src);
+ /**
+ * Destructor.
+ */
+ ~File();
+
+ /**
+ * Determines if file exists.
+ * @param p pool.
+ * @return true if file exists.
+ */
+ bool exists(log4cxx::helpers::Pool& p) const;
+ /**
+ * Determines length of file. May not be accurate if file is current open.
+ * @param p pool.
+ * @return length of file.
+ */
+ size_t length(log4cxx::helpers::Pool& p) const;
+ /**
+ * Determines last modification date.
+ * @param p pool.
+ * @return length of file.
+ */
+ log4cxx_time_t lastModified(log4cxx::helpers::Pool& p) const;
+ /**
+ * Get final portion of file path.
+ * @return file name.
+ */
+ LogString getName() const;
+ /**
+ * Get file path.
+ * @return file path.
+ */
+ LogString getPath() const;
+ /**
+ * Set file path
+ */
+ File& setPath(const LogString&);
+
+ /**
+ * Open file. See apr_file_open for details.
+ * @param file APR file handle.
+ * @param flags flags.
+ * @param perm permissions.
+ * @param p pool.
+ * @return APR_SUCCESS if successful.
+ */
+ log4cxx_status_t open(apr_file_t** file, int flags,
+ int perm, log4cxx::helpers::Pool& p) const;
+
+ /**
+ * List files if current file is a directory.
+ * @param p pool.
+ * @return list of files in this directory, operation of non-directory returns empty list.
+ */
+ std::vector<LogString> list(log4cxx::helpers::Pool& p) const;
+
+ /**
+ * Delete file.
+ * @param p pool.
+ * @return true if file successfully deleted.
+ */
+ bool deleteFile(log4cxx::helpers::Pool& p) const;
+ /**
+ * Rename file.
+ * @param dest new path for file.
+ * @param p pool.
+ * @return true if file successfully renamed.
+ */
+ bool renameTo(const File& dest, log4cxx::helpers::Pool& p) const;
+
+ /**
+ * Get path of parent directory.
+ * @param p pool.
+ * @return path of parent directory.
+ */
+ LogString getParent(log4cxx::helpers::Pool& p) const;
+ /**
+ * Make directories recursively.
+ * @param p pool.
+ * @return true if all requested directories existed or have been created.
+ */
+ bool mkdirs(log4cxx::helpers::Pool& p) const;
+
+ private:
+ LogString path;
+ static char* convertBackSlashes(char*);
+ char* getPath(log4cxx::helpers::Pool& p) const;
+ };
+} // namespace log4cxx
+
+
+#define LOG4CXX_FILE(name) log4cxx::File(name)
+
+#endif // _LOG4CXX_FILE_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/fileappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/fileappender.h
new file mode 100644
index 0000000000..d0491dbe28
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/fileappender.h
@@ -0,0 +1,223 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_FILE_APPENDER_H
+#define _LOG4CXX_FILE_APPENDER_H
+
+#include <log4cxx/logger.h>
+#include <log4cxx/logstring.h>
+#include <log4cxx/writerappender.h>
+#include <log4cxx/file.h>
+#include <log4cxx/helpers/pool.h>
+
+namespace log4cxx
+{
+ namespace helpers {
+ class Pool;
+ }
+
+ /**
+ * FileAppender appends log events to a file.
+ *
+ * <p>Support for <code>java.io.Writer</code> and console appending
+ * has been deprecated and then removed. See the replacement
+ * solutions: WriterAppender and ConsoleAppender.
+ */
+ class LOG4CXX_EXPORT FileAppender : public WriterAppender
+ {
+ protected:
+ /** Append to or truncate the file? The default value for this
+ variable is <code>true</code>, meaning that by default a
+ <code>FileAppender</code> will append to an existing file and
+ not truncate it.
+ <p>This option is meaningful only if the FileAppender opens the
+ file.
+ */
+ bool fileAppend;
+
+ /**
+ The name of the log file. */
+ LogString fileName;
+
+ /**
+ Do we do bufferedIO? */
+ bool bufferedIO;
+
+ /**
+ How big should the IO buffer be? Default is 8K. */
+ int bufferSize;
+
+ public:
+ DECLARE_LOG4CXX_OBJECT(FileAppender)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(FileAppender)
+ LOG4CXX_CAST_ENTRY_CHAIN(WriterAppender)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ The default constructor does not do anything.
+ */
+ FileAppender();
+
+ /**
+ Instantiate a <code>FileAppender</code> and open the file
+ designated by <code>filename</code>. The opened filename will
+ become the output destination for this appender.
+
+ <p>If the <code>append</code> parameter is true, the file will be
+ appended to. Otherwise, the file designated by
+ <code>filename</code> will be truncated before being opened.
+
+ <p>If the <code>bufferedIO</code> parameter is <code>true</code>,
+ then buffered IO will be used to write to the output file.
+
+ */
+ FileAppender(const LayoutPtr& layout, const LogString& filename, bool append,
+ bool bufferedIO, int bufferSize);
+
+ /**
+ Instantiate a FileAppender and open the file designated by
+ <code>filename</code>. The opened filename will become the output
+ destination for this appender.
+
+ <p>If the <code>append</code> parameter is true, the file will be
+ appended to. Otherwise, the file designated by
+ <code>filename</code> will be truncated before being opened.
+ */
+ FileAppender(const LayoutPtr& layout, const LogString& filename, bool append);
+
+ /**
+ Instantiate a FileAppender and open the file designated by
+ <code>filename</code>. The opened filename will become the output
+ destination for this appender.
+
+ <p>The file will be appended to. */
+ FileAppender(const LayoutPtr& layout, const LogString& filename);
+
+ ~FileAppender();
+
+ /**
+ The <b>File</b> property takes a string value which should be the
+ name of the file to append to.
+
+ <p><b>Note that the special values
+ "System.out" or "System.err" are no longer honored.</b>
+
+ <p>Note: Actual opening of the file is made when
+ #activateOptions is called, not when the options are set. */
+ virtual void setFile(const LogString& file);
+
+ /**
+ Sets and <i>opens</i> the file where the log output will
+ go. The specified file must be writable.
+
+ <p>If there was already an opened file, then the previous file
+ is closed first.
+
+ <p><b>Do not use this method directly. To configure a FileAppender
+ or one of its subclasses, set its properties one by one and then
+ call activateOptions.</b>
+
+ @param file The path to the log file.
+ @param append If true will append to fileName. Otherwise will
+ truncate fileName.
+ @param bufferedIO Do we do bufferedIO?
+ @param bufferSize How big should the IO buffer be?
+ @param p memory pool for operation.
+ */
+ virtual void setFile(const LogString& file, bool append,
+ bool bufferedIO, size_t bufferSize,
+ log4cxx::helpers::Pool& p);
+
+ /**
+ Returns the value of the <b>Append</b> option.
+ */
+ inline bool getAppend() const { return fileAppend; }
+
+ /** Returns the value of the <b>File</b> option. */
+ inline LogString getFile() const { return fileName; }
+
+ /**
+ <p>Sets and <i>opens</i> the file where the log output will
+ go. The specified file must be writable.
+
+ <p>If there was already an opened file, then the previous file
+ is closed first.*/
+ void activateOptions(log4cxx::helpers::Pool& p);
+ void setOption(const LogString& option,
+ const LogString& value);
+
+ /**
+ Get the value of the <b>BufferedIO</b> option.
+
+ <p>BufferedIO will significatnly increase performance on heavily
+ loaded systems.
+
+ */
+ inline bool getBufferedIO() const { return bufferedIO; }
+
+ /**
+ Get the size of the IO buffer.
+ */
+ inline int getBufferSize() const { return bufferSize; }
+
+ /**
+ The <b>Append</b> option takes a boolean value. It is set to
+ <code>true</code> by default. If true, then <code>File</code>
+ will be opened in append mode by #setFile (see
+ above). Otherwise, setFile will open
+ <code>File</code> in truncate mode.
+
+ <p>Note: Actual opening of the file is made when
+ #activateOptions is called, not when the options are set.
+ */
+ void setAppend(bool fileAppend1);
+
+ /**
+ The <b>BufferedIO</b> option takes a boolean value. It is set to
+ <code>false</code> by default. If true, then <code>File</code>
+ will be opened in buffered mode.
+
+ BufferedIO will significantly increase performance on heavily
+ loaded systems.
+
+ */
+ void setBufferedIO(bool bufferedIO);
+
+ /**
+ Set the size of the IO buffer.
+ */
+ void setBufferSize(int bufferSize1) { this->bufferSize = bufferSize1; }
+
+ /**
+ * Replaces double backslashes with single backslashes
+ * for compatibility with paths from earlier XML configurations files.
+ * @param name file name
+ * @return corrected file name
+ */
+ static LogString stripDuplicateBackslashes(const LogString& name);
+
+ private:
+ FileAppender(const FileAppender&);
+ FileAppender& operator=(const FileAppender&);
+
+ }; // class FileAppender
+ LOG4CXX_PTR_DEF(FileAppender);
+
+} // namespace log4cxx
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/Makefile.am
new file mode 100644
index 0000000000..7dd7d8478d
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/Makefile.am
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+filterincdir = $(includedir)/log4cxx/filter
+filterinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/filter/*.h
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/Makefile.in
new file mode 100644
index 0000000000..2b7653c4da
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/Makefile.in
@@ -0,0 +1,446 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = src/main/include/log4cxx/filter
+DIST_COMMON = $(filterinc_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \
+ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(filterincdir)"
+filterincHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(filterinc_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+APR_LIBS = @APR_LIBS@
+APU_LIBS = @APU_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CFSTRING_API = @CFSTRING_API@
+CHARSET_EBCDIC = @CHARSET_EBCDIC@
+CHARSET_ISO88591 = @CHARSET_ISO88591@
+CHARSET_USASCII = @CHARSET_USASCII@
+CHARSET_UTF8 = @CHARSET_UTF8@
+CHAR_API = @CHAR_API@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_ODBC = @CPPFLAGS_ODBC@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOC_FALSE = @DOC_FALSE@
+DOC_TRUE = @DOC_TRUE@
+DOT = @DOT@
+DOXYGEN = @DOXYGEN@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HAS_FWIDE = @HAS_FWIDE@
+HAS_LIBESMTP = @HAS_LIBESMTP@
+HAS_MBSRTOWCS = @HAS_MBSRTOWCS@
+HAS_ODBC = @HAS_ODBC@
+HAS_STD_LOCALE = @HAS_STD_LOCALE@
+HAS_SYSLOG = @HAS_SYSLOG@
+HAS_WCHAR_T = @HAS_WCHAR_T@
+HAS_WCSTOMBS = @HAS_WCSTOMBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IODBC_CONFIG = @IODBC_CONFIG@
+LATEX_DOC_FALSE = @LATEX_DOC_FALSE@
+LATEX_DOC_TRUE = @LATEX_DOC_TRUE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBS_ODBC = @LIBS_ODBC@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@
+LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@
+LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@
+LTLIBOBJS = @LTLIBOBJS@
+LT_VERSION = @LT_VERSION@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+UNICHAR_API = @UNICHAR_API@
+VERSION = @VERSION@
+WCHAR_T_API = @WCHAR_T_API@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+base_dir = @base_dir@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+enable_dot = @enable_dot@
+enable_html_docs = @enable_html_docs@
+enable_latex_docs = @enable_latex_docs@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+manual_dest = @manual_dest@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+filterincdir = $(includedir)/log4cxx/filter
+filterinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/filter/*.h
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/filter/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/main/include/log4cxx/filter/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+install-filterincHEADERS: $(filterinc_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(filterincdir)" || $(mkdir_p) "$(DESTDIR)$(filterincdir)"
+ @list='$(filterinc_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(filterincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(filterincdir)/$$f'"; \
+ $(filterincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(filterincdir)/$$f"; \
+ done
+
+uninstall-filterincHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(filterinc_HEADERS)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(filterincdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(filterincdir)/$$f"; \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/filter
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(filterincdir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-filterincHEADERS
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-filterincHEADERS uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool ctags distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-exec install-exec-am \
+ install-filterincHEADERS install-info install-info-am \
+ install-man install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags uninstall uninstall-am \
+ uninstall-filterincHEADERS uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/andfilter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/andfilter.h
new file mode 100644
index 0000000000..3bc58a0325
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/andfilter.h
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_FILTER_ANDFILTER_H
+#define _LOG4CXX_FILTER_ANDFILTER_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/spi/filter.h>
+
+namespace log4cxx
+{
+ namespace filter
+ {
+
+/**
+ * A filter that 'and's the results of any number of contained filters together.
+ *
+ * For the filter to process events, all contained filters must return Filter::ACCEPT.
+ *
+ * If the contained filters do not return Filter::ACCEPT, Filter::NEUTRAL is returned.
+ *
+ * If acceptOnMatch is set to true, Filter::ACCEPT is returned.
+ * If acceptOnMatch is set to false, Filter::DENY is returned.
+ *
+ * Here is an example config that will accept only events that contain BOTH
+ * a DEBUG level AND 'test' in the message:
+ *
+ *&lt;appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"&gt;
+ * &lt;filter class="org.apache.log4j.filter.AndFilter"&gt;
+ * &lt;filter class="org.apache.log4j.filter.LevelMatchFilter"&gt;
+ * &lt;param name="levelToMatch" value="DEBUG" /&gt;
+ * &lt;param name="acceptOnMatch" value="true" /&gt;
+ * &lt;/filter>
+ * &lt;filter class="org.apache.log4j.filter.StringMatchFilter"&gt;
+ * &lt;param name="stringToMatch" value="test" /&gt;
+ * &lt;param name="acceptOnMatch" value="true" /&gt;
+ * &lt;/filter>
+ * &lt;param name="acceptOnMatch" value="false"/&gt;
+ * &lt;/filter&gt;
+ * &lt;filter class="org.apache.log4j.filter.DenyAllFilter"/&gt;
+ *&lt;layout class="org.apache.log4j.SimpleLayout"/&gt;
+ *&lt;/appender&gt;
+ *
+ * To accept all events EXCEPT those events that contain a
+ * DEBUG level and 'test' in the message:
+ * change the AndFilter's acceptOnMatch param to false and remove the DenyAllFilter
+ *
+ * NOTE: If you are defining a filter that is only relying on logging event content
+ * (no external or filter-managed state), you could opt instead
+ * to use an ExpressionFilter with one of the following expressions:
+ *
+ * LEVEL == DEBUG && MSG ~= 'test'
+ * or
+ * ! ( LEVEL == DEBUG && MSG ~= 'test' )
+ *
+ *
+ */
+ class LOG4CXX_EXPORT AndFilter:public log4cxx::spi::Filter
+ {
+ private:
+ log4cxx::spi::FilterPtr headFilter;
+ log4cxx::spi::FilterPtr tailFilter;
+ bool acceptOnMatch;
+ AndFilter(const AndFilter &);
+ AndFilter & operator=(const AndFilter &);
+
+
+ public:
+ DECLARE_LOG4CXX_OBJECT(AndFilter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(log4cxx::spi::Filter)
+ END_LOG4CXX_CAST_MAP()
+
+ AndFilter();
+
+ void addFilter(const log4cxx::spi::FilterPtr & filter);
+
+ void setAcceptOnMatch(bool acceptOnMatch);
+
+ FilterDecision decide(const spi::LoggingEventPtr & event) const;
+ };
+
+ }
+}
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/denyallfilter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/denyallfilter.h
new file mode 100644
index 0000000000..c370aac523
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/denyallfilter.h
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_FILTER_DENY_ALL_FILTER_H
+#define _LOG4CXX_FILTER_DENY_ALL_FILTER_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/spi/filter.h>
+
+namespace log4cxx
+{
+ namespace filter
+ {
+ /**
+ This filter drops all logging events.
+ <p>You can add this filter to the end of a filter chain to
+ switch from the default "accept all unless instructed otherwise"
+ filtering behaviour to a "deny all unless instructed otherwise"
+ behaviour.
+ */
+
+ class LOG4CXX_EXPORT DenyAllFilter : public spi::Filter
+ {
+ public:
+ DenyAllFilter() : spi::Filter() {
+ }
+
+ typedef spi::Filter BASE_CLASS;
+ DECLARE_LOG4CXX_OBJECT(DenyAllFilter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(DenyAllFilter)
+ LOG4CXX_CAST_ENTRY_CHAIN(BASE_CLASS)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ Always returns the integer constant {@link spi::Filter#DENY DENY}
+ regardless of the {@link spi::LoggingEvent LoggingEvent} parameter.
+ @param event The LoggingEvent to filter.
+ @return Always returns {@link spi::Filter#DENY DENY}.
+ */
+ FilterDecision decide(const spi::LoggingEventPtr& /* event */) const
+ { return spi::Filter::DENY; }
+ }; // class DenyAllFilter
+
+ LOG4CXX_PTR_DEF(DenyAllFilter);
+ } // namespace filter
+} // namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+
+#endif // _LOG4CXX_FILTER_DENY_ALL_FILTER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/expressionfilter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/expressionfilter.h
new file mode 100644
index 0000000000..dfb6cbf6e2
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/expressionfilter.h
@@ -0,0 +1,130 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_FILTER_EXPRESSIONFILTER_H
+#define _LOG4CXX_FILTER_EXPRESSIONFILTER_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/spi/filter.h>
+
+namespace log4cxx
+{
+ namespace rule
+ {
+ class Rule;
+ typedef helpers::ObjectPtrT < Rule > RulePtr;
+ }
+
+
+ namespace filter
+ {
+
+
+/**
+ *A filter supporting complex expressions - supports both infix and postfix
+ * expressions (infix expressions must first be converted to postfix prior
+ * to processing).
+ *
+ * <p>See <code>org.apache.log4j.chainsaw.LoggingEventFieldResolver.java</code>
+ * for the correct names for logging event fields used when building expressions.
+ *
+ * <p>See <code>org.apache.log4j.chainsaw.rule</code> package for a list of available
+ * rules which can be applied using the expression syntax.
+ *
+ * <p>See <code>org.apache.log4j.chainsaw.RuleFactory</code> for the symbols
+ * used to activate the corresponding rules.
+ *
+ *NOTE: Grouping using parentheses is supported - all tokens must be separated by spaces, and
+ *operands which contain spaces are not yet supported.
+ *
+ *Example:
+ *
+ *In order to build a filter that displays all messages with infomsg-45 or infomsg-44 in the message,
+ *as well as all messages with a level of WARN or higher, build an expression using
+ *the LikeRule (supports ORO-based regular expressions) and the InequalityRule.
+ * <b> ( MSG LIKE infomsg-4[4,5] ) && ( LEVEL >= WARN ) </b>
+ *
+ *Three options are required:
+ * <b>Expression</b> - the expression to match
+ * <b>ConvertInFixToPostFix</b> - convert from infix to posfix (default true)
+ * <b>AcceptOnMatch</b> - true or false (default true)
+ *
+ * Meaning of <b>AcceptToMatch</b>:
+ * If there is a match between the value of the
+ * Expression option and the {@link log4cxx::spi::LoggingEvent} and AcceptOnMatch is true,
+ * the {@link #decide} method returns {@link log4cxx::spi::Filter#ACCEPT}.
+ *
+ * If there is a match between the value of the
+ * Expression option and the {@link log4cxx::spi::LoggingEvent} and AcceptOnMatch is false,
+ * {@link log4cxx::spi::Filter#DENY} is returned.
+ *
+ * If there is no match, {@link log4cxx::spi::Filter#NEUTRAL} is returned.
+ *
+ *
+ */
+ class LOG4CXX_EXPORT ExpressionFilter:public log4cxx::spi::Filter
+ {
+ private:
+ bool acceptOnMatch;
+ bool convertInFixToPostFix;
+ LogString expression;
+ log4cxx::rule::RulePtr expressionRule;
+ ExpressionFilter(const ExpressionFilter &);
+ ExpressionFilter & operator=(const ExpressionFilter &);
+
+ public:
+ DECLARE_LOG4CXX_OBJECT(ExpressionFilter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(log4cxx::spi::Filter)
+ END_LOG4CXX_CAST_MAP()
+
+
+ ExpressionFilter();
+
+ void activateOptions(log4cxx::helpers::Pool & p);
+
+ void setExpression(const LogString & expression);
+
+ LogString getExpression() const;
+
+ void setConvertInFixToPostFix(bool convertInFixToPostFix);
+
+ bool getConvertInFixToPostFix() const;
+
+ void setAcceptOnMatch(bool acceptOnMatch);
+
+ bool getAcceptOnMatch() const;
+
+ /**
+ Returns {@link log4cxx::spi::Filter#NEUTRAL} is there is no string match.
+ */
+ FilterDecision decide(const spi::LoggingEventPtr & event) const;
+ };
+ }
+}
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/levelmatchfilter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/levelmatchfilter.h
new file mode 100644
index 0000000000..f357f67121
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/levelmatchfilter.h
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_FILTER_LEVEL_MATCH_FILTER_H
+#define _LOG4CXX_FILTER_LEVEL_MATCH_FILTER_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/spi/filter.h>
+#include <log4cxx/level.h>
+
+namespace log4cxx
+{
+ class Level;
+
+ namespace filter
+ {
+ /**
+ This is a very simple filter based on level matching.
+
+ <p>The filter admits two options <b>LevelToMatch</b> and
+ <b>AcceptOnMatch</b>. If there is an exact match between the value
+ of the <b>LevelToMatch</b> option and the level of the {@link
+ spi::LoggingEvent LoggingEvent}, then the #decide method returns {@link
+ spi::Filter#ACCEPT ACCEPT} in case the <b>AcceptOnMatch</b>
+ option value is set to <code>true</code>, if it is <code>false</code>
+ then {@link spi::Filter#DENY DENY} is returned. If there is no match,
+ {@link spi::Filter#NEUTRAL NEUTRAL} is returned.
+ */
+
+ class LOG4CXX_EXPORT LevelMatchFilter : public spi::Filter
+ {
+ private:
+ bool acceptOnMatch;
+ LevelPtr levelToMatch;
+
+ public:
+ typedef spi::Filter BASE_CLASS;
+ DECLARE_LOG4CXX_OBJECT(LevelMatchFilter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(LevelMatchFilter)
+ LOG4CXX_CAST_ENTRY_CHAIN(BASE_CLASS)
+ END_LOG4CXX_CAST_MAP()
+
+ LevelMatchFilter();
+
+ /**
+ Set options
+ */
+ virtual void setOption(const LogString& option,
+ const LogString& value);
+
+ void setLevelToMatch(const LogString& levelToMatch);
+
+ LogString getLevelToMatch() const;
+
+ inline void setAcceptOnMatch(bool acceptOnMatch1)
+ { this->acceptOnMatch = acceptOnMatch1; }
+
+ inline bool getAcceptOnMatch() const
+ { return acceptOnMatch; }
+
+ /**
+ Return the decision of this filter.
+
+ Returns {@link spi::Filter#NEUTRAL NEUTRAL} if the
+ <b>LevelToMatch</b> option is not set or if there is not match.
+ Otherwise, if there is a match, then the returned decision is
+ {@link spi::Filter#ACCEPT ACCEPT} if the <b>AcceptOnMatch</b>
+ property is set to <code>true</code>. The returned decision is
+ {@link spi::Filter#DENY DENY} if the
+ <b>AcceptOnMatch</b> property is set to false.
+ */
+ FilterDecision decide(const spi::LoggingEventPtr& event) const;
+ }; // class LevelMatchFilter
+ LOG4CXX_PTR_DEF(LevelMatchFilter);
+ } // namespace filter
+} // namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+#endif // _LOG4CXX_FILTER_STRING_MATCH_FILTER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/levelrangefilter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/levelrangefilter.h
new file mode 100644
index 0000000000..326d7c90f3
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/levelrangefilter.h
@@ -0,0 +1,137 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_FILTER_LEVEL_RANGE_FILTER_H
+#define _LOG4CXX_FILTER_LEVEL_RANGE_FILTER_H
+
+#include <log4cxx/spi/filter.h>
+#include <log4cxx/level.h>
+
+namespace log4cxx
+{
+ namespace filter
+ {
+ /**
+ This is a very simple filter based on level matching, which can be
+ used to reject messages with priorities outside a certain range.
+
+ <p>The filter admits three options <b>LevelMin</b>, <b>LevelMax</b>
+ and <b>AcceptOnMatch</b>.
+
+ <p>If the level of the {@link spi::LoggingEvent LoggingEvent} is not
+ between Min and Max (inclusive), then {@link spi::Filter#DENY DENY}
+ is returned.
+
+ <p> If the Logging event level is within the specified range, then if
+ <b>AcceptOnMatch</b> is true, {@link spi::Filter#ACCEPT ACCEPT} is
+ returned, and if <b>AcceptOnMatch</b> is false,
+ {@link spi::Filter#NEUTRAL NEUTRAL} is returned.
+
+ <p>If <code>LevelMin</code>w is not defined, then there is no
+ minimum acceptable level (ie a level is never rejected for
+ being too "low"/unimportant). If <code>LevelMax</code> is not
+ defined, then there is no maximum acceptable level (ie a
+ level is never rejected for beeing too "high"/important).
+
+ <p>Refer to the {@link
+ AppenderSkeleton#setThreshold setThreshold} method
+ available to <code>all</code> appenders extending
+ AppenderSkeleton for a more convenient way to
+ filter out events by level.
+ */
+
+ class LOG4CXX_EXPORT LevelRangeFilter : public spi::Filter
+ {
+ private:
+ /**
+ Do we return ACCEPT when a match occurs. Default is
+ <code>false</code>, so that later filters get run by default
+ */
+ bool acceptOnMatch;
+ LevelPtr levelMin;
+ LevelPtr levelMax;
+
+ public:
+ typedef spi::Filter BASE_CLASS;
+ DECLARE_LOG4CXX_OBJECT(LevelRangeFilter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(LevelRangeFilter)
+ LOG4CXX_CAST_ENTRY_CHAIN(BASE_CLASS)
+ END_LOG4CXX_CAST_MAP()
+
+ LevelRangeFilter();
+
+ /**
+ Set options
+ */
+ virtual void setOption(const LogString& option,
+ const LogString& value);
+
+ /**
+ Set the <code>LevelMin</code> option.
+ */
+ void setLevelMin(const LevelPtr& levelMin1)
+ { this->levelMin = levelMin1; }
+
+ /**
+ Get the value of the <code>LevelMin</code> option.
+ */
+ const LevelPtr& getLevelMin() const
+ { return levelMin; }
+
+ /**
+ Set the <code>LevelMax</code> option.
+ */
+ void setLevelMax(const LevelPtr& levelMax1)
+ { this->levelMax = levelMax1; }
+
+ /**
+ Get the value of the <code>LevelMax</code> option.
+ */
+ const LevelPtr& getLevelMax() const
+ { return levelMax; }
+
+ /**
+ Set the <code>AcceptOnMatch</code> option.
+ */
+ inline void setAcceptOnMatch(bool acceptOnMatch1)
+ { this->acceptOnMatch = acceptOnMatch1; }
+
+ /**
+ Get the value of the <code>AcceptOnMatch</code> option.
+ */
+ inline bool getAcceptOnMatch() const
+ { return acceptOnMatch; }
+
+ /**
+ Return the decision of this filter.
+
+ Returns {@link spi::Filter#NEUTRAL NEUTRAL} if the
+ <b>LevelToMatch</b> option is not set or if there is not match.
+ Otherwise, if there is a match, then the returned decision is
+ {@link spi::Filter#ACCEPT ACCEPT} if the
+ <b>AcceptOnMatch</b> property is set to <code>true</code>. The
+ returned decision is {@link spi::Filter#DENY DENY} if the
+ <b>AcceptOnMatch</b> property is set to false.
+ */
+ FilterDecision decide(const spi::LoggingEventPtr& event) const;
+ }; // class LevelRangeFilter
+ LOG4CXX_PTR_DEF(LevelRangeFilter);
+ } // namespace filter
+} // namespace log4cxx
+
+#endif // _LOG4CXX_FILTER_LEVEL_RANGE_FILTER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/locationinfofilter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/locationinfofilter.h
new file mode 100644
index 0000000000..81d8b18bb7
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/locationinfofilter.h
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef _LOG4CXX_FILTER_LOCATIONINFOFILTER_H
+#define _LOG4CXX_FILTER_LOCATIONINFOFILTER_H
+
+#include <log4cxx/spi/filter.h>
+
+namespace log4cxx
+{
+ namespace rule
+ {
+ class ExpressionRule;
+ class Rule;
+ typedef helpers::ObjectPtrT < Rule > RulePtr;
+ typedef helpers::ObjectPtrT < ExpressionRule > ExpressionRulePtr;
+ }
+
+ namespace filter
+ {
+/**
+ * Location information is usually specified at the appender level - all events associated
+ * with an appender either create and parse stack traces or they do not. This is
+ * an expensive operation and in some cases not needed for all events associated with
+ * an appender.
+ *
+ * This filter creates event-level location information only if the provided expression evaluates to true.
+ *
+ * For information on expression syntax, see org.apache.log4j.rule.ExpressionRule
+ *
+ *
+ */
+ class LOG4CXX_EXPORT LocationInfoFilter:public log4cxx::spi::Filter
+ {
+ bool convertInFixToPostFix;
+ LogString expression;
+ log4cxx::rule::RulePtr expressionRule;
+ //HACK: Category is the last of the internal layers - pass this in as the class name
+ //in order for parsing to work correctly
+ LogString className;
+
+ public:
+ DECLARE_LOG4CXX_OBJECT(LocationInfoFilter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(log4cxx::spi::Filter)
+ END_LOG4CXX_CAST_MAP()
+
+ LocationInfoFilter();
+
+ void activateOptions(log4cxx::helpers::Pool &);
+
+ void setExpression(const LogString & expression);
+
+ LogString getExpression() const;
+
+ void setConvertInFixToPostFix(bool convertInFixToPostFix);
+
+ bool getConvertInFixToPostFix() const;
+
+ /**
+ * If this event does not already contain location information,
+ * evaluate the event against the expression.
+ *
+ * If the expression evaluates to true, generate a LocationInfo instance
+ * by creating an exception and set this LocationInfo on the event.
+ *
+ * Returns {@link log4cxx::spi::Filter#NEUTRAL}
+ */
+ FilterDecision decide(const spi::LoggingEventPtr & event) const;
+
+ };
+ }
+}
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/mapfilter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/mapfilter.h
new file mode 100644
index 0000000000..e956befeba
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/mapfilter.h
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef _LOG4CXX_FILTER_MAPFILTER_H
+#define _LOG4CXX_FILTER_MAPFILTER_H
+
+#include <log4cxx/spi/filter.h>
+
+namespace log4cxx
+{
+ namespace filter
+ {
+
+
+ class LOG4CXX_EXPORT MapFilter:public log4cxx::spi::Filter
+ {
+ public:
+ DECLARE_LOG4CXX_OBJECT(MapFilter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(log4cxx::spi::Filter)
+ END_LOG4CXX_CAST_MAP()
+
+ MapFilter();
+
+
+ FilterDecision decide(const spi::LoggingEventPtr & event) const;
+
+ };
+ }
+}
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/propertyfilter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/propertyfilter.h
new file mode 100644
index 0000000000..4d830e1198
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/propertyfilter.h
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef _LOG4CXX_FILTER_PROPERTYFILTER_H
+#define _LOG4CXX_FILTER_PROPERTYFILTER_H
+
+#if defined(_MSC_VER)
+#pragma warning (push)
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/spi/filter.h>
+#include <map>
+
+namespace log4cxx
+{
+ namespace filter
+ {
+
+/**
+ * NOTE: This filter modifies logging events by adding properties to the event.
+ *
+ * The 'properties' param is converted to event properties, which are
+ * set on every event processed by the filter.
+ *
+ * Individual properties are only set if they do not already exist on the
+ * logging event (will not override existing properties).
+ *
+ * This class relies on the convention that property name/value pairs are
+ * equals-symbol delimited, and each name/value pair is comma-delimited
+ *
+ * Example properties param:
+ * somename=somevalue,anothername=anothervalue,thirdname=third value
+ *
+ *
+ */
+ class LOG4CXX_EXPORT PropertyFilter : public log4cxx::spi::Filter
+ {
+ typedef std::map < LogString, LogString > PropertyMap;
+ PropertyMap* properties;
+ PropertyFilter(const PropertyFilter &);
+ PropertyFilter & operator=(const PropertyFilter &);
+
+ public:
+ DECLARE_LOG4CXX_OBJECT(PropertyFilter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(log4cxx::spi::Filter)
+ END_LOG4CXX_CAST_MAP()
+
+ PropertyFilter();
+ ~PropertyFilter();
+ void setProperties(const LogString & props);
+
+ FilterDecision decide(const spi::LoggingEventPtr & event) const;
+
+ };
+
+ }
+}
+
+#if defined(_MSC_VER)
+#pragma warning (pop)
+#endif
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/stringmatchfilter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/stringmatchfilter.h
new file mode 100644
index 0000000000..77a78da61c
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/stringmatchfilter.h
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_FILTER_STRING_MATCH_FILTER_H
+#define _LOG4CXX_FILTER_STRING_MATCH_FILTER_H
+
+#include <log4cxx/spi/filter.h>
+
+namespace log4cxx
+{
+ namespace filter
+ {
+ /**
+ This is a very simple filter based on string matching.
+
+ <p>The filter admits two options <b>StringToMatch</b> and
+ <b>AcceptOnMatch</b>. If there is a match between the value of the
+ StringToMatch option and the message of the {@link spi::LoggingEvent
+ LoggingEvent}, then the #decide method returns
+ {@link log4cxx::spi::Filter#ACCEPT ACCEPT} if the <b>AcceptOnMatch</b> option
+ value is true, if it is false then {@link log4cxx::spi::Filter#DENY DENY} is
+ returned. If there is no match, {@link log4cxx::spi::Filter#NEUTRAL NEUTRAL}
+ is returned.
+
+ <p>See configuration files <a
+ href="../xml/doc-files/test6.xml">test6.xml</a>, <a
+ href="../xml/doc-files/test7.xml">test7.xml</a>, <a
+ href="../xml/doc-files/test8.xml">test8.xml</a>, <a
+ href="../xml/doc-files/test9.xml">test9.xml</a>, and <a
+ href="../xml/doc-files/test10.xml">test10.xml</a> for examples of
+ seeting up a <code>StringMatchFilter</code>.
+ */
+
+ class LOG4CXX_EXPORT StringMatchFilter : public spi::Filter
+ {
+ private:
+ bool acceptOnMatch;
+ LogString stringToMatch;
+
+ public:
+ typedef spi::Filter BASE_CLASS;
+ DECLARE_LOG4CXX_OBJECT(StringMatchFilter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(StringMatchFilter)
+ LOG4CXX_CAST_ENTRY_CHAIN(BASE_CLASS)
+ END_LOG4CXX_CAST_MAP()
+
+ StringMatchFilter();
+
+ /**
+ Set options
+ */
+ virtual void setOption(const LogString& option,
+ const LogString& value);
+
+ inline void setStringToMatch(const LogString& stringToMatch1)
+ { this->stringToMatch.assign(stringToMatch1); }
+
+ inline const LogString& getStringToMatch() const
+ { return stringToMatch; }
+
+ inline void setAcceptOnMatch(bool acceptOnMatch1)
+ { this->acceptOnMatch = acceptOnMatch1; }
+
+ inline bool getAcceptOnMatch() const
+ { return acceptOnMatch; }
+
+ /**
+ Returns {@link log4cxx::spi::Filter#NEUTRAL NEUTRAL}
+ is there is no string match.
+ */
+ FilterDecision decide(const spi::LoggingEventPtr& event) const;
+ }; // class StringMatchFilter
+ LOG4CXX_PTR_DEF(StringMatchFilter);
+ } // namespace filter
+} // namespace log4cxx
+
+#endif // _LOG4CXX_FILTER_STRING_MATCH_FILTER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/Makefile.am
new file mode 100644
index 0000000000..e5e25a5ebb
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/Makefile.am
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+helpersincdir = $(includedir)/log4cxx/helpers
+helpersinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/helpers/*.h
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/Makefile.in
new file mode 100644
index 0000000000..0d75bf1898
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/Makefile.in
@@ -0,0 +1,446 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = src/main/include/log4cxx/helpers
+DIST_COMMON = $(helpersinc_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \
+ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(helpersincdir)"
+helpersincHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(helpersinc_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+APR_LIBS = @APR_LIBS@
+APU_LIBS = @APU_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CFSTRING_API = @CFSTRING_API@
+CHARSET_EBCDIC = @CHARSET_EBCDIC@
+CHARSET_ISO88591 = @CHARSET_ISO88591@
+CHARSET_USASCII = @CHARSET_USASCII@
+CHARSET_UTF8 = @CHARSET_UTF8@
+CHAR_API = @CHAR_API@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_ODBC = @CPPFLAGS_ODBC@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOC_FALSE = @DOC_FALSE@
+DOC_TRUE = @DOC_TRUE@
+DOT = @DOT@
+DOXYGEN = @DOXYGEN@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HAS_FWIDE = @HAS_FWIDE@
+HAS_LIBESMTP = @HAS_LIBESMTP@
+HAS_MBSRTOWCS = @HAS_MBSRTOWCS@
+HAS_ODBC = @HAS_ODBC@
+HAS_STD_LOCALE = @HAS_STD_LOCALE@
+HAS_SYSLOG = @HAS_SYSLOG@
+HAS_WCHAR_T = @HAS_WCHAR_T@
+HAS_WCSTOMBS = @HAS_WCSTOMBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IODBC_CONFIG = @IODBC_CONFIG@
+LATEX_DOC_FALSE = @LATEX_DOC_FALSE@
+LATEX_DOC_TRUE = @LATEX_DOC_TRUE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBS_ODBC = @LIBS_ODBC@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@
+LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@
+LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@
+LTLIBOBJS = @LTLIBOBJS@
+LT_VERSION = @LT_VERSION@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+UNICHAR_API = @UNICHAR_API@
+VERSION = @VERSION@
+WCHAR_T_API = @WCHAR_T_API@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+base_dir = @base_dir@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+enable_dot = @enable_dot@
+enable_html_docs = @enable_html_docs@
+enable_latex_docs = @enable_latex_docs@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+manual_dest = @manual_dest@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+helpersincdir = $(includedir)/log4cxx/helpers
+helpersinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/helpers/*.h
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/helpers/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/main/include/log4cxx/helpers/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+install-helpersincHEADERS: $(helpersinc_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(helpersincdir)" || $(mkdir_p) "$(DESTDIR)$(helpersincdir)"
+ @list='$(helpersinc_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(helpersincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(helpersincdir)/$$f'"; \
+ $(helpersincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(helpersincdir)/$$f"; \
+ done
+
+uninstall-helpersincHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(helpersinc_HEADERS)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(helpersincdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(helpersincdir)/$$f"; \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/helpers
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(helpersincdir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-helpersincHEADERS
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-helpersincHEADERS uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool ctags distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-exec install-exec-am \
+ install-helpersincHEADERS install-info install-info-am \
+ install-man install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags uninstall uninstall-am \
+ uninstall-helpersincHEADERS uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/absolutetimedateformat.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/absolutetimedateformat.h
new file mode 100644
index 0000000000..a06cfa6429
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/absolutetimedateformat.h
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_ABSOLUTE_TIME_DATE_FORMAT_H
+#define _LOG4CXX_HELPERS_ABSOLUTE_TIME_DATE_FORMAT_H
+
+#include <log4cxx/helpers/simpledateformat.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ /**
+ Formats a date in the format <b>HH:mm:ss,SSS</b> for example,
+ "15:49:37,459".
+ */
+ class LOG4CXX_EXPORT AbsoluteTimeDateFormat : public SimpleDateFormat
+ {
+ public:
+ AbsoluteTimeDateFormat()
+ : SimpleDateFormat(LOG4CXX_STR("HH:mm:ss,SSS")) {}
+ };
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif // _LOG4CXX_HELPERS_ABSOLUTE_TIME_DATE_FORMAT_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/appenderattachableimpl.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/appenderattachableimpl.h
new file mode 100644
index 0000000000..d254e346f6
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/appenderattachableimpl.h
@@ -0,0 +1,128 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_APPENDER_ATTACHABLE_IMPL_H
+#define _LOG4CXX_HELPERS_APPENDER_ATTACHABLE_IMPL_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/spi/appenderattachable.h>
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/helpers/mutex.h>
+#include <log4cxx/helpers/pool.h>
+
+namespace log4cxx
+{
+ namespace spi
+ {
+ class LoggingEvent;
+ typedef helpers::ObjectPtrT<LoggingEvent> LoggingEventPtr;
+ }
+
+ namespace helpers
+ {
+
+ class LOG4CXX_EXPORT AppenderAttachableImpl :
+ public virtual spi::AppenderAttachable,
+ public virtual helpers::ObjectImpl
+ {
+ protected:
+ /** Array of appenders. */
+ AppenderList appenderList;
+
+ public:
+ /**
+ * Create new instance.
+ * @param pool pool, must be longer-lived than instance.
+ */
+ AppenderAttachableImpl(Pool& pool);
+
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(AppenderAttachableImpl)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(AppenderAttachableImpl)
+ LOG4CXX_CAST_ENTRY(spi::AppenderAttachable)
+ END_LOG4CXX_CAST_MAP()
+
+ void addRef() const;
+ void releaseRef() const;
+
+ // Methods
+ /**
+ * Add an appender.
+ */
+ virtual void addAppender(const AppenderPtr& newAppender);
+
+ /**
+ Call the <code>doAppend</code> method on all attached appenders.
+ */
+ int appendLoopOnAppenders(const spi::LoggingEventPtr& event,
+ log4cxx::helpers::Pool& p);
+
+ /**
+ * Get all previously added appenders as an Enumeration.
+ */
+ virtual AppenderList getAllAppenders() const;
+
+ /**
+ * Get an appender by name.
+ */
+ virtual AppenderPtr getAppender(const LogString& name) const;
+
+ /**
+ Returns <code>true</code> if the specified appender is in the
+ list of attached appenders, <code>false</code> otherwise.
+ */
+ virtual bool isAttached(const AppenderPtr& appender) const;
+
+ /**
+ * Remove all previously added appenders.
+ */
+ virtual void removeAllAppenders();
+
+ /**
+ * Remove the appender passed as parameter from the list of appenders.
+ */
+ virtual void removeAppender(const AppenderPtr& appender);
+
+ /**
+ * Remove the appender with the name passed as parameter from the
+ * list of appenders.
+ */
+ virtual void removeAppender(const LogString& name);
+
+ inline const log4cxx::helpers::Mutex& getMutex() const { return mutex; }
+
+ private:
+ log4cxx::helpers::Mutex mutex;
+ AppenderAttachableImpl(const AppenderAttachableImpl&);
+ AppenderAttachableImpl& operator=(const AppenderAttachableImpl&);
+ };
+
+ LOG4CXX_PTR_DEF(AppenderAttachableImpl);
+
+ }
+}
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+#endif //_LOG4CXX_HELPERS_APPENDER_ATTACHABLE_IMPL_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/aprinitializer.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/aprinitializer.h
new file mode 100644
index 0000000000..154ecaa8d9
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/aprinitializer.h
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_APRINITIALIZER_H
+#define _LOG4CXX_HELPERS_APRINITIALIZER_H
+
+#ifndef LOG4CXX
+#error "aprinitializer.h should only be included by log4cxx implementation"
+#endif
+
+#include <log4cxx/helpers/pool.h>
+#include <apr_pools.h>
+#include <apr_thread_proc.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class APRInitializer
+ {
+ public:
+ static log4cxx_time_t initialize();
+ static apr_pool_t* getRootPool();
+ static apr_threadkey_t* getTlsKey();
+ static bool isDestructed;
+
+ private:
+ APRInitializer();
+ APRInitializer(const APRInitializer&);
+ APRInitializer& operator=(const APRInitializer&);
+ apr_pool_t* p;
+ log4cxx_time_t startTime;
+ apr_threadkey_t* tlsKey;
+ static APRInitializer& getInstance();
+ static void tlsDestruct(void*);
+
+ public:
+ ~APRInitializer();
+ };
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_APRINITIALIZER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bufferedoutputstream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bufferedoutputstream.h
new file mode 100644
index 0000000000..9d4aa18341
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bufferedoutputstream.h
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_BUFFEREDOUTPUTSTREAM_H
+#define _LOG4CXX_HELPERS_BUFFEREDOUTPUTSTREAM_H
+
+#include <log4cxx/helpers/outputstream.h>
+
+namespace log4cxx
+{
+
+ namespace helpers {
+
+ /**
+ * Abstract class for writing to character streams.
+ */
+ class LOG4CXX_EXPORT BufferedOutputStream : public OutputStream
+ {
+ private:
+ size_t count;
+ LogString buf;
+
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(BufferedOutputStream)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(BufferedOutputStream)
+ LOG4CXX_CAST_ENTRY_CHAIN(OutputStream)
+ END_LOG4CXX_CAST_MAP()
+
+ protected:
+ BufferedOutputStream(OutputStreamPtr& out, size_t size = 4096);
+ ~BufferedOutputStream();
+
+ public:
+ void close(Pool& p);
+ void flush(Pool& p);
+ void write(ByteBuffer& buf, Pool& p);
+
+ private:
+ BufferedOutputStream(const BufferedOutputStream&);
+ BufferedOutputStream& operator=(const BufferedOutputStream&);
+ };
+
+ LOG4CXX_PTR_DEF(BufferedOutputStream);
+ } // namespace helpers
+
+} //namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_BUFFEREDOUTPUTSTREAM_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bufferedwriter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bufferedwriter.h
new file mode 100644
index 0000000000..570da09751
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bufferedwriter.h
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_BUFFEREDWRITER_H
+#define _LOG4CXX_HELPERS_BUFFEREDWRITER_H
+
+#include <log4cxx/helpers/writer.h>
+
+namespace log4cxx
+{
+
+ namespace helpers {
+
+ /**
+ * Writes text to a character-output stream buffering
+ * requests to increase efficiency.
+ */
+ class LOG4CXX_EXPORT BufferedWriter : public Writer
+ {
+ private:
+ WriterPtr out;
+ size_t sz;
+ LogString buf;
+
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(BufferedWriter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(BufferedWriter)
+ LOG4CXX_CAST_ENTRY_CHAIN(Writer)
+ END_LOG4CXX_CAST_MAP()
+
+ BufferedWriter(WriterPtr& out);
+ BufferedWriter(WriterPtr& out, size_t sz);
+ virtual ~BufferedWriter();
+
+ virtual void close(Pool& p);
+ virtual void flush(Pool& p);
+ virtual void write(const LogString& str, Pool& p);
+
+ private:
+ BufferedWriter(const BufferedWriter&);
+ BufferedWriter& operator=(const BufferedWriter&);
+ };
+
+ } // namespace helpers
+
+} //namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_BUFFEREDWRITER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytearrayinputstream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytearrayinputstream.h
new file mode 100644
index 0000000000..92bcb5959c
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytearrayinputstream.h
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_BYTEARRAYINPUTSTREAM_H
+#define _LOG4CXX_HELPERS_BYTEARRAYINPUTSTREAM_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <vector>
+#include <log4cxx/helpers/inputstream.h>
+
+
+namespace log4cxx
+{
+
+ namespace helpers {
+
+ /**
+ * InputStream implemented on top of a byte array.
+ */
+ class LOG4CXX_EXPORT ByteArrayInputStream : public InputStream
+ {
+ private:
+ LOG4CXX_LIST_DEF(ByteList, unsigned char);
+ ByteList buf;
+ size_t pos;
+
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(ByteArrayInputStream)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(ByteArrayInputStream)
+ LOG4CXX_CAST_ENTRY_CHAIN(InputStream)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Creates a ByteArrayInputStream.
+ *
+ * @param bytes array of bytes to copy into stream.
+ */
+ ByteArrayInputStream(const ByteList& bytes);
+
+ virtual ~ByteArrayInputStream();
+
+ /**
+ * Closes this file input stream and releases any system
+ * resources associated with the stream.
+ */
+ virtual void close();
+
+ /**
+ * Reads a sequence of bytes into the given buffer.
+ *
+ * @param buf The buffer into which bytes are to be transferred.
+ * @return the total number of bytes read into the buffer, or -1 if there
+ * is no more data because the end of the stream has been reached.
+ */
+ virtual int read(ByteBuffer& buf);
+
+ private:
+
+ ByteArrayInputStream(const ByteArrayInputStream&);
+
+ ByteArrayInputStream& operator=(const ByteArrayInputStream&);
+
+ };
+
+ LOG4CXX_PTR_DEF(ByteArrayInputStream);
+ } // namespace helpers
+
+} //namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+#endif //_LOG4CXX_HELPERS_BYTEARRAYINPUTSTREAM_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytearrayoutputstream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytearrayoutputstream.h
new file mode 100644
index 0000000000..34e3d09518
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytearrayoutputstream.h
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_BYTEARRAYOUTPUTSTREAM_H
+#define _LOG4CXX_HELPERS_BYTEARRAYOUTPUTSTREAM_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+
+#include <log4cxx/helpers/outputstream.h>
+#include <vector>
+
+
+namespace log4cxx
+{
+
+ namespace helpers {
+ class Pool;
+
+ /**
+ * OutputStream implemented on top of std::vector
+ */
+ class LOG4CXX_EXPORT ByteArrayOutputStream : public OutputStream
+ {
+ private:
+ LOG4CXX_LIST_DEF(ByteList, unsigned char);
+ ByteList array;
+
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(ByteArrayOutputStream)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(ByteArrayOutputStream)
+ LOG4CXX_CAST_ENTRY_CHAIN(OutputStream)
+ END_LOG4CXX_CAST_MAP()
+
+ ByteArrayOutputStream();
+ virtual ~ByteArrayOutputStream();
+
+ virtual void close(Pool& p);
+ virtual void flush(Pool& p);
+ virtual void write(ByteBuffer& buf, Pool& p);
+ ByteList toByteArray() const;
+
+ private:
+ ByteArrayOutputStream(const ByteArrayOutputStream&);
+ ByteArrayOutputStream& operator=(const ByteArrayOutputStream&);
+ };
+
+ LOG4CXX_PTR_DEF(ByteArrayOutputStream);
+ } // namespace helpers
+
+} //namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+
+#endif //_LOG4CXX_HELPERS_BYTEARRAYOUTPUTSTREAM_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytebuffer.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytebuffer.h
new file mode 100644
index 0000000000..da235b6a61
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytebuffer.h
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_BYTEBUFFER_H
+#define _LOG4CXX_HELPERS_BYTEBUFFER_H
+
+#include <log4cxx/log4cxx.h>
+#include <stdio.h>
+
+namespace log4cxx
+{
+
+ namespace helpers {
+
+ /**
+ * A byte buffer.
+ */
+ class LOG4CXX_EXPORT ByteBuffer
+ {
+ private:
+ char* base;
+ size_t pos;
+ size_t lim;
+ size_t cap;
+
+ public:
+ ByteBuffer(char* data, size_t capacity);
+ ~ByteBuffer();
+
+ void clear();
+ void flip();
+
+ inline char* data() { return base; }
+ inline const char* data() const { return base; }
+ inline char* current() { return base + pos; }
+ inline const char* current() const { return base + pos; }
+ inline size_t limit() const { return lim; }
+ void limit(size_t newLimit);
+ inline size_t position() const { return pos; }
+ inline size_t remaining() const { return lim - pos; }
+ void position(size_t newPosition);
+
+ bool put(char byte);
+
+
+ private:
+ ByteBuffer(const ByteBuffer&);
+ ByteBuffer& operator=(const ByteBuffer&);
+ };
+
+ } // namespace helpers
+
+} //namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_BYTEBUFFER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/cacheddateformat.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/cacheddateformat.h
new file mode 100644
index 0000000000..527ed25670
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/cacheddateformat.h
@@ -0,0 +1,220 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_CACHED_DATE_FORMAT_H
+#define _LOG4CXX_HELPERS_CACHED_DATE_FORMAT_H
+
+#include <log4cxx/helpers/dateformat.h>
+
+namespace log4cxx
+{
+ namespace pattern
+ {
+ class LOG4CXX_EXPORT CachedDateFormat : public log4cxx::helpers::DateFormat {
+ public:
+ enum {
+ /*
+ * Constant used to represent that there was no change
+ * observed when changing the millisecond count.
+ */
+ NO_MILLISECONDS = -2,
+ /*
+ * Constant used to represent that there was an
+ * observed change, but was an expected change.
+ */
+ UNRECOGNIZED_MILLISECONDS = -1
+ };
+
+ private:
+ /**
+ * Supported digit set. If the wrapped DateFormat uses
+ * a different unit set, the millisecond pattern
+ * will not be recognized and duplicate requests
+ * will use the cache.
+ */
+ static const logchar digits[];
+
+ enum {
+ /**
+ * First magic number used to detect the millisecond position.
+ */
+ magic1 = 654000,
+ /**
+ * Second magic number used to detect the millisecond position.
+ */
+ magic2 = 987000
+ };
+
+ /**
+ * Expected representation of first magic number.
+ */
+ static const logchar magicString1[];
+
+
+ /**
+ * Expected representation of second magic number.
+ */
+ static const logchar magicString2[];
+
+
+ /**
+ * Expected representation of 0 milliseconds.
+ */
+ static const logchar zeroString[];
+
+ /**
+ * Wrapped formatter.
+ */
+ log4cxx::helpers::DateFormatPtr formatter;
+
+ /**
+ * Index of initial digit of millisecond pattern or
+ * UNRECOGNIZED_MILLISECONDS or NO_MILLISECONDS.
+ */
+ mutable int millisecondStart;
+
+ /**
+ * Integral second preceding the previous convered Date.
+ */
+ mutable log4cxx_time_t slotBegin;
+
+
+ /**
+ * Cache of previous conversion.
+ */
+ mutable LogString cache;
+
+
+ /**
+ * Maximum validity period for the cache.
+ * Typically 1, use cache for duplicate requests only, or
+ * 1000000, use cache for requests within the same integral second.
+ */
+ const int expiration;
+
+ /**
+ * Date requested in previous conversion.
+ */
+ mutable log4cxx_time_t previousTime;
+
+ public:
+ /**
+ * Creates a new CachedDateFormat object.
+ * @param dateFormat Date format, may not be null.
+ * @param expiration maximum cached range in microseconds.
+ * If the dateFormat is known to be incompatible with the
+ * caching algorithm, use a value of 0 to totally disable
+ * caching or 1 to only use cache for duplicate requests.
+ */
+ CachedDateFormat(const log4cxx::helpers::DateFormatPtr& dateFormat, int expiration);
+
+ /**
+ * Finds start of millisecond field in formatted time.
+ * @param time long time, must be integral number of seconds
+ * @param formatted String corresponding formatted string
+ * @param formatter DateFormat date format
+ * @param pool pool.
+ * @return int position in string of first digit of milliseconds,
+ * -1 indicates no millisecond field, -2 indicates unrecognized
+ * field (likely RelativeTimeDateFormat)
+ */
+ static int findMillisecondStart(
+ log4cxx_time_t time, const LogString& formatted,
+ const log4cxx::helpers::DateFormatPtr& formatter,
+ log4cxx::helpers::Pool& pool);
+
+ /**
+ * Formats a Date into a date/time string.
+ *
+ * @param date the date to format.
+ * @param sbuf the string buffer to write to.
+ * @param p memory pool.
+ */
+ virtual void format(LogString &sbuf,
+ log4cxx_time_t date,
+ log4cxx::helpers::Pool& p) const;
+
+ private:
+ /**
+ * Formats a count of milliseconds (0-999) into a numeric representation.
+ * @param millis Millisecond coun between 0 and 999.
+ * @buf String buffer, may not be null.
+ * @offset Starting position in buffer, the length of the
+ * buffer must be at least offset + 3.
+ */
+ static void millisecondFormat(int millis,
+ LogString& buf,
+ int offset);
+
+
+ public:
+ /**
+ * Set timezone.
+ *
+ * @remarks Setting the timezone using getCalendar().setTimeZone()
+ * will likely cause caching to misbehave.
+ * @param zone TimeZone new timezone
+ */
+ virtual void setTimeZone(const log4cxx::helpers::TimeZonePtr& zone);
+
+ /**
+ * Format an integer consistent with the format method.
+ * @param s string to which the numeric string is appended.
+ * @param n integer value.
+ * @param p memory pool used during formatting.
+ */
+ virtual void numberFormat(LogString& s,
+ int n,
+ log4cxx::helpers::Pool& p) const;
+
+ /**
+ * Gets maximum cache validity for the specified SimpleDateTime
+ * conversion pattern.
+ * @param pattern conversion pattern, may not be null.
+ * @returns Duration in microseconds from an integral second
+ * that the cache will return consistent results.
+ */
+ static int getMaximumCacheValidity(const LogString& pattern);
+
+ private:
+ CachedDateFormat(const CachedDateFormat&);
+ CachedDateFormat& operator=(const CachedDateFormat&);
+
+ /**
+ * Tests if two string regions are equal.
+ * @param target target string.
+ * @param toffset character position in target to start comparison.
+ * @param other other string.
+ * @param ooffset character position in other to start comparison.
+ * @param len length of region.
+ * @return true if regions are equal.
+ */
+ static bool regionMatches(
+ const LogString& target,
+ size_t toffset,
+ const LogString& other,
+ size_t ooffset,
+ size_t len);
+
+ };
+
+
+
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif // _LOG4CXX_HELPERS_SIMPLE_DATE_FORMAT_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/charsetdecoder.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/charsetdecoder.h
new file mode 100644
index 0000000000..cb8320aec5
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/charsetdecoder.h
@@ -0,0 +1,113 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_CHARSETDECODER_H
+#define _LOG4CXX_HELPERS_CHARSETDECODER_H
+
+#include <log4cxx/helpers/objectimpl.h>
+
+namespace log4cxx
+{
+ namespace helpers {
+ class CharsetDecoder;
+ LOG4CXX_PTR_DEF(CharsetDecoder);
+ class ByteBuffer;
+
+
+ /**
+ * An abstract engine to transform a sequences of bytes in a specific charset
+ * into a LogString.
+ */
+ class LOG4CXX_EXPORT CharsetDecoder : public ObjectImpl
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(CharsetDecoder)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(CharsetDecoder)
+ END_LOG4CXX_CAST_MAP()
+ protected:
+ /**
+ * Protected constructor.
+ */
+ CharsetDecoder();
+ public:
+ /**
+ * Destructor.
+ */
+ virtual ~CharsetDecoder();
+
+ /**
+ * Get decoder for default charset.
+ */
+ static CharsetDecoderPtr getDefaultDecoder();
+ /**
+ * Get decoder for specified character set.
+ * @param charset the following values should be recognized:
+ * "US-ASCII", "ISO-8859-1", "UTF-8",
+ * "UTF-16BE", "UTF-16LE".
+ * @return decoder
+ * @throws IllegalArgumentException if charset is not recognized.
+ */
+ static CharsetDecoderPtr getDecoder(const LogString& charset);
+
+ /**
+ * Get decoder for UTF-8.
+ */
+ static CharsetDecoderPtr getUTF8Decoder();
+ /**
+ * Get decoder for ISO-8859-1.
+ */
+ static CharsetDecoderPtr getISOLatinDecoder();
+
+
+
+ /**
+ * Decodes as many bytes as possible from the given
+ * input buffer, writing the results to the given output string.
+ * @param in input buffer.
+ * @param out output string.
+ * @return APR_SUCCESS if not encoding errors were found.
+ */
+ virtual log4cxx_status_t decode(ByteBuffer& in,
+ LogString& out) = 0;
+
+ /**
+ * Determins if status value indicates an invalid byte sequence.
+ */
+ inline static bool isError(log4cxx_status_t stat) {
+ return (stat != 0);
+ }
+
+ private:
+ /**
+ * Private copy constructor.
+ */
+ CharsetDecoder(const CharsetDecoder&);
+ /**
+ * Private assignment operator.
+ */
+ CharsetDecoder& operator=(const CharsetDecoder&);
+ /**
+ * Creates a new decoder for the default charset.
+ */
+ static CharsetDecoder* createDefaultDecoder();
+ };
+
+ } // namespace helpers
+} //namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_CHARSETENCODER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/charsetencoder.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/charsetencoder.h
new file mode 100644
index 0000000000..c815ebca83
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/charsetencoder.h
@@ -0,0 +1,135 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_CHARSETENCODER_H
+#define _LOG4CXX_HELPERS_CHARSETENCODER_H
+
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/helpers/pool.h>
+
+namespace log4cxx
+{
+
+ namespace helpers {
+ class ByteBuffer;
+ class CharsetEncoder;
+ LOG4CXX_PTR_DEF(CharsetEncoder);
+
+ /**
+ * An engine to transform LogStrings into bytes
+ * for the specific character set.
+ */
+ class LOG4CXX_EXPORT CharsetEncoder : public ObjectImpl
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(CharsetEncoder)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(CharsetEncoder)
+ END_LOG4CXX_CAST_MAP()
+
+ protected:
+ /**
+ * Protected constructor.
+ */
+ CharsetEncoder();
+
+ public:
+ /**
+ * Destructor.
+ */
+ virtual ~CharsetEncoder();
+ /**
+ * Get encoder for default charset.
+ */
+ static CharsetEncoderPtr getDefaultEncoder();
+
+ /**
+ * Get encoder for specified character set.
+ * @param charset the following values should be recognized:
+ * "US-ASCII", "ISO-8859-1", "UTF-8",
+ * "UTF-16BE", "UTF-16LE".
+ * @return encoder.
+ * @throws IllegalArgumentException if encoding is not recognized.
+ */
+ static CharsetEncoderPtr getEncoder(const LogString& charset);
+
+
+ /**
+ * Get encoder for UTF-8.
+ */
+ static CharsetEncoderPtr getUTF8Encoder();
+
+ /**
+ * Encodes a string replacing unmappable
+ * characters with escape sequences.
+ *
+ */
+ static void encode(CharsetEncoderPtr& enc,
+ const LogString& src,
+ LogString::const_iterator& iter,
+ ByteBuffer& dst);
+
+ /**
+ * Encodes as many characters from the input string as possible
+ * to the output buffer.
+ * @param in input string
+ * @param iter position in string to start.
+ * @param out output buffer.
+ * @return APR_SUCCESS unless a character can not be represented in
+ * the encoding.
+ */
+ virtual log4cxx_status_t encode(const LogString& in,
+ LogString::const_iterator& iter,
+ ByteBuffer& out) = 0;
+
+ /**
+ * Resets any internal state.
+ */
+ virtual void reset();
+
+ /**
+ * Flushes the encoder.
+ */
+ virtual void flush(ByteBuffer& out);
+
+ /**
+ * Determines if the return value from encode indicates
+ * an unconvertable character.
+ */
+ inline static bool isError(log4cxx_status_t stat) {
+ return (stat != 0);
+ }
+
+
+ private:
+ /**
+ * Private copy constructor.
+ */
+ CharsetEncoder(const CharsetEncoder&);
+ /**
+ * Private assignment operator.
+ */
+ CharsetEncoder& operator=(const CharsetEncoder&);
+
+ static CharsetEncoder* createDefaultEncoder();
+ };
+
+ } // namespace helpers
+
+} //namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_CHARSETENCODER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/class.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/class.h
new file mode 100644
index 0000000000..c7f708b355
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/class.h
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_CLASS_H
+#define _LOG4CXX_HELPERS_CLASS_H
+
+#if defined(_MSC_VER)
+#pragma warning (push)
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/logstring.h>
+#include <log4cxx/helpers/objectptr.h>
+#include <map>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class Object;
+ typedef ObjectPtrT<Object> ObjectPtr;
+
+
+ class LOG4CXX_EXPORT Class
+ {
+ public:
+ virtual ~Class();
+ virtual ObjectPtr newInstance() const;
+ LogString toString() const;
+ virtual LogString getName() const = 0;
+ static const Class& forName(const LogString& className);
+ static bool registerClass(const Class& newClass);
+
+ protected:
+ Class();
+
+ private:
+ Class(const Class&);
+ Class& operator=(const Class&);
+ typedef std::map<LogString, const Class *> ClassMap;
+ static ClassMap& getRegistry();
+ static void registerClasses();
+ };
+ } // namespace log4cxx
+} // namespace helper
+
+#if defined(_MSC_VER)
+#pragma warning (pop)
+#endif
+
+
+#endif //_LOG4CXX_HELPERS_CLASS_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/classregistration.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/classregistration.h
new file mode 100644
index 0000000000..af06319662
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/classregistration.h
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_CLASSREGISTRATION_H
+#define _LOG4CXX_HELPERS_CLASSREGISTRATION_H
+
+#include <log4cxx/log4cxx.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class Class;
+ class LOG4CXX_EXPORT ClassRegistration
+ {
+ public:
+ typedef const Class& (*ClassAccessor)();
+ ClassRegistration(ClassAccessor classAccessor);
+
+ private:
+ ClassRegistration(const ClassRegistration&);
+ ClassRegistration& operator=(const ClassRegistration&);
+ };
+ } // namespace log4cxx
+} // namespace helper
+
+#endif //_LOG4CXX_HELPERS_CLASSREGISTRATION_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/condition.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/condition.h
new file mode 100644
index 0000000000..7adb3bc13a
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/condition.h
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_CONDITION_H
+#define _LOG4CXX_HELPERS_CONDITION_H
+
+#include <log4cxx/log4cxx.h>
+#include <log4cxx/helpers/mutex.h>
+
+extern "C" {
+ struct apr_thread_cond_t;
+}
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class Pool;
+
+ /**
+ * This class provides a means for one thread to suspend exception until
+ * notified by another thread to resume. This class should have
+ * similar semantics to java.util.concurrent.locks.Condition.
+ */
+ class LOG4CXX_EXPORT Condition
+ {
+ public:
+ /**
+ * Create new instance.
+ * @param p pool on which condition will be created. Needs to be
+ * longer-lived than created instance.
+ */
+ Condition(log4cxx::helpers::Pool& p);
+ /**
+ * Destructor.
+ */
+ ~Condition();
+ /**
+ * Signal all waiting threads.
+ */
+ log4cxx_status_t signalAll();
+ /**
+ * Await signaling of condition.
+ * @param lock lock associated with condition, calling thread must
+ * own lock. Lock will be released while waiting and reacquired
+ * before returning from wait.
+ * @throws InterruptedException if thread is interrupted.
+ */
+ void await(Mutex& lock);
+
+ private:
+ apr_thread_cond_t* condition;
+ Condition(const Condition&);
+ Condition& operator=(const Condition&);
+ };
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_CONDITION_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/cyclicbuffer.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/cyclicbuffer.h
new file mode 100644
index 0000000000..2cd913dea3
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/cyclicbuffer.h
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_CYCLICBUFFER_H
+#define _LOG4CXX_HELPERS_CYCLICBUFFER_H
+
+#include <log4cxx/spi/loggingevent.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ /**
+ CyclicBuffer is used by other appenders to hold instances of
+ {@link log4cxx::spi::LoggingEvent LoggingEvent} for immediate
+ or deferred display.
+ <p>This buffer gives read access to any element in the buffer not
+ just the first or last element.
+ */
+ class LOG4CXX_EXPORT CyclicBuffer
+ {
+ log4cxx::spi::LoggingEventList ea;
+ int first;
+ int last;
+ int numElems;
+ int maxSize;
+
+ public:
+ /**
+ Instantiate a new CyclicBuffer of at most <code>maxSize</code>
+ events.
+ The <code>maxSize</code> argument must a positive integer.
+ @param maxSize The maximum number of elements in the buffer.
+ @throws IllegalArgumentException if <code>maxSize</code>
+ is negative.
+ */
+ CyclicBuffer(int maxSize);
+ ~CyclicBuffer();
+
+ /**
+ Add an <code>event</code> as the last event in the buffer.
+ */
+ void add(const spi::LoggingEventPtr& event);
+
+ /**
+ Get the <i>i</i>th oldest event currently in the buffer. If
+ <em>i</em> is outside the range 0 to the number of elements
+ currently in the buffer, then <code>null</code> is returned.
+ */
+ spi::LoggingEventPtr get(int i);
+
+ int getMaxSize() const
+ { return maxSize; }
+
+ /**
+ Get the oldest (first) element in the buffer. The oldest element
+ is removed from the buffer.
+ */
+ spi::LoggingEventPtr get();
+
+ /**
+ Get the number of elements in the buffer. This number is
+ guaranteed to be in the range 0 to <code>maxSize</code>
+ (inclusive).
+ */
+ int length() const
+ { return numElems; }
+
+ /**
+ Resize the cyclic buffer to <code>newSize</code>.
+ @throws IllegalArgumentException if <code>newSize</code> is negative.
+ */
+ void resize(int newSize);
+ }; // class CyclicBuffer
+ } //namespace helpers
+} //namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_CYCLICBUFFER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagrampacket.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagrampacket.h
new file mode 100644
index 0000000000..5bdbf48d9a
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagrampacket.h
@@ -0,0 +1,135 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_DATAGRAM_PACKET
+#define _LOG4CXX_HELPERS_DATAGRAM_PACKET
+
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/helpers/objectptr.h>
+#include <log4cxx/helpers/inetaddress.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+
+ /** This class represents a datagram packet.
+ <p>Datagram packets are used to implement a connectionless packet
+ delivery service. Each message is routed from one machine to another
+ based solely on information contained within that packet. Multiple
+ packets sent from one machine to another might be routed differently,
+ and might arrive in any order.
+ */
+ class LOG4CXX_EXPORT DatagramPacket : public helpers::ObjectImpl
+ {
+ protected:
+ /** the data for this packet. */
+ void * buf;
+
+ /** The offset of the data for this packet. */
+ int offset;
+
+ /** The length of the data for this packet. */
+ int length;
+
+ /** The IP address for this packet. */
+ InetAddressPtr address;
+
+ /** The UDP port number of the remote host. */
+ int port;
+
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(DatagramPacket)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(DatagramPacket)
+ END_LOG4CXX_CAST_MAP()
+
+ /** Constructs a DatagramPacket for receiving packets of length
+ <code>length</code>. */
+ DatagramPacket(void * buf, int length);
+
+ /** Constructs a datagram packet for sending packets of length
+ <code>length</code> to the specified port number on the specified
+ host. */
+ DatagramPacket(void * buf, int length, InetAddressPtr address, int port);
+
+ /** Constructs a DatagramPacket for receiving packets of length
+ <code>length</code>, specifying an offset into the buffer. */
+ DatagramPacket(void * buf, int offset, int length);
+
+ /** Constructs a datagram packet for sending packets of length
+ <code>length</code> with offset <code>offset</code> to the
+ specified port number on the specified host. */
+ DatagramPacket(void * buf, int offset, int length, InetAddressPtr address,
+ int port);
+
+ ~DatagramPacket();
+
+ /** Returns the IP address of the machine to which this datagram
+ is being sent or from which the datagram was received. */
+ inline InetAddressPtr getAddress() const
+ { return address; }
+
+ /** Returns the data received or the data to be sent. */
+ inline void * getData() const
+ { return buf; }
+
+ /** Returns the length of the data to be sent or the length of the
+ data received. */
+ inline int getLength() const
+ { return length; }
+
+ /** Returns the offset of the data to be sent or the offset of the
+ data received. */
+ inline int getOffset() const
+ { return offset; }
+
+ /** Returns the port number on the remote host to which this
+ datagram is being sent or from which the datagram was received. */
+ inline int getPort() const
+ { return port; }
+
+ inline void setAddress(InetAddressPtr address1)
+ { this->address = address1; }
+
+ /** Set the data buffer for this packet. */
+ inline void setData(void * buf1)
+ { this->buf = buf1; }
+
+ /** Set the data buffer for this packet. */
+ inline void setData(void * buf1, int offset1, int length1)
+ { this->buf = buf1; this->offset = offset1; this->length = length1; }
+
+ /** Set the length for this packet. */
+ inline void setLength(int length1)
+ { this->length = length1; }
+
+ inline void setPort(int port1)
+ { this->port = port1; }
+
+ private:
+ //
+ // prevent copy and assignment statements
+ DatagramPacket(const DatagramPacket&);
+ DatagramPacket& operator=(const DatagramPacket&);
+
+ }; // class DatagramPacket
+ LOG4CXX_PTR_DEF(DatagramPacket);
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif // _LOG4CXX_HELPERS_DATAGRAM_PACKET
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagramsocket.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagramsocket.h
new file mode 100644
index 0000000000..5e7db94e65
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagramsocket.h
@@ -0,0 +1,128 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_DATAGRAM_SOCKET_H
+#define _LOG4CXX_HELPERS_DATAGRAM_SOCKET_H
+
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/helpers/objectptr.h>
+#include <log4cxx/helpers/inetaddress.h>
+#include <log4cxx/helpers/pool.h>
+#include <log4cxx/helpers/datagrampacket.h>
+
+extern "C" { struct apr_socket_t; }
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ /** This class represents a socket for sending and receiving
+ datagram packets.*/
+ class LOG4CXX_EXPORT DatagramSocket : public helpers::ObjectImpl
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(DatagramSocket)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(DatagramSocket)
+ END_LOG4CXX_CAST_MAP()
+
+ /** Constructs a datagram socket and binds it to any available port
+ on the local host machine.*/
+ DatagramSocket();
+
+ /** Constructs a datagram socket and binds it to the specified
+ port on the local host machine. */
+ DatagramSocket(int port);
+
+ /** Creates a datagram socket, bound to the specified local
+ address. */
+ DatagramSocket(int port, InetAddressPtr laddr);
+
+ /** ensure the socket is closed. */
+ ~DatagramSocket();
+
+ /** Binds a datagram socket to a local port and address.*/
+ void bind(int lport, InetAddressPtr laddress);
+
+ /** Creates a datagram socket.*/
+ void create();
+
+ /** Closes this datagram socket */
+ void close();
+
+ /** Connects the socket to a remote address for this socket. */
+ void connect(InetAddressPtr address, int port);
+
+ /** Returns the address to which this socket is connected. */
+ inline InetAddressPtr getInetAddress() const
+ { return address; }
+
+ /** Gets the local address to which the socket is bound. */
+ inline InetAddressPtr getLocalAddress() const
+ { return localAddress; }
+
+ /** Returns the port number on the local host to which this
+ socket is bound. */
+ inline int getLocalPort() const
+ { return localPort; }
+
+ /** Returns the port for this socket */
+ inline int getPort() const
+ { return port; }
+
+ /** Returns the binding state of the socket. **/
+ inline bool isBound() const
+ { return localPort != 0; }
+
+ /** Returns wether the socket is closed or not. */
+ inline bool isClosed() const
+ { return socket != 0; }
+
+ /** Returns the connection state of the socket. */
+ inline bool isConnected() const
+ { return port != 0; }
+
+ /** Receives a datagram packet from this socket. */
+ void receive(DatagramPacketPtr& p);
+
+ /** Sends a datagram packet from this socket. */
+ void send(DatagramPacketPtr& p);
+
+ private:
+ DatagramSocket(const DatagramSocket&);
+ DatagramSocket& operator=(const DatagramSocket&);
+ /** The APR socket */
+ apr_socket_t *socket;
+
+ /** The memory pool for the socket */
+ Pool socketPool;
+
+ InetAddressPtr address;
+
+ InetAddressPtr localAddress;
+
+ int port;
+
+ /** The local port number to which this socket is connected. */
+ int localPort;
+
+ };
+ LOG4CXX_PTR_DEF(DatagramSocket);
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_DATAGRAM_SOCKET_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/date.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/date.h
new file mode 100644
index 0000000000..6e3dc04f43
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/date.h
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_DATE_H
+#define _LOG4CXX_HELPERS_DATE_H
+
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/log4cxx.h>
+
+
+namespace log4cxx {
+ namespace helpers {
+ /**
+ * Simple transcoder for converting between
+ * external char and wchar_t strings and
+ * internal strings.
+ *
+ */
+ class LOG4CXX_EXPORT Date : public ObjectImpl {
+ const log4cxx_time_t time;
+
+ public:
+ DECLARE_LOG4CXX_OBJECT(Date)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(Date)
+ END_LOG4CXX_CAST_MAP()
+
+ Date();
+ Date(log4cxx_time_t time);
+ virtual ~Date();
+
+ inline log4cxx_time_t getTime() const {
+ return time;
+ }
+
+ /**
+ * Get start of next second
+ */
+ log4cxx_time_t getNextSecond() const;
+
+
+ static log4cxx_time_t getMicrosecondsPerDay();
+ static log4cxx_time_t getMicrosecondsPerSecond();
+
+ };
+
+ LOG4CXX_PTR_DEF(Date);
+
+ }
+}
+
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/dateformat.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/dateformat.h
new file mode 100644
index 0000000000..86bf1a9e64
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/dateformat.h
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_DATE_FORMAT_H
+#define _LOG4CXX_HELPERS_DATE_FORMAT_H
+
+#include <log4cxx/helpers/timezone.h>
+
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+
+ /**
+ * DateFormat is an abstract class for date/time formatting
+ * patterned after java.text.DateFormat.
+ */
+ class LOG4CXX_EXPORT DateFormat : public ObjectImpl {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(DateFormat)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(DateFormat)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Destructor
+ */
+ virtual ~DateFormat();
+
+ /**
+ * Formats an log4cxx_time_t into a date/time string.
+ * @param s string to which the date/time string is appended.
+ * @param tm date to be formatted.
+ * @param p memory pool used during formatting.
+ */
+ virtual void format(LogString &s, log4cxx_time_t tm, log4cxx::helpers::Pool& p) const = 0;
+
+ /**
+ * Sets the time zone.
+ * @param zone the given new time zone.
+ */
+ virtual void setTimeZone(const TimeZonePtr& zone);
+
+ /**
+ * Format an integer consistent with the format method.
+ * @param s string to which the numeric string is appended.
+ * @param n integer value.
+ * @param p memory pool used during formatting.
+ * @remarks This method is used by CachedDateFormat to
+ * format the milliseconds.
+ */
+ virtual void numberFormat(LogString& s, int n, log4cxx::helpers::Pool& p) const;
+
+
+ protected:
+ /**
+ * Constructor.
+ */
+ DateFormat();
+
+ private:
+ /**
+ * Copy constructor definition to prevent copying.
+ */
+ DateFormat(const DateFormat&);
+ /**
+ * Assignment definition to prevent assignment.
+ */
+ DateFormat& operator=(const DateFormat&);
+ };
+ LOG4CXX_PTR_DEF(DateFormat);
+
+
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_DATE_FORMAT_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datelayout.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datelayout.h
new file mode 100644
index 0000000000..ca271ca0ea
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datelayout.h
@@ -0,0 +1,91 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_DATE_LAYOUT_H
+#define _LOG4CXX_HELPERS_DATE_LAYOUT_H
+
+#include <log4cxx/layout.h>
+#include <log4cxx/helpers/dateformat.h>
+#include <log4cxx/helpers/timezone.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ /**
+ This abstract layout takes care of all the date related options and
+ formatting work.
+ */
+ class LOG4CXX_EXPORT DateLayout : public Layout
+ {
+ private:
+ LogString timeZoneID;
+ LogString dateFormatOption;
+
+ protected:
+ DateFormatPtr dateFormat;
+
+ public:
+ DateLayout(const LogString& dateLayoutOption);
+ virtual ~DateLayout();
+
+ virtual void activateOptions(log4cxx::helpers::Pool& p);
+ virtual void setOption(const LogString& option, const LogString& value);
+
+ /**
+ The value of the <b>DateFormat</b> option should be either an
+ argument to the constructor of helpers::DateFormat or one of
+ the strings <b>"NULL"</b>, <b>"RELATIVE"</b>, <b>"ABSOLUTE"</b>,
+ <b>"DATE"</b> or <b>"ISO8601</b>.
+ */
+ inline void setDateFormat(const LogString& dateFormat1)
+ { this->dateFormatOption.assign(dateFormat1); }
+
+ /**
+ Returns value of the <b>DateFormat</b> option.
+ */
+ inline const LogString& getDateFormat() const
+ { return dateFormatOption; }
+
+ /**
+ The <b>TimeZoneID</b> option is a time zone ID string in the format
+ expected by the <code>locale</code> C++ standard class.
+ */
+ inline void setTimeZone(const LogString& timeZone)
+ { this->timeZoneID.assign(timeZone); }
+
+ /**
+ Returns value of the <b>TimeZone</b> option.
+ */
+ inline const LogString& getTimeZone() const
+ { return timeZoneID; }
+
+ void formatDate(LogString &s,
+ const spi::LoggingEventPtr& event,
+ log4cxx::helpers::Pool& p) const;
+
+ private:
+ //
+ // prevent copy and assignment
+ DateLayout(const DateLayout&);
+ DateLayout& operator=(const DateLayout&);
+
+ };
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif // _LOG4CXX_HELPERS_DATE_LAYOUT_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datetimedateformat.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datetimedateformat.h
new file mode 100644
index 0000000000..1ed89886e4
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datetimedateformat.h
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_DATE_TIME_DATE_FORMAT_H
+#define _LOG4CXX_HELPERS_DATE_TIME_DATE_FORMAT_H
+
+#include <log4cxx/helpers/simpledateformat.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ /**
+ Formats a date in the format <b>dd MMM yyyy HH:mm:ss,SSS</b> for example,
+ "06 Nov 1994 15:49:37,459".
+ */
+ class LOG4CXX_EXPORT DateTimeDateFormat : public SimpleDateFormat
+ {
+ public:
+ DateTimeDateFormat()
+ : SimpleDateFormat(LOG4CXX_STR("dd MMM yyyy HH:mm:ss,SSS")) {}
+ DateTimeDateFormat(const std::locale* locale)
+ : SimpleDateFormat(LOG4CXX_STR("dd MMM yyyy HH:mm:ss,SSS"), locale) {}
+ };
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif // _LOG4CXX_HELPERS_DATE_TIME_DATE_FORMAT_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/exception.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/exception.h
new file mode 100644
index 0000000000..fb1daf5172
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/exception.h
@@ -0,0 +1,287 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_EXCEPTION_H
+#define _LOG4CXX_HELPERS_EXCEPTION_H
+
+#include <exception>
+#include <log4cxx/log4cxx.h>
+#include <log4cxx/logstring.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ /** The class Exception and its subclasses indicate conditions that a
+ reasonable application might want to catch.
+ */
+ class LOG4CXX_EXPORT Exception : public ::std::exception
+ {
+ public:
+ Exception(const char* msg);
+ Exception(const LogString& msg);
+ Exception(const Exception& src);
+ Exception& operator=(const Exception& src);
+ const char* what() const throw();
+ private:
+ enum { MSG_SIZE = 128 };
+ char msg[MSG_SIZE + 1];
+ }; // class Exception
+
+ /** RuntimeException is the parent class of those exceptions that can be
+ thrown during the normal operation of the process.
+ */
+ class LOG4CXX_EXPORT RuntimeException : public Exception
+ {
+ public:
+ RuntimeException(log4cxx_status_t stat);
+ RuntimeException(const LogString& msg);
+ RuntimeException(const RuntimeException& msg);
+ RuntimeException& operator=(const RuntimeException& src);
+ private:
+ static LogString formatMessage(log4cxx_status_t stat);
+ }; // class RuntimeException
+
+ /** Thrown when an application attempts to use null in a case where an
+ object is required.
+ */
+ class LOG4CXX_EXPORT NullPointerException : public RuntimeException
+ {
+ public:
+ NullPointerException(const LogString& msg);
+ NullPointerException(const NullPointerException& msg);
+ NullPointerException& operator=(const NullPointerException& src);
+ }; // class NullPointerException
+
+ /** Thrown to indicate that a method has been passed
+ an illegal or inappropriate argument.*/
+ class LOG4CXX_EXPORT IllegalArgumentException : public RuntimeException
+ {
+ public:
+ IllegalArgumentException(const LogString& msg);
+ IllegalArgumentException(const IllegalArgumentException&);
+ IllegalArgumentException& operator=(const IllegalArgumentException&);
+ }; // class IllegalArgumentException
+
+ /** Signals that an I/O exception of some sort has occurred. This class
+ is the general class of exceptions produced by failed or interrupted
+ I/O operations.
+ */
+ class LOG4CXX_EXPORT IOException : public Exception
+ {
+ public:
+ IOException();
+ IOException(log4cxx_status_t stat);
+ IOException(const LogString& msg);
+ IOException(const IOException &src);
+ IOException& operator=(const IOException&);
+ private:
+ static LogString formatMessage(log4cxx_status_t stat);
+ };
+
+ class LOG4CXX_EXPORT MissingResourceException : public Exception
+ {
+ public:
+ MissingResourceException(const LogString& key);
+ MissingResourceException(const MissingResourceException &src);
+ MissingResourceException& operator=(const MissingResourceException&);
+ private:
+ static LogString formatMessage(const LogString& key);
+ };
+
+ class LOG4CXX_EXPORT PoolException : public Exception
+ {
+ public:
+ PoolException(log4cxx_status_t stat);
+ PoolException(const PoolException &src);
+ PoolException& operator=(const PoolException&);
+ private:
+ static LogString formatMessage(log4cxx_status_t stat);
+ };
+
+
+ class LOG4CXX_EXPORT MutexException : public Exception
+ {
+ public:
+ MutexException(log4cxx_status_t stat);
+ MutexException(const MutexException &src);
+ MutexException& operator=(const MutexException&);
+ private:
+ static LogString formatMessage(log4cxx_status_t stat);
+ };
+
+ class LOG4CXX_EXPORT InterruptedException : public Exception
+ {
+ public:
+ InterruptedException();
+ InterruptedException(log4cxx_status_t stat);
+ InterruptedException(const InterruptedException &src);
+ InterruptedException& operator=(const InterruptedException&);
+ private:
+ static LogString formatMessage(log4cxx_status_t stat);
+ };
+
+ class LOG4CXX_EXPORT ThreadException
+ : public Exception {
+ public:
+ ThreadException(log4cxx_status_t stat);
+ ThreadException(const LogString& msg);
+ ThreadException(const ThreadException &src);
+ ThreadException& operator=(const ThreadException&);
+ private:
+ static LogString formatMessage(log4cxx_status_t stat);
+ };
+
+ class LOG4CXX_EXPORT TranscoderException : public Exception
+ {
+ public:
+ TranscoderException(log4cxx_status_t stat);
+ TranscoderException(const TranscoderException &src);
+ TranscoderException& operator=(const TranscoderException&);
+ private:
+ static LogString formatMessage(log4cxx_status_t stat);
+ };
+
+ class LOG4CXX_EXPORT IllegalMonitorStateException
+ : public Exception {
+ public:
+ IllegalMonitorStateException(const LogString& msg);
+ IllegalMonitorStateException(const IllegalMonitorStateException& msg);
+ IllegalMonitorStateException& operator=(const IllegalMonitorStateException& msg);
+ };
+
+ /**
+ Thrown when an application tries to create an instance of a class using
+ the newInstance method in class Class, but the specified class object
+ cannot be instantiated because it is an interface or is an abstract class.
+ */
+ class LOG4CXX_EXPORT InstantiationException : public Exception
+ {
+ public:
+ InstantiationException(const LogString& msg);
+ InstantiationException(const InstantiationException& msg);
+ InstantiationException& operator=(const InstantiationException& msg);
+ };
+
+ /**
+ Thrown when an application tries to load in a class through its
+ string name but no definition for the class with the specified name
+ could be found.
+ */
+ class LOG4CXX_EXPORT ClassNotFoundException : public Exception
+ {
+ public:
+ ClassNotFoundException(const LogString& className);
+ ClassNotFoundException(const ClassNotFoundException& msg);
+ ClassNotFoundException& operator=(const ClassNotFoundException& msg);
+ private:
+ static LogString formatMessage(const LogString& className);
+ };
+
+
+ class NoSuchElementException : public Exception {
+ public:
+ NoSuchElementException();
+ NoSuchElementException(const NoSuchElementException&);
+ NoSuchElementException& operator=(const NoSuchElementException&);
+ };
+
+ class IllegalStateException : public Exception {
+ public:
+ IllegalStateException();
+ IllegalStateException(const IllegalStateException&);
+ IllegalStateException& operator=(const IllegalStateException&);
+ };
+
+ /** Thrown to indicate that there is an error in the underlying
+ protocol, such as a TCP error.
+ */
+ class LOG4CXX_EXPORT SocketException : public IOException
+ {
+ public:
+ SocketException(const LogString& msg);
+ SocketException(log4cxx_status_t status);
+ SocketException(const SocketException&);
+ SocketException& operator=(const SocketException&);
+ };
+
+ /** Signals that an error occurred while attempting to connect a socket
+ to a remote address and port. Typically, the connection was refused
+ remotely (e.g., no process is listening on the remote address/port).
+ */
+ class LOG4CXX_EXPORT ConnectException : public SocketException
+ {
+ public:
+ ConnectException(log4cxx_status_t status);
+ ConnectException(const ConnectException& src);
+ ConnectException& operator=(const ConnectException&);
+ };
+
+ class LOG4CXX_EXPORT ClosedChannelException : public SocketException
+ {
+ public:
+ ClosedChannelException();
+ ClosedChannelException(const ClosedChannelException& src);
+ ClosedChannelException& operator=(const ClosedChannelException&);
+ };
+
+ /** Signals that an error occurred while attempting to bind a socket to
+ a local address and port. Typically, the port is in use, or the
+ requested local address could not be assigned.
+ */
+ class LOG4CXX_EXPORT BindException : public SocketException
+ {
+ public:
+ BindException(log4cxx_status_t status);
+ BindException(const BindException&);
+ BindException& operator=(const BindException&);
+ };
+
+ /** Signals that an I/O operation has been interrupted. An
+ InterruptedIOException is thrown to indicate that an input or output
+ transfer has been terminated because the thread performing it was
+ interrupted. The field bytesTransferred indicates how many bytes were
+ successfully transferred before the interruption occurred.
+ */
+ class LOG4CXX_EXPORT InterruptedIOException : public IOException
+ {
+ public:
+ InterruptedIOException(const LogString& msg);
+ InterruptedIOException(const InterruptedIOException&);
+ InterruptedIOException& operator=(const InterruptedIOException&);
+ };
+
+
+ /** Signals that an I/O operation has been interrupted. An
+ InterruptedIOException is thrown to indicate that an input or output
+ transfer has been terminated because the thread performing it was
+ interrupted. The field bytesTransferred indicates how many bytes were
+ successfully transferred before the interruption occurred.
+ */
+ class LOG4CXX_EXPORT SocketTimeoutException : public InterruptedIOException
+ {
+ public:
+ SocketTimeoutException();
+ SocketTimeoutException(const SocketTimeoutException&);
+ SocketTimeoutException& operator=(const SocketTimeoutException&);
+ };
+
+
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif // _LOG4CXX_HELPERS_EXCEPTION_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/fileinputstream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/fileinputstream.h
new file mode 100644
index 0000000000..fdf658a895
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/fileinputstream.h
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_FILEINPUTSTREAM_H
+#define _LOG4CXX_HELPERS_FILEINPUTSTREAM_H
+
+#include <log4cxx/helpers/inputstream.h>
+#include <log4cxx/file.h>
+#include <log4cxx/helpers/pool.h>
+
+
+namespace log4cxx
+{
+
+ namespace helpers {
+
+ /**
+ * InputStream implemented on top of APR file IO.
+ *
+ */
+ class LOG4CXX_EXPORT FileInputStream : public InputStream
+ {
+ private:
+ Pool pool;
+ apr_file_t* fileptr;
+
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(FileInputStream)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(FileInputStream)
+ LOG4CXX_CAST_ENTRY_CHAIN(InputStream)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Creates a FileInputStream by opening a connection to an actual
+ * file, the file named by the path name name in the file system.
+ *
+ * @param filename The system-dependent file name.
+ */
+ FileInputStream(const LogString& filename);
+ FileInputStream(const logchar* filename);
+
+ /**
+ * Creates a FileInputStream by opening a connection to an actual
+ * file, the file named by the File object file in the file system.
+ *
+ * @param aFile The file to be opened for reading.
+ */
+ FileInputStream(const File& aFile);
+
+ virtual ~FileInputStream();
+
+ /**
+ * Closes this file input stream and releases any system
+ * resources associated with the stream.
+ */
+ virtual void close();
+
+ /**
+ * Reads a sequence of bytes into the given buffer.
+ *
+ * @param buf The buffer into which bytes are to be transferred.
+ * @return the total number of bytes read into the buffer, or -1 if there
+ * is no more data because the end of the stream has been reached.
+ */
+ virtual int read(ByteBuffer& buf);
+
+ private:
+
+ FileInputStream(const FileInputStream&);
+
+ FileInputStream& operator=(const FileInputStream&);
+ void open(const LogString&);
+
+ };
+
+ LOG4CXX_PTR_DEF(FileInputStream);
+ } // namespace helpers
+
+} //namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_FILEINPUTSTREAM_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/fileoutputstream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/fileoutputstream.h
new file mode 100644
index 0000000000..b9e405a5cd
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/fileoutputstream.h
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_FILEOUTPUTSTREAM_H
+#define _LOG4CXX_HELPERS_FILEOUTPUTSTREAM_H
+
+#include <log4cxx/helpers/outputstream.h>
+#include <log4cxx/file.h>
+#include <log4cxx/helpers/pool.h>
+
+
+namespace log4cxx
+{
+
+ namespace helpers {
+
+ /**
+ * OutputStream implemented on top of APR file IO.
+ */
+ class LOG4CXX_EXPORT FileOutputStream : public OutputStream
+ {
+ private:
+ Pool pool;
+ apr_file_t* fileptr;
+
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(FileOutputStream)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(FileOutputStream)
+ LOG4CXX_CAST_ENTRY_CHAIN(OutputStream)
+ END_LOG4CXX_CAST_MAP()
+
+ FileOutputStream(const LogString& filename, bool append = false);
+ FileOutputStream(const logchar* filename, bool append = false);
+ virtual ~FileOutputStream();
+
+ virtual void close(Pool& p);
+ virtual void flush(Pool& p);
+ virtual void write(ByteBuffer& buf, Pool& p);
+
+ private:
+ FileOutputStream(const FileOutputStream&);
+ FileOutputStream& operator=(const FileOutputStream&);
+ static apr_file_t* open(const LogString& fn, bool append,
+ log4cxx::helpers::Pool& p);
+ };
+
+ LOG4CXX_PTR_DEF(FileOutputStream);
+ } // namespace helpers
+
+} //namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_FILEOUTPUTSTREAM_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/filewatchdog.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/filewatchdog.h
new file mode 100644
index 0000000000..0b8aa658f9
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/filewatchdog.h
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_FILEWATCHDOG_H
+#define _LOG4CXX_HELPERS_FILEWATCHDOG_H
+
+#include <log4cxx/logstring.h>
+#include <time.h>
+#include <log4cxx/helpers/pool.h>
+#include <log4cxx/helpers/thread.h>
+#include <log4cxx/file.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+
+ /**
+ Check every now and then that a certain file has not changed. If it
+ has, then call the #doOnChange method.
+ */
+ class LOG4CXX_EXPORT FileWatchdog
+ {
+ public:
+ virtual ~FileWatchdog();
+ /**
+ The default delay between every file modification check, set to 60
+ seconds. */
+ static long DEFAULT_DELAY /*= 60000*/;
+
+ protected:
+ /**
+ The name of the file to observe for changes.
+ */
+ File file;
+
+ /**
+ The delay to observe between every check.
+ By default set DEFAULT_DELAY.*/
+ long delay;
+ log4cxx_time_t lastModif;
+ bool warnedAlready;
+ volatile unsigned int interrupted;
+
+ protected:
+ FileWatchdog(const File& filename);
+ virtual void doOnChange() = 0;
+ void checkAndConfigure();
+
+ public:
+ /**
+ Set the delay to observe between each check of the file changes.
+ */
+ void setDelay(long delay1)
+ { this->delay = delay1; }
+
+ void start();
+
+ private:
+ static void* LOG4CXX_THREAD_FUNC run(apr_thread_t* thread, void* data);
+ Pool pool;
+ Thread thread;
+
+ FileWatchdog(const FileWatchdog&);
+ FileWatchdog& operator=(const FileWatchdog&);
+
+ };
+ } // namespace helpers
+} // namespace log4cxx
+
+
+#endif // _LOG4CXX_HELPERS_FILEWATCHDOG_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inetaddress.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inetaddress.h
new file mode 100644
index 0000000000..155205e133
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inetaddress.h
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPER_INETADDRESS_H
+#define _LOG4CXX_HELPER_INETADDRESS_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/helpers/objectptr.h>
+#include <log4cxx/logstring.h>
+#include <vector>
+#include <log4cxx/helpers/exception.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class LOG4CXX_EXPORT UnknownHostException : public Exception
+ {
+ public:
+ UnknownHostException(const LogString& msg);
+ UnknownHostException(const UnknownHostException& src);
+ UnknownHostException& operator=(const UnknownHostException& src);
+ };
+
+
+ class InetAddress;
+ LOG4CXX_PTR_DEF(InetAddress);
+ LOG4CXX_LIST_DEF(InetAddressList, InetAddressPtr);
+
+ class LOG4CXX_EXPORT InetAddress : public ObjectImpl
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(InetAddress)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(InetAddress)
+ END_LOG4CXX_CAST_MAP()
+
+ InetAddress(const LogString& hostName, const LogString& hostAddr);
+
+ /** Determines all the IP addresses of a host, given the host's name.
+ */
+ static InetAddressList getAllByName(const LogString& host);
+
+ /** Determines the IP address of a host, given the host's name.
+ */
+ static InetAddressPtr getByName(const LogString& host);
+
+ /** Returns the IP address string "%d.%d.%d.%d".
+ */
+ LogString getHostAddress() const;
+
+ /** Gets the host name for this IP address.
+ */
+ LogString getHostName() const;
+
+ /** Returns the local host.
+ */
+ static InetAddressPtr getLocalHost();
+
+ /** Returns an InetAddress which can be used as any
+ * address, for example when listening on a port from any
+ * remote addresss.
+ */
+ static InetAddressPtr anyAddress();
+
+ /** Converts this IP address to a String.
+ */
+ LogString toString() const;
+
+ private:
+ LogString ipAddrString;
+
+ LogString hostNameString;
+
+ }; // class InetAddress
+ } // namespace helpers
+} // namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+
+#endif // _LOG4CXX_HELPER_INETADDRESS_H
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inputstream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inputstream.h
new file mode 100644
index 0000000000..585d4f027e
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inputstream.h
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_INPUTSTREAM_H
+#define _LOG4CXX_HELPERS_INPUTSTREAM_H
+
+#include <log4cxx/helpers/objectimpl.h>
+
+namespace log4cxx
+{
+
+ namespace helpers {
+ class ByteBuffer;
+
+ /**
+ * Abstract class for reading from character streams.
+ *
+ */
+ class LOG4CXX_EXPORT InputStream : public ObjectImpl
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(InputStream)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(InputStream)
+ END_LOG4CXX_CAST_MAP()
+
+ protected:
+ InputStream();
+
+ virtual ~InputStream();
+
+ public:
+ /**
+ * Reads a sequence of bytes into the given buffer.
+ *
+ * @param dst The buffer into which bytes are to be transferred.
+ * @return the total number of bytes read into the buffer, or -1 if there
+ * is no more data because the end of the stream has been reached.
+ */
+ virtual int read(ByteBuffer& dst) = 0;
+
+ /**
+ * Closes this input stream and releases any system
+ * resources associated with the stream.
+ */
+ virtual void close() = 0;
+
+ private:
+ InputStream(const InputStream&);
+ InputStream& operator=(const InputStream&);
+ };
+
+ LOG4CXX_PTR_DEF(InputStream);
+ } // namespace helpers
+
+} //namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_INPUTSTREAM_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inputstreamreader.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inputstreamreader.h
new file mode 100644
index 0000000000..1f186d9f44
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inputstreamreader.h
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_INPUTSTREAMREADER_H
+#define _LOG4CXX_HELPERS_INPUTSTREAMREADER_H
+
+#include <log4cxx/helpers/reader.h>
+#include <log4cxx/helpers/inputstream.h>
+#include <log4cxx/helpers/charsetdecoder.h>
+
+namespace log4cxx
+{
+
+ namespace helpers {
+
+ /**
+ * Class for reading from character streams.
+ * Decorates a byte based InputStream and provides appropriate
+ * conversion to characters.
+ */
+ class LOG4CXX_EXPORT InputStreamReader : public Reader
+ {
+ private:
+ InputStreamPtr in;
+ CharsetDecoderPtr dec;
+
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(InputStreamReader)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(InputStreamReader)
+ LOG4CXX_CAST_ENTRY_CHAIN(Reader)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Creates an InputStreamReader that uses the default charset.
+ *
+ * @param in The input stream to decorate.
+ */
+ InputStreamReader(const InputStreamPtr& in);
+
+ /**
+ * Creates an InputStreamReader that uses the given charset decoder.
+ *
+ * @param in The input stream to decorate.
+ * @param enc The charset decoder to use for the conversion.
+ */
+ InputStreamReader(const InputStreamPtr& in, const CharsetDecoderPtr &enc);
+
+ ~InputStreamReader();
+
+ /**
+ * Closes the stream.
+ *
+ * @param p The memory pool associated with the reader.
+ */
+ virtual void close(Pool& p);
+
+ /**
+ * @return The complete stream contents as a LogString.
+ * @param p The memory pool associated with the reader.
+ */
+ virtual LogString read(Pool& p);
+
+ /**
+ * @return The name of the character encoding being used by this stream.
+ */
+ LogString getEncoding() const;
+
+ private:
+ InputStreamReader(const InputStreamReader&);
+
+ InputStreamReader& operator=(const InputStreamReader&);
+ };
+
+ LOG4CXX_PTR_DEF(InputStreamReader);
+ } // namespace helpers
+
+} //namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_INPUTSTREAMREADER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/integer.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/integer.h
new file mode 100644
index 0000000000..957edb070f
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/integer.h
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_INTEGER_H
+#define _LOG4CXX_HELPERS_INTEGER_H
+
+#include <log4cxx/helpers/objectimpl.h>
+
+
+namespace log4cxx {
+ namespace helpers {
+ class LOG4CXX_EXPORT Integer : public ObjectImpl {
+ const int val;
+ public:
+ DECLARE_LOG4CXX_OBJECT(Integer)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(Integer)
+ END_LOG4CXX_CAST_MAP()
+
+ Integer();
+ Integer(int i);
+ virtual ~Integer();
+
+ inline int intValue() const {
+ return val;
+ }
+
+ };
+
+ LOG4CXX_PTR_DEF(Integer);
+
+ }
+}
+
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/iso8601dateformat.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/iso8601dateformat.h
new file mode 100644
index 0000000000..b4e7e6e8d3
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/iso8601dateformat.h
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_ISO_8601_DATE_FORMAT_H
+#define _LOG4CXX_HELPERS_ISO_8601_DATE_FORMAT_H
+
+#include <log4cxx/helpers/simpledateformat.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ /**
+ Formats a date in the format <b>yyyy-MM-dd HH:mm:ss,SSS</b> for example
+ "1999-11-27 15:49:37,459".
+
+ <p>Refer to the
+ <a href=http://www.cl.cam.ac.uk/~mgk25/iso-time.html>summary of the
+ International Standard Date and Time Notation</a> for more
+ information on this format.
+ */
+ class LOG4CXX_EXPORT ISO8601DateFormat : public SimpleDateFormat
+ {
+ public:
+ ISO8601DateFormat()
+ : SimpleDateFormat(LOG4CXX_STR("yyyy-MM-dd HH:mm:ss,SSS")) {}
+ };
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif // _LOG4CXX_HELPERS_ISO_8601_DATE_FORMAT_H
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/loader.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/loader.h
new file mode 100644
index 0000000000..613b3239ce
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/loader.h
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_LOADER_H
+#define _LOG4CXX_HELPERS_LOADER_H
+
+#include <log4cxx/helpers/objectptr.h>
+#include <log4cxx/logstring.h>
+#include <log4cxx/helpers/exception.h>
+#include <log4cxx/helpers/inputstream.h>
+
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class Class;
+
+ class LOG4CXX_EXPORT Loader
+ {
+ public:
+ static const Class& loadClass(const LogString& clazz);
+
+ static InputStreamPtr getResourceAsStream(
+ const LogString& name);
+ };
+ } // namespace helpers
+} // namespace log4cxx
+#endif //_LOG4CXX_HELPERS_LOADER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/locale.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/locale.h
new file mode 100644
index 0000000000..6b0c881ef8
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/locale.h
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_LOCALE_H
+#define _LOG4CXX_HELPERS_LOCALE_H
+
+#include <log4cxx/logstring.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class LOG4CXX_EXPORT Locale
+ {
+ public:
+ Locale(const LogString& language);
+ Locale(const LogString& language, const LogString& country);
+ Locale(const LogString& language, const LogString& country,
+ const LogString& variant);
+
+ const LogString& getLanguage() const;
+ const LogString& getCountry() const;
+ const LogString& getVariant() const;
+
+ protected:
+ Locale(const Locale&);
+ Locale& operator=(const Locale&);
+ const LogString language;
+ const LogString country;
+ const LogString variant;
+ }; // class Locale
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif // _LOG4CXX_HELPERS_LOCALE_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/loglog.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/loglog.h
new file mode 100644
index 0000000000..3c1f133e78
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/loglog.h
@@ -0,0 +1,113 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_LOG_LOG_H
+#define _LOG4CXX_HELPERS_LOG_LOG_H
+
+#include <log4cxx/logstring.h>
+#include <log4cxx/helpers/mutex.h>
+#include <exception>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ /**
+ This class used to output log statements from within the log4cxx package.
+
+ <p>Log4cxx components cannot make log4cxx logging calls. However, it is
+ sometimes useful for the user to learn about what log4cxx is
+ doing. You can enable log4cxx internal logging by calling the
+ <b>#setInternalDebugging</b> method.
+
+ <p>All log4cxx internal debug calls go to standard output
+ where as internal error messages are sent to
+ standard error output. All internal messages are prepended with
+ the string "log4cxx: ".
+ */
+ class LOG4CXX_EXPORT LogLog
+ {
+ private:
+ bool debugEnabled;
+
+ /**
+ In quietMode not even errors generate any output.
+ */
+ bool quietMode;
+ Mutex mutex;
+ LogLog();
+ LogLog(const LogLog&);
+ LogLog& operator=(const LogLog&);
+ static LogLog& getInstance();
+
+
+ public:
+ /**
+ Allows to enable/disable log4cxx internal logging.
+ */
+ static void setInternalDebugging(bool enabled);
+
+ /**
+ This method is used to output log4cxx internal debug
+ statements. Output goes to the standard output.
+ */
+ static void debug(const LogString& msg);
+ static void debug(const LogString& msg, const std::exception& e);
+
+
+ /**
+ This method is used to output log4cxx internal error
+ statements. There is no way to disable error statements.
+ Output goes to stderr.
+ */
+ static void error(const LogString& msg);
+ static void error(const LogString& msg, const std::exception& e);
+
+
+ /**
+ In quiet mode LogLog generates strictly no output, not even
+ for errors.
+
+ @param quietMode <code>true</code> for no output.
+ */
+ static void setQuietMode(bool quietMode);
+
+ /**
+ This method is used to output log4cxx internal warning
+ statements. There is no way to disable warning statements.
+ Output goes to stderr.
+ */
+ static void warn(const LogString& msg);
+ static void warn(const LogString& msg, const std::exception& e);
+
+ private:
+ static void emit(const LogString& msg);
+ static void emit(const std::exception& ex);
+ };
+ } // namespace helpers
+} // namespace log4cxx
+
+#define LOGLOG_DEBUG(log) { \
+ log4cxx::helpers::LogLog::debug(log) ; }
+
+#define LOGLOG_WARN(log) { \
+ log4cxx::helpers::LogLog::warn(log) ; }
+
+#define LOGLOG_ERROR(log) { \
+ log4cxx::helpers::LogLog::warn(log); }
+
+#endif //_LOG4CXX_HELPERS_LOG_LOG_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/messagebuffer.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/messagebuffer.h
new file mode 100644
index 0000000000..c026dc5d06
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/messagebuffer.h
@@ -0,0 +1,828 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_MESSAGE_BUFFER_H
+#define _LOG4CXX_MESSAGE_BUFFER_H
+
+#include <log4cxx/log4cxx.h>
+#include <log4cxx/logstring.h>
+#include <sstream>
+
+namespace log4cxx {
+
+
+ namespace helpers {
+
+ typedef std::ios_base& (*ios_base_manip)(std::ios_base&);
+
+ /**
+ * This class is used by the LOG4CXX_INFO and similar
+ * macros to support insertion operators in the message parameter.
+ * The class is not intended for use outside of that context.
+ */
+ class LOG4CXX_EXPORT CharMessageBuffer {
+ public:
+ /**
+ * Creates a new instance.
+ */
+ CharMessageBuffer();
+ /**
+ * Destructor.
+ */
+ ~CharMessageBuffer();
+
+
+ /**
+ * Appends string to buffer.
+ * @param msg string append.
+ * @return this buffer.
+ */
+ CharMessageBuffer& operator<<(const std::basic_string<char>& msg);
+ /**
+ * Appends string to buffer.
+ * @param msg string to append.
+ * @return this buffer.
+ */
+ CharMessageBuffer& operator<<(const char* msg);
+ /**
+ * Appends string to buffer.
+ * @param msg string to append.
+ * @return this buffer.
+ */
+ CharMessageBuffer& operator<<(char* msg);
+
+ /**
+ * Appends character to buffer.
+ * @param msg character to append.
+ * @return this buffer.
+ */
+ CharMessageBuffer& operator<<(const char msg);
+
+ /**
+ * Insertion operator for STL manipulators such as std::fixed.
+ * @param manip manipulator.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(ios_base_manip manip);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(bool val);
+
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(short val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(int val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(unsigned int val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(long val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(unsigned long val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(float val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(double val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(long double val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(void* val);
+
+ /**
+ * Cast to ostream.
+ */
+ operator std::basic_ostream<char>&();
+
+ /**
+ * Get content of buffer.
+ * @param os used only to signal that
+ * the embedded stream was used.
+ */
+ const std::basic_string<char>& str(std::basic_ostream<char>& os);
+
+ /**
+ * Get content of buffer.
+ * @param buf used only to signal that
+ * the embedded stream was not used.
+ */
+ const std::basic_string<char>& str(CharMessageBuffer& buf);
+
+ /**
+ * Returns true if buffer has an encapsulated STL stream.
+ * @return true if STL stream was created.
+ */
+ bool hasStream() const;
+
+ private:
+ /**
+ * Prevent use of default copy constructor.
+ */
+ CharMessageBuffer(const CharMessageBuffer&);
+ /**
+ * Prevent use of default assignment operator.
+ */
+ CharMessageBuffer& operator=(const CharMessageBuffer&);
+
+ /**
+ * Encapsulated std::string.
+ */
+ std::basic_string<char> buf;
+ /**
+ * Encapsulated stream, created on demand.
+ */
+ std::basic_ostringstream<char>* stream;
+ };
+
+template<class V>
+std::basic_ostream<char>& operator<<(CharMessageBuffer& os, const V& val) {
+ return ((std::basic_ostream<char>&) os) << val;
+}
+
+#if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API || LOG4CXX_LOGCHAR_IS_UNICHAR
+ /**
+ * This class is designed to support insertion operations
+ * in the message argument to the LOG4CXX_INFO and similar
+ * macros and is not designed for general purpose use.
+ */
+ class LOG4CXX_EXPORT UniCharMessageBuffer {
+ public:
+ /**
+ * Creates a new instance.
+ */
+ UniCharMessageBuffer();
+ /**
+ * Destructor.
+ */
+ ~UniCharMessageBuffer();
+
+ typedef std::basic_ostream<UniChar> uostream;
+
+
+ /**
+ * Appends string to buffer.
+ * @param msg string append.
+ * @return this buffer.
+ */
+ UniCharMessageBuffer& operator<<(const std::basic_string<UniChar>& msg);
+ /**
+ * Appends string to buffer.
+ * @param msg string to append.
+ * @return this buffer.
+ */
+ UniCharMessageBuffer& operator<<(const UniChar* msg);
+ /**
+ * Appends string to buffer.
+ * @param msg string to append.
+ * @return this buffer.
+ */
+ UniCharMessageBuffer& operator<<(UniChar* msg);
+
+ /**
+ * Appends character to buffer.
+ * @param msg character to append.
+ * @return this buffer.
+ */
+ UniCharMessageBuffer& operator<<(const UniChar msg);
+
+#if LOG4CXX_CFSTRING_API
+ /**
+ * Appends a string into the buffer and
+ * fixes the buffer to use char characters.
+ * @param msg message to append.
+ * @return encapsulated CharMessageBuffer.
+ */
+ UniCharMessageBuffer& operator<<(const CFStringRef& msg);
+#endif
+
+ /**
+ * Insertion operator for STL manipulators such as std::fixed.
+ * @param manip manipulator.
+ * @return encapsulated STL stream.
+ */
+ uostream& operator<<(ios_base_manip manip);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ uostream& operator<<(bool val);
+
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ uostream& operator<<(short val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ uostream& operator<<(int val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ uostream& operator<<(unsigned int val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ uostream& operator<<(long val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ uostream& operator<<(unsigned long val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ uostream& operator<<(float val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ uostream& operator<<(double val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ uostream& operator<<(long double val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ uostream& operator<<(void* val);
+
+
+ /**
+ * Cast to ostream.
+ */
+ operator uostream&();
+
+ /**
+ * Get content of buffer.
+ * @param os used only to signal that
+ * the embedded stream was used.
+ */
+ const std::basic_string<UniChar>& str(uostream& os);
+
+ /**
+ * Get content of buffer.
+ * @param buf used only to signal that
+ * the embedded stream was not used.
+ */
+ const std::basic_string<UniChar>& str(UniCharMessageBuffer& buf);
+
+ /**
+ * Returns true if buffer has an encapsulated STL stream.
+ * @return true if STL stream was created.
+ */
+ bool hasStream() const;
+
+ private:
+ /**
+ * Prevent use of default copy constructor.
+ */
+ UniCharMessageBuffer(const UniCharMessageBuffer&);
+ /**
+ * Prevent use of default assignment operator.
+ */
+ UniCharMessageBuffer& operator=(const UniCharMessageBuffer&);
+
+ /**
+ * Encapsulated std::string.
+ */
+ std::basic_string<UniChar> buf;
+ /**
+ * Encapsulated stream, created on demand.
+ */
+ std::basic_ostringstream<UniChar>* stream;
+ };
+
+template<class V>
+UniCharMessageBuffer::uostream& operator<<(UniCharMessageBuffer& os, const V& val) {
+ return ((UniCharMessageBuffer::uostream&) os) << val;
+}
+#endif
+
+#if LOG4CXX_WCHAR_T_API
+ /**
+ * This class is designed to support insertion operations
+ * in the message argument to the LOG4CXX_INFO and similar
+ * macros and is not designed for general purpose use.
+ */
+ class LOG4CXX_EXPORT WideMessageBuffer {
+ public:
+ /**
+ * Creates a new instance.
+ */
+ WideMessageBuffer();
+ /**
+ * Destructor.
+ */
+ ~WideMessageBuffer();
+
+
+ /**
+ * Appends string to buffer.
+ * @param msg string append.
+ * @return this buffer.
+ */
+ WideMessageBuffer& operator<<(const std::basic_string<wchar_t>& msg);
+ /**
+ * Appends string to buffer.
+ * @param msg string to append.
+ * @return this buffer.
+ */
+ WideMessageBuffer& operator<<(const wchar_t* msg);
+ /**
+ * Appends string to buffer.
+ * @param msg string to append.
+ * @return this buffer.
+ */
+ WideMessageBuffer& operator<<(wchar_t* msg);
+
+ /**
+ * Appends character to buffer.
+ * @param msg character to append.
+ * @return this buffer.
+ */
+ WideMessageBuffer& operator<<(const wchar_t msg);
+
+ /**
+ * Insertion operator for STL manipulators such as std::fixed.
+ * @param manip manipulator.
+ * @return encapsulated STL stream.
+ */
+ std::basic_ostream<wchar_t>& operator<<(ios_base_manip manip);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::basic_ostream<wchar_t>& operator<<(bool val);
+
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::basic_ostream<wchar_t>& operator<<(short val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::basic_ostream<wchar_t>& operator<<(int val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::basic_ostream<wchar_t>& operator<<(unsigned int val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::basic_ostream<wchar_t>& operator<<(long val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::basic_ostream<wchar_t>& operator<<(unsigned long val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::basic_ostream<wchar_t>& operator<<(float val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::basic_ostream<wchar_t>& operator<<(double val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::basic_ostream<wchar_t>& operator<<(long double val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::basic_ostream<wchar_t>& operator<<(void* val);
+
+
+ /**
+ * Cast to ostream.
+ */
+ operator std::basic_ostream<wchar_t>&();
+
+ /**
+ * Get content of buffer.
+ * @param os used only to signal that
+ * the embedded stream was used.
+ */
+ const std::basic_string<wchar_t>& str(std::basic_ostream<wchar_t>& os);
+
+ /**
+ * Get content of buffer.
+ * @param buf used only to signal that
+ * the embedded stream was not used.
+ */
+ const std::basic_string<wchar_t>& str(WideMessageBuffer& buf);
+
+ /**
+ * Returns true if buffer has an encapsulated STL stream.
+ * @return true if STL stream was created.
+ */
+ bool hasStream() const;
+
+ private:
+ /**
+ * Prevent use of default copy constructor.
+ */
+ WideMessageBuffer(const WideMessageBuffer&);
+ /**
+ * Prevent use of default assignment operator.
+ */
+ WideMessageBuffer& operator=(const WideMessageBuffer&);
+
+ /**
+ * Encapsulated std::string.
+ */
+ std::basic_string<wchar_t> buf;
+ /**
+ * Encapsulated stream, created on demand.
+ */
+ std::basic_ostringstream<wchar_t>* stream;
+ };
+
+template<class V>
+std::basic_ostream<wchar_t>& operator<<(WideMessageBuffer& os, const V& val) {
+ return ((std::basic_ostream<wchar_t>&) os) << val;
+}
+
+ /**
+ * This class is used by the LOG4CXX_INFO and similar
+ * macros to support insertion operators in the message parameter.
+ * The class is not intended for use outside of that context.
+ */
+ class LOG4CXX_EXPORT MessageBuffer {
+ public:
+ /**
+ * Creates a new instance.
+ */
+ MessageBuffer();
+ /**
+ * Destructor.
+ */
+ ~MessageBuffer();
+
+ /**
+ * Cast to ostream.
+ */
+ operator std::ostream&();
+
+ /**
+ * Appends a string into the buffer and
+ * fixes the buffer to use char characters.
+ * @param msg message to append.
+ * @return encapsulated CharMessageBuffer.
+ */
+ CharMessageBuffer& operator<<(const std::string& msg);
+ /**
+ * Appends a string into the buffer and
+ * fixes the buffer to use char characters.
+ * @param msg message to append.
+ * @return encapsulated CharMessageBuffer.
+ */
+ CharMessageBuffer& operator<<(const char* msg);
+ /**
+ * Appends a string into the buffer and
+ * fixes the buffer to use char characters.
+ * @param msg message to append.
+ * @return encapsulated CharMessageBuffer.
+ */
+ CharMessageBuffer& operator<<(char* msg);
+
+ /**
+ * Appends a string into the buffer and
+ * fixes the buffer to use char characters.
+ * @param msg message to append.
+ * @return encapsulated CharMessageBuffer.
+ */
+ CharMessageBuffer& operator<<(const char msg);
+
+ /**
+ * Get content of buffer.
+ * @param buf used only to signal
+ * the character type and that
+ * the embedded stream was not used.
+ */
+ const std::string& str(CharMessageBuffer& buf);
+
+ /**
+ * Get content of buffer.
+ * @param os used only to signal
+ * the character type and that
+ * the embedded stream was used.
+ */
+ const std::string& str(std::ostream& os);
+
+ /**
+ * Appends a string into the buffer and
+ * fixes the buffer to use char characters.
+ * @param msg message to append.
+ * @return encapsulated CharMessageBuffer.
+ */
+ WideMessageBuffer& operator<<(const std::wstring& msg);
+ /**
+ * Appends a string into the buffer and
+ * fixes the buffer to use char characters.
+ * @param msg message to append.
+ * @return encapsulated CharMessageBuffer.
+ */
+ WideMessageBuffer& operator<<(const wchar_t* msg);
+ /**
+ * Appends a string into the buffer and
+ * fixes the buffer to use char characters.
+ * @param msg message to append.
+ * @return encapsulated CharMessageBuffer.
+ */
+ WideMessageBuffer& operator<<(wchar_t* msg);
+ /**
+ * Appends a string into the buffer and
+ * fixes the buffer to use char characters.
+ * @param msg message to append.
+ * @return encapsulated CharMessageBuffer.
+ */
+ WideMessageBuffer& operator<<(const wchar_t msg);
+
+#if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API
+ /**
+ * Appends a string into the buffer and
+ * fixes the buffer to use char characters.
+ * @param msg message to append.
+ * @return encapsulated CharMessageBuffer.
+ */
+ UniCharMessageBuffer& operator<<(const std::basic_string<UniChar>& msg);
+ /**
+ * Appends a string into the buffer and
+ * fixes the buffer to use char characters.
+ * @param msg message to append.
+ * @return encapsulated CharMessageBuffer.
+ */
+ UniCharMessageBuffer& operator<<(const UniChar* msg);
+ /**
+ * Appends a string into the buffer and
+ * fixes the buffer to use char characters.
+ * @param msg message to append.
+ * @return encapsulated CharMessageBuffer.
+ */
+ UniCharMessageBuffer& operator<<(UniChar* msg);
+ /**
+ * Appends a string into the buffer and
+ * fixes the buffer to use char characters.
+ * @param msg message to append.
+ * @return encapsulated CharMessageBuffer.
+ */
+ UniCharMessageBuffer& operator<<(const UniChar msg);
+#endif
+
+#if LOG4CXX_CFSTRING_API
+ /**
+ * Appends a string into the buffer and
+ * fixes the buffer to use char characters.
+ * @param msg message to append.
+ * @return encapsulated CharMessageBuffer.
+ */
+ UniCharMessageBuffer& operator<<(const CFStringRef& msg);
+#endif
+
+ /**
+ * Insertion operator for STL manipulators such as std::fixed.
+ * @param manip manipulator.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(ios_base_manip manip);
+
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(bool val);
+
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(short val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(int val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(unsigned int val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(long val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(unsigned long val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(float val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(double val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(long double val);
+ /**
+ * Insertion operator for built-in type.
+ * @param val build in type.
+ * @return encapsulated STL stream.
+ */
+ std::ostream& operator<<(void* val);
+ /**
+ * Get content of buffer.
+ * @param buf used only to signal
+ * the character type and that
+ * the embedded stream was not used.
+ */
+ const std::wstring& str(WideMessageBuffer& buf);
+
+ /**
+ * Get content of buffer.
+ * @param os used only to signal
+ * the character type and that
+ * the embedded stream was used.
+ */
+ const std::wstring& str(std::basic_ostream<wchar_t>& os);
+
+#if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API
+ /**
+ * Get content of buffer.
+ * @param buf used only to signal
+ * the character type and that
+ * the embedded stream was not used.
+ */
+ const std::basic_string<UniChar>& str(UniCharMessageBuffer& buf);
+
+ /**
+ * Get content of buffer.
+ * @param os used only to signal
+ * the character type and that
+ * the embedded stream was used.
+ */
+ const std::basic_string<UniChar>& str(UniCharMessageBuffer::uostream& os);
+#endif
+
+ /**
+ * Returns true if buffer has an encapsulated STL stream.
+ * @return true if STL stream was created.
+ */
+ bool hasStream() const;
+
+ private:
+ /**
+ * Prevent use of default copy constructor.
+ */
+ MessageBuffer(const MessageBuffer&);
+ /**
+ * Prevent use of default assignment operator.
+ */
+ MessageBuffer& operator=(const MessageBuffer&);
+
+ /**
+ * Character message buffer.
+ */
+ CharMessageBuffer cbuf;
+
+ /**
+ * Encapsulated wide message buffer, created on demand.
+ */
+ WideMessageBuffer* wbuf;
+#if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API
+ /**
+ * Encapsulated wide message buffer, created on demand.
+ */
+ UniCharMessageBuffer* ubuf;
+#endif
+ };
+
+template<class V>
+std::ostream& operator<<(MessageBuffer& os, const V& val) {
+ return ((std::ostream&) os) << val;
+}
+
+#if LOG4CXX_LOGCHAR_IS_UTF8
+typedef CharMessageBuffer LogCharMessageBuffer;
+#endif
+
+#if LOG4CXX_LOGCHAR_IS_WCHAR
+typedef WideMessageBuffer LogCharMessageBuffer;
+#endif
+
+#if LOG4CXX_LOGCHAR_IS_UNICHAR
+typedef UniCharMessageBuffer LogCharMessageBuffer;
+#endif
+
+#else
+typedef CharMessageBuffer MessageBuffer;
+typedef CharMessageBuffer LogCharMessageBuffer;
+#endif
+
+}}
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/mutex.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/mutex.h
new file mode 100644
index 0000000000..d26487bad4
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/mutex.h
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_MUTEX_H
+#define _LOG4CXX_HELPERS_MUTEX_H
+
+#include <log4cxx/log4cxx.h>
+
+extern "C" {
+ struct apr_thread_mutex_t;
+ struct apr_pool_t;
+}
+
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class Pool;
+
+ class LOG4CXX_EXPORT Mutex
+ {
+ public:
+ Mutex(log4cxx::helpers::Pool& p);
+ Mutex(apr_pool_t* p);
+ ~Mutex();
+ apr_thread_mutex_t* getAPRMutex() const;
+
+ private:
+ Mutex(const Mutex&);
+ Mutex& operator=(const Mutex&);
+ apr_thread_mutex_t* mutex;
+ };
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_MUTEX_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/object.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/object.h
new file mode 100644
index 0000000000..92d44c55b9
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/object.h
@@ -0,0 +1,138 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_OBJECT_H
+#define _LOG4CXX_HELPERS_OBJECT_H
+
+#include <log4cxx/logstring.h>
+#include <log4cxx/helpers/class.h>
+#include <log4cxx/helpers/objectptr.h>
+#include <log4cxx/helpers/classregistration.h>
+
+
+#define DECLARE_ABSTRACT_LOG4CXX_OBJECT(object)\
+public:\
+class Clazz##object : public helpers::Class\
+{\
+public:\
+ Clazz##object() : helpers::Class() {}\
+ virtual ~Clazz##object() {}\
+ virtual log4cxx::LogString getName() const { return LOG4CXX_STR(#object); } \
+};\
+virtual const helpers::Class& getClass() const;\
+static const helpers::Class& getStaticClass(); \
+static const log4cxx::helpers::ClassRegistration& registerClass();
+
+#define DECLARE_LOG4CXX_OBJECT(object)\
+public:\
+class Clazz##object : public helpers::Class\
+{\
+public:\
+ Clazz##object() : helpers::Class() {}\
+ virtual ~Clazz##object() {}\
+ virtual log4cxx::LogString getName() const { return LOG4CXX_STR(#object); } \
+ virtual helpers::ObjectPtr newInstance() const\
+ {\
+ return new object();\
+ }\
+};\
+virtual const helpers::Class& getClass() const;\
+static const helpers::Class& getStaticClass(); \
+static const log4cxx::helpers::ClassRegistration& registerClass();
+
+#define DECLARE_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(object, class)\
+public:\
+virtual const helpers::Class& getClass() const;\
+static const helpers::Class& getStaticClass();\
+static const log4cxx::helpers::ClassRegistration& registerClass();
+
+#define IMPLEMENT_LOG4CXX_OBJECT(object)\
+const log4cxx::helpers::Class& object::getClass() const { return getStaticClass(); }\
+const log4cxx::helpers::Class& object::getStaticClass() { \
+ static Clazz##object theClass; \
+ return theClass; \
+} \
+const log4cxx::helpers::ClassRegistration& object::registerClass() { \
+ static log4cxx::helpers::ClassRegistration classReg(object::getStaticClass); \
+ return classReg; \
+}\
+namespace log4cxx { namespace classes { \
+const log4cxx::helpers::ClassRegistration& object##Registration = object::registerClass(); \
+} }
+
+
+#define IMPLEMENT_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(object, class)\
+const log4cxx::helpers::Class& object::getClass() const { return getStaticClass(); }\
+const log4cxx::helpers::Class& object::getStaticClass() { \
+ static class theClass; \
+ return theClass; \
+} \
+const log4cxx::helpers::ClassRegistration& object::registerClass() { \
+ static log4cxx::helpers::ClassRegistration classReg(object::getStaticClass); \
+ return classReg; \
+}\
+namespace log4cxx { namespace classes { \
+const log4cxx::helpers::ClassRegistration& object##Registration = object::registerClass(); \
+} }
+
+namespace log4cxx
+{
+ class AppenderSkeleton;
+ class Logger;
+
+ namespace helpers
+ {
+ class Pool;
+
+ /** base class for java-like objects.*/
+ class LOG4CXX_EXPORT Object
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(Object)
+ virtual ~Object() {}
+ virtual void addRef() const = 0;
+ virtual void releaseRef() const = 0;
+ virtual bool instanceof(const Class& clazz) const = 0;
+ virtual const void * cast(const Class& clazz) const = 0;
+ };
+ LOG4CXX_PTR_DEF(Object);
+ }
+}
+
+#define BEGIN_LOG4CXX_CAST_MAP()\
+const void * cast(const helpers::Class& clazz) const\
+{\
+ const void * object = 0;\
+ if (&clazz == &helpers::Object::getStaticClass()) return (const helpers::Object *)this;
+
+#define END_LOG4CXX_CAST_MAP()\
+ return object;\
+}\
+bool instanceof(const helpers::Class& clazz) const\
+{ return cast(clazz) != 0; }
+
+#define LOG4CXX_CAST_ENTRY(Interface)\
+if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
+
+#define LOG4CXX_CAST_ENTRY2(Interface, interface2)\
+if (&clazz == &Interface::getStaticClass()) return (Interface *)(interface2 *)this;
+
+#define LOG4CXX_CAST_ENTRY_CHAIN(Interface)\
+object = Interface::cast(clazz);\
+if (object != 0) return object;
+
+#endif //_LOG4CXX_HELPERS_OBJECT_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectimpl.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectimpl.h
new file mode 100644
index 0000000000..7de941778e
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectimpl.h
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_OBJECT_IMPL_H
+#define _LOG4CXX_HELPERS_OBJECT_IMPL_H
+
+#include <log4cxx/helpers/object.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ /** Implementation class for Object.*/
+ class LOG4CXX_EXPORT ObjectImpl : public virtual Object
+ {
+ public:
+ ObjectImpl();
+ virtual ~ObjectImpl();
+ void addRef() const;
+ void releaseRef() const;
+
+ protected:
+ mutable unsigned int volatile ref;
+
+ private:
+ //
+ // prevent object copy and assignment
+ //
+ ObjectImpl(const ObjectImpl&);
+ ObjectImpl& operator=(const ObjectImpl&);
+ };
+ }
+}
+
+#endif //_LOG4CXX_HELPERS_OBJECT_IMPL_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectoutputstream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectoutputstream.h
new file mode 100644
index 0000000000..92f56fe42e
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectoutputstream.h
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_OBJECTOUTPUTSTREAM_H
+#define _LOG4CXX_HELPERS_OBJECTOUTPUTSTREAM_H
+
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/mdc.h>
+#include <log4cxx/helpers/outputstream.h>
+#include <log4cxx/helpers/charsetencoder.h>
+
+namespace log4cxx
+{
+
+ namespace helpers {
+
+ /**
+ * Emulates java serialization.
+ */
+ class LOG4CXX_EXPORT ObjectOutputStream : public ObjectImpl
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(ObjectOutputStream)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(ObjectOutputStream)
+ END_LOG4CXX_CAST_MAP()
+
+ ObjectOutputStream(OutputStreamPtr os, Pool& p);
+ virtual ~ObjectOutputStream();
+
+ void close(Pool& p);
+ void flush(Pool& p);
+ void writeObject(const LogString&, Pool& p);
+ void writeUTFString(const std::string&, Pool& p);
+ void writeObject(const MDC::Map& mdc, Pool& p);
+ void writeInt(int val, Pool& p);
+ void writeLong(log4cxx_time_t val, Pool& p);
+ void writeProlog(const char* className,
+ int classDescIncrement,
+ char* bytes,
+ size_t len,
+ Pool& p);
+ void writeNull(Pool& p);
+
+ enum { STREAM_MAGIC = 0xACED };
+ enum { STREAM_VERSION = 5 };
+ enum { TC_NULL = 0x70,
+ TC_REFERENCE = 0x71,
+ TC_CLASSDESC = 0x72,
+ TC_OBJECT = 0x73,
+ TC_STRING = 0x74,
+ TC_ARRAY = 0x75,
+ TC_CLASS = 0x76,
+ TC_BLOCKDATA = 0x77,
+ TC_ENDBLOCKDATA = 0x78 };
+ enum {
+ SC_WRITE_METHOD = 0x01,
+ SC_SERIALIZABLE = 0x02 };
+
+ void writeByte(char val, Pool& p);
+ void writeBytes(const char* bytes, size_t len, Pool& p);
+
+ private:
+ ObjectOutputStream(const ObjectOutputStream&);
+ ObjectOutputStream& operator=(const ObjectOutputStream&);
+
+ OutputStreamPtr os;
+ log4cxx::helpers::CharsetEncoderPtr utf8Encoder;
+ unsigned int objectHandle;
+ typedef std::map<std::string, unsigned int> ClassDescriptionMap;
+ ClassDescriptionMap* classDescriptions;
+ };
+
+ LOG4CXX_PTR_DEF(ObjectOutputStream);
+
+ } // namespace helpers
+
+} //namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_OUTPUTSTREAM_H
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectptr.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectptr.h
new file mode 100644
index 0000000000..4271ba1336
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectptr.h
@@ -0,0 +1,183 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_OBJECT_PTR_H
+#define _LOG4CXX_HELPERS_OBJECT_PTR_H
+
+#include <log4cxx/log4cxx.h>
+
+//
+// Helgrind (race detection tool for Valgrind) will complain if pointer
+// is not initialized in an atomic operation. Static analysis tools
+// (gcc's -Weffc++, for example) will complain if pointer is not initialized
+// in member initialization list. The use of a macro allows quick
+// switching between the initialization styles.
+//
+#if LOG4CXX_HELGRIND
+#define _LOG4CXX_OBJECTPTR_INIT(x) { exchange(x);
+#else
+#define _LOG4CXX_OBJECTPTR_INIT(x) : p(x) {
+#endif
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class Class;
+
+ class LOG4CXX_EXPORT ObjectPtrBase {
+ public:
+ ObjectPtrBase();
+ virtual ~ObjectPtrBase();
+ static void checkNull(const int& null);
+ static void* exchange(void** destination, void* newValue);
+ virtual void* cast(const Class& cls) const = 0;
+ };
+
+
+ /** smart pointer to a Object descendant */
+ template<typename T> class ObjectPtrT : public ObjectPtrBase
+ {
+ public:
+ ObjectPtrT(const int& null)
+ _LOG4CXX_OBJECTPTR_INIT(0)
+ ObjectPtrBase::checkNull(null);
+ }
+
+ ObjectPtrT()
+ _LOG4CXX_OBJECTPTR_INIT(0)
+ }
+
+ ObjectPtrT(T * p1)
+ _LOG4CXX_OBJECTPTR_INIT(p1)
+ if (this->p != 0)
+ {
+ this->p->addRef();
+ }
+ }
+
+
+ ObjectPtrT(const ObjectPtrT& p1)
+ _LOG4CXX_OBJECTPTR_INIT(p1.p)
+ if (this->p != 0)
+ {
+ this->p->addRef();
+ }
+ }
+
+ ObjectPtrT(const ObjectPtrBase& p1)
+ _LOG4CXX_OBJECTPTR_INIT(reinterpret_cast<T*>(p1.cast(T::getStaticClass())))
+ if (this->p != 0) {
+ this->p->addRef();
+ }
+ }
+
+ ObjectPtrT(ObjectPtrBase& p1)
+ _LOG4CXX_OBJECTPTR_INIT(reinterpret_cast<T*>(p1.cast(T::getStaticClass())))
+ if (this->p != 0) {
+ this->p->addRef();
+ }
+ }
+
+
+ ~ObjectPtrT()
+ {
+ if (p != 0) {
+ p->releaseRef();
+ }
+ }
+
+ ObjectPtrT& operator=(const ObjectPtrT& p1) {
+ T* newPtr = p1.p;
+ if (newPtr != 0) {
+ newPtr->addRef();
+ }
+ T* oldPtr = exchange(newPtr);
+ if (oldPtr != 0) {
+ oldPtr->releaseRef();
+ }
+ return *this;
+ }
+
+ ObjectPtrT& operator=(const int& null) //throw(IllegalArgumentException)
+ {
+ //
+ // throws IllegalArgumentException if null != 0
+ //
+ ObjectPtrBase::checkNull(null);
+ T* oldPtr = exchange(0);
+ if (oldPtr != 0) {
+ oldPtr->releaseRef();
+ }
+ return *this;
+ }
+
+ ObjectPtrT& operator=(T* p1) {
+ if (p1 != 0) {
+ p1->addRef();
+ }
+ T* oldPtr = exchange(p1);
+ if (oldPtr != 0) {
+ oldPtr->releaseRef();
+ }
+ return *this;
+ }
+
+
+ ObjectPtrT& operator=(ObjectPtrBase& p1) {
+ T* newPtr = reinterpret_cast<T*>(p1.cast(T::getStaticClass()));
+ return operator=(newPtr);
+ }
+
+ ObjectPtrT& operator=(const ObjectPtrBase& p1) {
+ T* newPtr = reinterpret_cast<T*>(p1.cast(T::getStaticClass()));
+ return operator=(newPtr);
+ }
+
+ bool operator==(const ObjectPtrT& p1) const { return (this->p == p1.p); }
+ bool operator!=(const ObjectPtrT& p1) const { return (this->p != p1.p); }
+ bool operator<(const ObjectPtrT& p1) const { return (this->p < p1.p); }
+ bool operator==(const T* p1) const { return (this->p == p1); }
+ bool operator!=(const T* p1) const { return (this->p != p1); }
+ bool operator<(const T* p1) const { return (this->p < p1); }
+ T* operator->() const {return p; }
+ T& operator*() const {return *p; }
+ operator T*() const {return p; }
+
+
+
+ private:
+ T * p;
+ virtual void* cast(const Class& cls) const {
+ if (p != 0) {
+ return const_cast<void*>(p->cast(cls));
+ }
+ return 0;
+ }
+ T* exchange(const T* newValue) {
+ return static_cast<T*>(ObjectPtrBase::exchange(
+ reinterpret_cast<void**>(&p),
+ const_cast<T*>(newValue)));
+ }
+
+ };
+
+
+ }
+}
+
+#endif //_LOG4CXX_HELPERS_OBJECT_PTR_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/onlyonceerrorhandler.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/onlyonceerrorhandler.h
new file mode 100644
index 0000000000..296aa94005
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/onlyonceerrorhandler.h
@@ -0,0 +1,103 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_ONLY_ONCE_ERROR_HANDLER_H
+#define _LOG4CXX_HELPERS_ONLY_ONCE_ERROR_HANDLER_H
+
+#include <log4cxx/spi/errorhandler.h>
+#include <log4cxx/helpers/objectimpl.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ /**
+ The <code>OnlyOnceErrorHandler</code> implements log4cxx's default
+ error handling policy which consists of emitting a message for the
+ first error in an appender and ignoring all following errors.
+
+ <p>The error message is printed on <code>System.err</code>.
+
+ <p>This policy aims at protecting an otherwise working application
+ from being flooded with error messages when logging fails
+ */
+ class LOG4CXX_EXPORT OnlyOnceErrorHandler :
+ public virtual spi::ErrorHandler,
+ public virtual ObjectImpl
+ {
+ private:
+ LogString WARN_PREFIX;
+ LogString ERROR_PREFIX;
+ mutable bool firstTime;
+
+ public:
+ DECLARE_LOG4CXX_OBJECT(OnlyOnceErrorHandler)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(spi::OptionHandler)
+ LOG4CXX_CAST_ENTRY(spi::ErrorHandler)
+ END_LOG4CXX_CAST_MAP()
+
+ OnlyOnceErrorHandler();
+ void addRef() const;
+ void releaseRef() const;
+
+ /**
+ Does not do anything.
+ */
+ void setLogger(const LoggerPtr& logger);
+
+
+ /**
+ No options to activate.
+ */
+ void activateOptions(log4cxx::helpers::Pool& p);
+ void setOption(const LogString& option, const LogString& value);
+
+
+ /**
+ Prints the message and the stack trace of the exception on
+ <code>System.err</code>. */
+ void error(const LogString& message, const std::exception& e,
+ int errorCode) const;
+ /**
+ Prints the message and the stack trace of the exception on
+ <code>System.err</code>.
+ */
+ void error(const LogString& message, const std::exception& e,
+ int errorCode, const spi::LoggingEventPtr& event) const;
+
+ /**
+ Print a the error message passed as parameter on
+ <code>System.err</code>.
+ */
+ void error(const LogString& message) const;
+
+ /**
+ Does not do anything.
+ */
+ void setAppender(const AppenderPtr& appender);
+
+ /**
+ Does not do anything.
+ */
+ void setBackupAppender(const AppenderPtr& appender);
+ };
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_ONLY_ONCE_ERROR_HANDLER_H
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/optionconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/optionconverter.h
new file mode 100644
index 0000000000..6b4561c5fa
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/optionconverter.h
@@ -0,0 +1,164 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPER_OPTION_CONVERTER_H
+#define _LOG4CXX_HELPER_OPTION_CONVERTER_H
+
+#include <log4cxx/logstring.h>
+#include <log4cxx/helpers/objectptr.h>
+
+namespace log4cxx
+{
+ class Level;
+ class File;
+ typedef helpers::ObjectPtrT<Level> LevelPtr;
+
+ namespace spi
+ {
+ class LoggerRepository;
+ typedef helpers::ObjectPtrT<LoggerRepository> LoggerRepositoryPtr;
+ }
+
+ namespace helpers
+ {
+ class Properties;
+
+ class Object;
+ typedef ObjectPtrT<Object> ObjectPtr;
+
+ class Class;
+
+ /** A convenience class to convert property values to specific types.*/
+ class LOG4CXX_EXPORT OptionConverter
+ {
+ /** OptionConverter is a static class. */
+ private:
+ OptionConverter() {}
+
+ public:
+ static LogString convertSpecialChars(const LogString& s);
+
+ /**
+ If <code>value</code> is "true", then <code>true</code> is
+ returned. If <code>value</code> is "false", then
+ <code>true</code> is returned. Otherwise, <code>default</code> is
+ returned.
+
+ <p>Case of value is unimportant.
+ */
+ static bool toBoolean(const LogString& value, bool dEfault);
+ static int toInt(const LogString& value, int dEfault);
+ static long toFileSize(const LogString& value, long dEfault);
+ static LevelPtr toLevel(const LogString& value,
+ const LevelPtr& defaultValue);
+
+ /**
+ Find the value corresponding to <code>key</code> in
+ <code>props</code>. Then perform variable substitution on the
+ found value.
+ */
+ static LogString findAndSubst(const LogString& key, Properties& props);
+
+/**
+Perform variable substitution in string <code>val</code> from the
+values of keys found in the system propeties.
+
+<p>The variable substitution delimeters are <b>${</b> and <b>}</b>.
+
+<p>For example, if the System properties contains "key=value", then
+the call
+<pre>
+String s = OptionConverter.substituteVars("Value of key is ${key}.");
+</pre>
+
+will set the variable <code>s</code> to "Value of key is value.".
+
+<p>If no value could be found for the specified key, then the
+<code>props</code> parameter is searched, if the value could not
+be found there, then substitution defaults to the empty string.
+
+<p>For example, if system propeties contains no value for the key
+"inexistentKey", then the call
+
+<pre>
+String s = OptionConverter.subsVars("Value of inexistentKey is [${inexistentKey}]");
+</pre>
+will set <code>s</code> to "Value of inexistentKey is []"
+
+<p>An IllegalArgumentException is thrown if
+<code>val</code> contains a start delimeter "${" which is not
+balanced by a stop delimeter "}". </p>
+
+@param val The string on which variable substitution is performed.
+@param props The properties from which variable substitution is performed.
+@throws IllegalArgumentException if <code>val</code> is malformed.
+*/
+ static LogString substVars(const LogString& val, Properties& props);
+
+ /**
+ * Gets the specified system property.
+ @param key The key to search for.
+ @param def The default value to return.
+ @return the string value of the system property, or the default
+ value if there is no property with that key.
+ */
+ static LogString getSystemProperty(const LogString& key, const LogString& def);
+
+ /**
+ Instantiate an object given a class name. Check that the
+ <code>className</code> is a subclass of
+ <code>superClass</code>. If that test fails or the object could
+ not be instantiated, then <code>defaultValue</code> is returned.
+
+ @param className The fully qualified class name of the object to instantiate.
+ @param superClass The class to which the new object should belong.
+ @param defaultValue The object to return in case of non-fulfillment
+ */
+ static ObjectPtr instantiateByClassName(const LogString& className,
+ const Class& superClass, const ObjectPtr& defaultValue);
+
+ static ObjectPtr instantiateByKey(Properties& props,
+ const LogString& key, const Class& superClass,
+ const ObjectPtr& defaultValue);
+
+ /**
+ Configure log4cxx given a configFileName.
+
+ <p>The configFileName must point to a file which will be
+ interpreted by a new instance of a log4cxx configurator.
+
+ <p>All configurations steps are taken on the
+ <code>hierarchy</code> passed as a parameter.
+
+ <p>
+ @param configFileName The location of the configuration file.
+ @param clazz The classname, of the log4cxx configurator which
+ will parse the file <code>configFileName</code>. This must be
+ a subclass of Configurator, or null. If this value is null then
+ a default configurator of PropertyConfigurator is used, unless the
+ filename pointed to by <code>configFileName</code> ends in '.xml',
+ in which case DOMConfigurator is used.
+ @param hierarchy The Hierarchy to act on.
+ */
+ static void selectAndConfigure(const File& configFileName,
+ const LogString& clazz, spi::LoggerRepositoryPtr& hierarchy);
+ };
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif //_LOG4CXX_HELPER_OPTION_CONVERTER_H
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/outputstream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/outputstream.h
new file mode 100644
index 0000000000..2c145c8068
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/outputstream.h
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_OUTPUTSTREAM_H
+#define _LOG4CXX_HELPERS_OUTPUTSTREAM_H
+
+#include <log4cxx/helpers/objectimpl.h>
+
+namespace log4cxx
+{
+
+ namespace helpers {
+ class ByteBuffer;
+
+ /**
+ * Abstract class for writing to character streams.
+ */
+ class LOG4CXX_EXPORT OutputStream : public ObjectImpl
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(OutputStream)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(OutputStream)
+ END_LOG4CXX_CAST_MAP()
+
+ protected:
+ OutputStream();
+ virtual ~OutputStream();
+
+ public:
+ virtual void close(Pool& p) = 0;
+ virtual void flush(Pool& p) = 0;
+ virtual void write(ByteBuffer& buf, Pool& p) = 0;
+
+ private:
+ OutputStream(const OutputStream&);
+ OutputStream& operator=(const OutputStream&);
+ };
+
+ LOG4CXX_PTR_DEF(OutputStream);
+ } // namespace helpers
+
+} //namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_OUTPUTSTREAM_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/outputstreamwriter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/outputstreamwriter.h
new file mode 100644
index 0000000000..bbcd907241
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/outputstreamwriter.h
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_OUTPUTSTREAMWRITER_H
+#define _LOG4CXX_HELPERS_OUTPUTSTREAMWRITER_H
+
+#include <log4cxx/helpers/writer.h>
+#include <log4cxx/helpers/outputstream.h>
+#include <log4cxx/helpers/charsetencoder.h>
+
+namespace log4cxx
+{
+
+ namespace helpers {
+
+ /**
+ * Abstract class for writing to character streams.
+ */
+ class LOG4CXX_EXPORT OutputStreamWriter : public Writer
+ {
+ private:
+ OutputStreamPtr out;
+ CharsetEncoderPtr enc;
+
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(OutputStreamWriter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(OutputStreamWriter)
+ LOG4CXX_CAST_ENTRY_CHAIN(Writer)
+ END_LOG4CXX_CAST_MAP()
+
+ OutputStreamWriter(OutputStreamPtr& out);
+ OutputStreamWriter(OutputStreamPtr& out, CharsetEncoderPtr &enc);
+ ~OutputStreamWriter();
+
+ virtual void close(Pool& p);
+ virtual void flush(Pool& p);
+ virtual void write(const LogString& str, Pool& p);
+ LogString getEncoding() const;
+
+ private:
+ OutputStreamWriter(const OutputStreamWriter&);
+ OutputStreamWriter& operator=(const OutputStreamWriter&);
+ };
+
+ LOG4CXX_PTR_DEF(OutputStreamWriter);
+ } // namespace helpers
+
+} //namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_OUTPUTSTREAMWRITER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/pool.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/pool.h
new file mode 100644
index 0000000000..2c902f6e8d
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/pool.h
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_POOL_H
+#define _LOG4CXX_HELPERS_POOL_H
+
+#include <log4cxx/log4cxx.h>
+#include <string>
+
+extern "C" {
+ struct apr_pool_t;
+}
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class LOG4CXX_EXPORT Pool
+ {
+ public:
+ Pool();
+ Pool(apr_pool_t* pool, bool release);
+ ~Pool();
+
+ apr_pool_t* getAPRPool();
+ apr_pool_t* create();
+ void* palloc(size_t length);
+ char* pstralloc(size_t length);
+ char* itoa(int n);
+ char* pstrndup(const char* s, size_t len);
+ char* pstrdup(const char*s);
+ char* pstrdup(const std::string&);
+
+ protected:
+ apr_pool_t* pool;
+ const bool release;
+
+ private:
+ Pool(const log4cxx::helpers::Pool&);
+ Pool& operator=(const Pool&);
+ };
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_POOL_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/properties.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/properties.h
new file mode 100644
index 0000000000..c238496f0e
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/properties.h
@@ -0,0 +1,186 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPER_PROPERTIES_H
+#define _LOG4CXX_HELPER_PROPERTIES_H
+
+#if defined(_MSC_VER)
+#pragma warning (push)
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/logstring.h>
+#include <log4cxx/helpers/objectptr.h>
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/helpers/inputstream.h>
+#include <map>
+#include <vector>
+#include <istream>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class LOG4CXX_EXPORT Properties
+ {
+ private:
+ typedef std::map<LogString, LogString> PropertyMap;
+ PropertyMap* properties;
+ Properties(const Properties&);
+ Properties& operator=(const Properties&);
+
+ public:
+ /**
+ * Create new instance.
+ */
+ Properties();
+ /**
+ * Destructor.
+ */
+ ~Properties();
+ /**
+ Reads a property list (key and element pairs) from the input stream.
+ The stream is assumed to be using the ISO 8859-1 character encoding.
+
+ <p>Every property occupies one line of the input stream.
+ Each line is terminated by a line terminator (<code>\\n</code> or
+ <code>\\r</code> or <code>\\r\\n</code>).
+ Lines from the input stream are processed until end of file is reached
+ on the input stream.
+
+ <p>A line that contains only whitespace or whose first non-whitespace
+ character is an ASCII <code>#</code> or <code>!</code> is ignored
+ (thus, <code>#</code> or <code>!</code> indicate comment lines).
+
+ <p>Every line other than a blank line or a comment line describes one
+ property to be added to the table (except that if a line ends with \,
+ then the following line, if it exists, is treated as a continuation
+ line, as described below). The key consists of all the characters in
+ the line starting with the first non-whitespace character and up to,
+ but not including, the first ASCII <code>=</code>, <code>:</code>,
+ or whitespace character. All of the
+ key termination characters may be included in the key by preceding them
+ with a <code>\\</code>. Any whitespace after the key is skipped;
+ if the first
+ non-whitespace character after the key is <code>=</code> or
+ <code>:</code>, then it is ignored
+ and any whitespace characters after it are also skipped. All remaining
+ characters on the line become part of the associated element string.
+ Within the element string, the ASCII escape sequences <code>\\t</code>,
+ <code>\\n</code>, <code>\\r</code>, <code>\\</code>, <code>\\"</code>,
+ <code>\\'</code>, <code>\\</code> (a backslash and a space), and
+ <code>\\uxxxx</code> are recognized
+ and converted to single characters. Moreover, if the last character on
+ the line is <code>\\</code>, then the next line is treated as a
+ continuation of the
+ current line; the <code>\\</code> and line terminator are simply
+ discarded, and any
+ leading whitespace characters on the continuation line are also
+ discarded and are not part of the element string.
+
+ <p>As an example, each of the following four lines specifies the key
+ "Truth" and the associated element value "Beauty":
+
+ <pre>
+ Truth = Beauty
+ Truth:Beauty
+ Truth :Beauty
+ </pre>
+
+ As another example, the following three lines specify a single
+ property:
+ <pre>
+ fruits apple, banana, pear, \
+ cantaloupe, watermelon, \
+ kiwi, mango
+ </pre>
+ The key is "<code>fruits</code>" and the associated element is:
+ <pre>
+"apple, banana, pear, cantaloupe, watermelon, kiwi, mango"
+ </pre>
+ Note that a space appears before each \ so that a space will appear
+ after each comma in the final result; the \, line terminator, and
+ leading whitespace on the continuation line are merely discarded and are
+ not replaced by one or more other characters.
+
+ <p>As a third example, the line:
+ <pre>
+cheeses
+ </pre>
+ specifies that the key is "<code>cheeses</code>" and the associated
+ element is the empty string.
+
+ @param inStream the input stream.
+
+ @throw IOException if an error occurred when reading from the input
+ stream.
+ */
+ void load(InputStreamPtr inStream);
+
+ /**
+ * Calls Properties::put.
+ * @param key the key to be placed into this property list.
+ * @param value the value corresponding to key.
+ * @return the previous value of the specified key in this
+ * property list, or an empty string if it did not have one.
+ */
+ LogString setProperty(const LogString& key, const LogString& value);
+ /**
+ * Puts a property value into the collection.
+ * @param key the key to be placed into this property list.
+ * @param value the value corresponding to key.
+ * @return the previous value of the specified key in this
+ * property list, or an empty string if it did not have one.
+ */
+ LogString put(const LogString& key, const LogString& value);
+
+
+ /**
+ * Calls Properties::get.
+ * @param key the property key.
+ * @return the value in this property list with the specified
+ * key value or empty string.
+ */
+ LogString getProperty(const LogString& key) const;
+ /**
+ * Gets a property value.
+ * @param key the property key.
+ * @return the value in this property list with the specified
+ * key value or empty string.
+ */
+ LogString get(const LogString& key) const;
+
+ /**
+ Returns an enumeration of all the keys in this property list,
+ including distinct keys in the default property list if a key
+ of the same name has not already been found from the main
+ properties list.
+ @return an array of all the keys in this
+ property list, including the keys in the default property list.
+ */
+ std::vector<LogString> propertyNames() const;
+ }; // class Properties
+ } // namespace helpers
+} // namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning (pop)
+#endif
+
+
+#endif //_LOG4CXX_HELPER_PROPERTIES_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/propertyresourcebundle.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/propertyresourcebundle.h
new file mode 100644
index 0000000000..5032873b45
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/propertyresourcebundle.h
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_PROPERTY_RESOURCE_BUNDLE_H
+#define _LOG4CXX_HELPERS_PROPERTY_RESOURCE_BUNDLE_H
+
+#include <log4cxx/helpers/resourcebundle.h>
+#include <log4cxx/helpers/properties.h>
+#include <log4cxx/helpers/inputstream.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+
+ /**
+ PropertyResourceBundle is a concrete subclass of ResourceBundle that
+ manages resources for a locale using a set of static strings from a
+ property file.
+ */
+ class LOG4CXX_EXPORT PropertyResourceBundle : public ResourceBundle
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(PropertyResourceBundle)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(PropertyResourceBundle)
+ LOG4CXX_CAST_ENTRY_CHAIN(ResourceBundle)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ Creates a property resource bundle.
+ @param inStream property file to read from.
+ @throw IOException if an error occurred when reading from the
+ input stream.
+ */
+ PropertyResourceBundle(InputStreamPtr inStream);
+
+ virtual LogString getString(const LogString& key) const;
+
+ protected:
+ Properties properties;
+ }; // class PropertyResourceBundle
+ LOG4CXX_PTR_DEF(PropertyResourceBundle);
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif // _LOG4CXX_HELPERS_PROPERTY_RESOURCE_BUNDLE_H
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/reader.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/reader.h
new file mode 100644
index 0000000000..f61ca66922
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/reader.h
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_READER_H
+#define _LOG4CXX_HELPERS_READER_H
+
+#include <log4cxx/helpers/objectimpl.h>
+
+namespace log4cxx
+{
+
+ namespace helpers {
+
+ /**
+ * Abstract class for reading from character streams.
+ *
+ */
+ class LOG4CXX_EXPORT Reader : public ObjectImpl
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(Reader)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(Reader)
+ END_LOG4CXX_CAST_MAP()
+
+ protected:
+ /**
+ * Creates a new character-stream reader.
+ */
+ Reader();
+
+ virtual ~Reader();
+
+ public:
+ /**
+ * Closes the stream.
+ * @param p The memory pool associated with the reader.
+ */
+ virtual void close(Pool& p) = 0;
+
+ /**
+ * @return The complete stream contents as a LogString.
+ * @param p The memory pool associated with the reader.
+ */
+ virtual LogString read(Pool& p) = 0;
+
+ private:
+ Reader(const Reader&);
+
+ Reader& operator=(const Reader&);
+ };
+
+ LOG4CXX_PTR_DEF(Reader);
+ } // namespace helpers
+
+} //namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_READER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/relativetimedateformat.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/relativetimedateformat.h
new file mode 100644
index 0000000000..b60d62f0dd
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/relativetimedateformat.h
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_RELATIVE_TIME_DATE_FORMAT_H
+#define _LOG4CXX_HELPERS_RELATIVE_TIME_DATE_FORMAT_H
+
+#include <log4cxx/helpers/dateformat.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ /**
+ Formats a date by printing the number of seconds
+ elapsed since the start of the application. This is the fastest
+ printing DateFormat in the package.
+ */
+ class LOG4CXX_EXPORT RelativeTimeDateFormat : public DateFormat
+ {
+ public:
+ RelativeTimeDateFormat();
+ virtual void format(LogString &s,
+ log4cxx_time_t tm,
+ log4cxx::helpers::Pool& p) const;
+
+ private:
+ log4cxx_time_t startTime;
+
+ };
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif // _LOG4CXX_HELPERS_RELATIVE_TIME_DATE_FORMAT_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/resourcebundle.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/resourcebundle.h
new file mode 100644
index 0000000000..44c52e25b4
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/resourcebundle.h
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_RESOURCE_BUNDLE_H
+#define _LOG4CXX_HELPERS_RESOURCE_BUNDLE_H
+
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/helpers/objectptr.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class Locale;
+
+ class ResourceBundle;
+ LOG4CXX_PTR_DEF(ResourceBundle);
+
+ /**
+ Resource bundles contain locale-specific objects
+ */
+ class LOG4CXX_EXPORT ResourceBundle : public ObjectImpl
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(ResourceBundle)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(ResourceBundle)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ Gets a string for the given key from this resource bundle or one of
+ its parents. Calling this method is equivalent to calling
+
+ @param key the key for the desired string
+ @return the string for the given key
+ @throw MissingResourceException - if no object for the given key
+ can be found
+ */
+ virtual LogString getString(const LogString& key) const = 0;
+
+ /**
+ Gets a resource bundle using the specified base name and locale
+
+ @param baseName the base name of the resource bundle, a fully
+ qualified class name or property filename
+ @param locale the locale for which a resource bundle is desired
+ */
+ static ResourceBundlePtr getBundle(const LogString& baseName,
+ const Locale& locale);
+
+ protected:
+ /*
+ Sets the parent bundle of this bundle. The parent bundle is
+ searched by #getString when this bundle does not contain a particular
+ resource.
+
+ Parameters:
+ parent - this bundle's parent bundle.
+ */
+ inline void setParent(const ResourceBundlePtr& parent1)
+ { this->parent = parent1; }
+
+ /**
+ The parent bundle of this bundle.
+
+ The parent bundle is searched by #getString when this bundle does
+ not contain a particular resource.
+ */
+ ResourceBundlePtr parent;
+ }; // class ResourceBundle
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/serversocket.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/serversocket.h
new file mode 100644
index 0000000000..7f0c90bc60
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/serversocket.h
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_SERVER_SOCKET_H
+#define _LOG4CXX_HELPERS_SERVER_SOCKET_H
+
+#include <log4cxx/helpers/socket.h>
+#include <log4cxx/helpers/mutex.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class LOG4CXX_EXPORT ServerSocket
+ {
+ public:
+ /** Creates a server socket on a specified port.
+ */
+ ServerSocket(int port);
+
+ virtual ~ServerSocket();
+
+ /** Listens for a connection to be made to this socket and
+ accepts it
+ */
+ SocketPtr accept();
+
+ /** Closes this socket.
+ */
+ void close();
+
+ /** Retrive setting for SO_TIMEOUT.
+ */
+ int getSoTimeout() const;
+
+ /** Enable/disable SO_TIMEOUT with the specified timeout, in milliseconds.
+ */
+ void setSoTimeout(int timeout);
+
+ private:
+ Pool pool;
+ Mutex mutex;
+ apr_socket_t* socket;
+ int timeout;
+
+ };
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_SERVER_SOCKET_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/simpledateformat.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/simpledateformat.h
new file mode 100644
index 0000000000..9c27f6859d
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/simpledateformat.h
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_SIMPLE_DATE_FORMAT_H
+#define _LOG4CXX_HELPERS_SIMPLE_DATE_FORMAT_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+
+#include <log4cxx/helpers/dateformat.h>
+#include <vector>
+#include <time.h>
+
+namespace std { class locale; }
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ namespace SimpleDateFormatImpl {
+ class PatternToken;
+ }
+
+ /**
+ * Concrete class for formatting and parsing dates in a
+ * locale-sensitive manner.
+ */
+ class LOG4CXX_EXPORT SimpleDateFormat : public DateFormat
+ {
+ public:
+ /**
+ * Constructs a DateFormat using the given pattern and the default
+ * time zone.
+ *
+ * @param pattern the pattern describing the date and time format
+ */
+ SimpleDateFormat(const LogString& pattern);
+ SimpleDateFormat(const LogString& pattern, const std::locale* locale);
+ ~SimpleDateFormat();
+
+ virtual void format(LogString& s,
+ log4cxx_time_t tm,
+ log4cxx::helpers::Pool& p) const;
+
+ /**
+ * Set time zone.
+ * @param zone new time zone.
+ */
+ void setTimeZone(const TimeZonePtr& zone);
+
+ private:
+ /**
+ * Time zone.
+ */
+ TimeZonePtr timeZone;
+
+ /**
+ * List of tokens.
+ */
+ LOG4CXX_LIST_DEF(PatternTokenList, log4cxx::helpers::SimpleDateFormatImpl::PatternToken*);
+
+ PatternTokenList pattern;
+
+ static void addToken(const logchar spec, const int repeat, const std::locale* locale, PatternTokenList& pattern);
+ static void parsePattern(const LogString& spec, const std::locale* locale, PatternTokenList& pattern);
+ };
+
+
+ } // namespace helpers
+} // namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+
+
+#endif // _LOG4CXX_HELPERS_SIMPLE_DATE_FORMAT_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/socket.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/socket.h
new file mode 100644
index 0000000000..2f1636b72d
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/socket.h
@@ -0,0 +1,90 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_SOCKET_H
+#define _LOG4CXX_HELPERS_SOCKET_H
+
+extern "C" {
+ struct apr_socket_t;
+}
+
+
+#include <log4cxx/helpers/inetaddress.h>
+#include <log4cxx/helpers/pool.h>
+
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class ByteBuffer;
+ /**
+ <p>This class implements client sockets (also called just "sockets"). A socket
+ is an endpoint for communication between two machines.
+ <p>The actual work of the socket is performed by an instance of the SocketImpl
+ class. An application, by changing the socket factory that creates the socket
+ implementation, can configure itself to create sockets appropriate to the
+ local firewall.
+ */
+ class LOG4CXX_EXPORT Socket : public helpers::ObjectImpl
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(Socket)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(Socket)
+ END_LOG4CXX_CAST_MAP()
+
+ /** Creates a stream socket and connects it to the specified port
+ number at the specified IP address.
+ */
+ Socket(InetAddressPtr& address, int port);
+ Socket(apr_socket_t* socket, apr_pool_t* pool);
+ ~Socket();
+
+ size_t write(ByteBuffer&);
+
+ /** Closes this socket. */
+ void close();
+
+ /** Returns the value of this socket's address field. */
+ InetAddressPtr getInetAddress() const;
+
+ /** Returns the value of this socket's port field. */
+ int getPort() const;
+ private:
+ Socket(const Socket&);
+ Socket& operator=(const Socket&);
+
+ Pool pool;
+
+ apr_socket_t* socket;
+
+
+ /** The IP address of the remote end of this socket. */
+ InetAddressPtr address;
+
+ /** The port number on the remote host to which
+ this socket is connected. */
+ int port;
+ };
+
+ LOG4CXX_PTR_DEF(Socket);
+
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif // _LOG4CXX_HELPERS_SOCKET_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/socketoutputstream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/socketoutputstream.h
new file mode 100644
index 0000000000..6bca173353
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/socketoutputstream.h
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_SOCKET_OUTPUT_STREAM_H
+#define _LOG4CXX_HELPERS_SOCKET_OUTPUT_STREAM_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/logstring.h>
+#include <log4cxx/helpers/outputstream.h>
+#include <log4cxx/helpers/socket.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+
+ class LOG4CXX_EXPORT SocketOutputStream : public OutputStream
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(SocketOutputStream)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(SocketOutputStream)
+ LOG4CXX_CAST_ENTRY_CHAIN(OutputStream)
+ END_LOG4CXX_CAST_MAP()
+
+ SocketOutputStream(const SocketPtr& socket);
+ ~SocketOutputStream();
+
+ virtual void close(Pool& p);
+ virtual void flush(Pool& p);
+ virtual void write(ByteBuffer& buf, Pool& p);
+
+ private:
+ LOG4CXX_LIST_DEF(ByteList, unsigned char);
+ ByteList array;
+ SocketPtr socket;
+ //
+ // prevent copy and assignment statements
+ SocketOutputStream(const SocketOutputStream&);
+ SocketOutputStream& operator=(const SocketOutputStream&);
+
+ };
+
+ LOG4CXX_PTR_DEF(SocketOutputStream);
+
+ } // namespace helpers
+} // namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+
+
+#endif // _LOG4CXX_HELPERS_SOCKET_OUTPUT_STREAM_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/strftimedateformat.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/strftimedateformat.h
new file mode 100644
index 0000000000..043205bd1f
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/strftimedateformat.h
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_STRFTIME_DATE_FORMAT_H
+#define _LOG4CXX_HELPERS_STRFTIME_DATE_FORMAT_H
+
+#include <log4cxx/helpers/dateformat.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+
+ /**
+ Concrete class for formatting and parsing dates in a
+ locale-sensitive manner.
+
+ */
+ class LOG4CXX_EXPORT StrftimeDateFormat : public DateFormat
+ {
+ public:
+ /**
+ Constructs a DateFormat using the given pattern and the default
+ time zone.
+
+ @param pattern the pattern describing the date and time format
+ */
+ StrftimeDateFormat(const LogString& pattern);
+ ~StrftimeDateFormat();
+
+ virtual void format(LogString& s,
+ log4cxx_time_t tm,
+ log4cxx::helpers::Pool& p) const;
+
+ /**
+ * Set time zone.
+ * @param zone new time zone.
+ */
+ void setTimeZone(const TimeZonePtr& zone);
+
+
+ private:
+ /**
+ * Time zone.
+ */
+ TimeZonePtr timeZone;
+ std::string pattern;
+ };
+
+
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif // _LOG4CXX_HELPERS_STRFTIME_DATE_FORMAT_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/strictmath.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/strictmath.h
new file mode 100644
index 0000000000..8c4194be1c
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/strictmath.h
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_STRICTMATH_H
+#define _LOG4CXX_HELPERS_STRICTMATH_H
+
+#include <log4cxx/log4cxx.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ /**
+ The class StrictMath contains methods for performing basic numeric
+ operations
+ */
+ class StrictMath
+ {
+ public:
+ template<typename _type> static inline const _type&
+ minimum(const _type& a, const _type& b)
+ {
+ return (a < b) ? a : b;
+ }
+
+ template<typename _type> static inline const _type&
+ maximum(const _type& a, const _type& b)
+ {
+ return (a > b) ? a : b;
+ }
+ }; // class StrictMath
+ } // namespace helpers
+} // namespace log4cx
+
+#endif //_LOG4CXX_HELPERS_STRICTMATH_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/stringhelper.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/stringhelper.h
new file mode 100644
index 0000000000..e8e170d8eb
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/stringhelper.h
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_STRING_HELPER_H
+#define _LOG4CXX_HELPERS_STRING_HELPER_H
+
+#include <log4cxx/logstring.h>
+#include <vector>
+
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class Pool;
+ /**
+ String manipulation routines
+ */
+ class LOG4CXX_EXPORT StringHelper
+ {
+ public:
+ static LogString trim(const LogString& s);
+ static bool startsWith(const LogString& s, const LogString& suffix);
+ static bool endsWith(const LogString& s, const LogString& suffix);
+ static bool equalsIgnoreCase(const LogString& s1,
+ const logchar* upper, const logchar* lower);
+ static bool equalsIgnoreCase(const LogString& s1,
+ const LogString& upper, const LogString& lower);
+
+
+ static int toInt(const LogString& s);
+ static log4cxx_int64_t toInt64(const LogString& s);
+
+ static void toString(int i, log4cxx::helpers::Pool& pool, LogString& dst);
+ static void toString(log4cxx_int64_t i, log4cxx::helpers::Pool& pool, LogString& dst);
+ static void toString(size_t i, log4cxx::helpers::Pool& pool, LogString& dst);
+
+ static void toString(bool val, LogString& dst);
+
+ static LogString toLowerCase(const LogString& s);
+
+ static LogString format(const LogString& pattern, const std::vector<LogString>& params);
+ };
+ }
+}
+
+#endif //_LOG4CXX_HELPERS_STRING_HELPER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/stringtokenizer.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/stringtokenizer.h
new file mode 100644
index 0000000000..18320c4be1
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/stringtokenizer.h
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_STRING_TOKENIZER_H
+#define _LOG4CXX_HELPERS_STRING_TOKENIZER_H
+
+#include <log4cxx/logstring.h>
+#include <log4cxx/helpers/exception.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class LOG4CXX_EXPORT StringTokenizer
+ {
+ public:
+ StringTokenizer(const LogString& str, const LogString& delim);
+ ~StringTokenizer();
+ bool hasMoreTokens() const;
+ LogString nextToken();
+
+ protected:
+ LogString src;
+ LogString delim;
+ size_t pos;
+
+ private:
+ // prevent copy and assignment statements
+ StringTokenizer(const StringTokenizer&);
+ StringTokenizer& operator=(const StringTokenizer&);
+ }; // class StringTokenizer
+ } // namespace helpers;
+} // namespace log4cxx;
+
+#endif //_LOG4CXX_HELPERS_STRING_TOKENIZER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/synchronized.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/synchronized.h
new file mode 100644
index 0000000000..05476dbaa5
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/synchronized.h
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_SYNCHRONIZED_H
+#define _LOG4CXX_HELPERS_SYNCHRONIZED_H
+#include <log4cxx/log4cxx.h>
+
+namespace log4cxx
+{
+ namespace helpers {
+ class Mutex;
+
+ /** utility class for objects multi-thread synchronization.*/
+ class LOG4CXX_EXPORT synchronized
+ {
+ public:
+ synchronized(const Mutex& mutex);
+ ~synchronized();
+
+
+ private:
+ void* mutex;
+ // prevent use of copy and assignment
+ synchronized(const synchronized&);
+ synchronized& operator=(const synchronized&);
+ };
+ }
+}
+
+#endif //_LOG4CXX_HELPERS_SYNCHRONIZED_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/syslogwriter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/syslogwriter.h
new file mode 100644
index 0000000000..bc2378cb1f
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/syslogwriter.h
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_SYSLOG_WRITER_H
+#define _LOG4CXX_SYSLOG_WRITER_H
+
+
+#include <log4cxx/helpers/objectptr.h>
+#include <log4cxx/helpers/inetaddress.h>
+#include <log4cxx/helpers/datagramsocket.h>
+
+ namespace log4cxx
+{
+ namespace helpers
+ {
+ /**
+ SyslogWriter is a wrapper around the DatagramSocket class
+ it writes text to the specified host on the port 514 (UNIX syslog)
+ */
+ class LOG4CXX_EXPORT SyslogWriter
+ {
+ public:
+ SyslogWriter(const LogString& syslogHost);
+ void write(const LogString& string);
+
+ private:
+ LogString syslogHost;
+ InetAddressPtr address;
+ DatagramSocketPtr ds;
+ };
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/system.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/system.h
new file mode 100644
index 0000000000..3885687b55
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/system.h
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ #ifndef _LOG4CXX_HELPERS_SYSTEM_H
+ #define _LOG4CXX_HELPERS_SYSTEM_H
+
+#include <log4cxx/logstring.h>
+#include <log4cxx/helpers/exception.h>
+
+ namespace log4cxx
+ {
+ namespace helpers
+ {
+ class Properties;
+
+ /** The System class contains several useful class fields and methods.
+ It cannot be instantiated.
+ */
+ class LOG4CXX_EXPORT System
+ {
+ public:
+
+ /**
+ Gets the system property indicated by the specified key.
+
+ @param key the name of the system property.
+
+ @return the string value of the system property, or the default value if
+ there is no property with that key.
+
+ @throws IllegalArgumentException if key is empty.
+ */
+ static LogString getProperty(const LogString& key);
+
+ };
+ } // namespace helpers
+ } // namespace log4cxx
+
+ #endif //_LOG4CXX_HELPERS_SYSTEM_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/systemerrwriter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/systemerrwriter.h
new file mode 100644
index 0000000000..7fda4721b2
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/systemerrwriter.h
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_SYSTEMERRWRITER_H
+#define _LOG4CXX_HELPERS_SYSTEMERRWRITER_H
+
+#include <log4cxx/helpers/writer.h>
+
+namespace log4cxx
+{
+ namespace helpers {
+
+ /**
+ * Abstract class for writing to character streams.
+ */
+ class LOG4CXX_EXPORT SystemErrWriter : public Writer
+ {
+ public:
+ DECLARE_LOG4CXX_OBJECT(SystemErrWriter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(SystemErrWriter)
+ LOG4CXX_CAST_ENTRY_CHAIN(Writer)
+ END_LOG4CXX_CAST_MAP()
+
+ SystemErrWriter();
+ virtual ~SystemErrWriter();
+
+ virtual void close(Pool& p);
+ virtual void flush(Pool& p);
+ virtual void write(const LogString& str, Pool& p);
+
+ static void write(const LogString& str);
+ static void flush();
+
+ private:
+ SystemErrWriter(const SystemErrWriter&);
+ SystemErrWriter& operator=(const SystemErrWriter&);
+ static bool isWide();
+ };
+
+ } // namespace helpers
+
+} //namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_SYSTEMERRWRITER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/systemoutwriter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/systemoutwriter.h
new file mode 100644
index 0000000000..af7c55b242
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/systemoutwriter.h
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_SYSTEMOUTWRITER_H
+#define _LOG4CXX_HELPERS_SYSTEMOUTWRITER_H
+
+#include <log4cxx/helpers/writer.h>
+
+namespace log4cxx
+{
+ namespace helpers {
+
+ /**
+ * Abstract class for writing to character streams.
+ */
+ class LOG4CXX_EXPORT SystemOutWriter : public Writer
+ {
+ public:
+ DECLARE_LOG4CXX_OBJECT(SystemOutWriter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(SystemOutWriter)
+ LOG4CXX_CAST_ENTRY_CHAIN(Writer)
+ END_LOG4CXX_CAST_MAP()
+
+ SystemOutWriter();
+ ~SystemOutWriter();
+
+ virtual void close(Pool& p);
+ virtual void flush(Pool& p);
+ virtual void write(const LogString& str, Pool& p);
+
+ static void write(const LogString& str);
+ static void flush();
+ private:
+ SystemOutWriter(const SystemOutWriter&);
+ SystemOutWriter& operator=(const SystemOutWriter&);
+ static bool isWide();
+ };
+
+ } // namespace helpers
+
+} //namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_SYSTEMOUTWRITER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/tchar.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/tchar.h
new file mode 100644
index 0000000000..bf3412c92b
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/tchar.h
@@ -0,0 +1,171 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_TCHAR_H
+#define _LOG4CXX_HELPERS_TCHAR_H
+
+#error log4cxx/helpers/tchar.h is obsolete, see details following this line.
+
+/**
+* A short history of log4cxx's tchar.h
+*
+* The previous log4cxx/helpers/tchar.h contained macros that
+* attempted to replicate macros and functions defined by
+* the Microsoft SDK's tchar.h and related header files
+* such as _T() and TCHAR.
+*
+* When building apps using both log4cxx and Microsoft SDK's tchar.h,
+* these definitions could conflict and, for example, the code generated
+* by _T("Foo") would depend on the include order of the two
+* tchar.h's.
+*
+* The motivation of tchar.h in the Microsoft SDK was to
+* support presenting either a wide-char or multi-byte char
+* facade to a C API depending on the presence of
+* the _UNICODE or _MBCS preprocessor macros. When _UNICODE
+* was set then tchar was typedef'd as wchar_t and, for example,
+* the CreateProcess macro was defined to be CreateProcessW, If
+* _MBCS was defined, then tchar was typedef'd as char
+* and CreateProcess macro was defined to be CreateProcessA.
+*
+* In either case, the setting of _UNICODE or _MBCS
+* didn't affect the implementation of the operating system.
+* If you were running the Windows NT family, all the multi-byte
+* methods delegated to a wide-char implementation.
+* In the Windows 9x family, most wide-char methods delegated
+* to a multi-byte implementation.
+*
+* In practice, most Microsoft Windows executables were either
+* wide-char or multi-byte centric. However, they did not
+* have to be exclusively so. An application built with
+* _UNICODE, could still call multi-byte API functions,
+* they would just need to explicitly call CreateProcessA
+* instead of using the facade macro. An executable could
+* also use both a multi-byte centric and wide-char centric
+* DLL's since all the calls eventually hit the same
+* underlying implementation be it a wide-char on in
+* Windows NT or multi-char in Windows 9x.
+*
+* The use of log4cxx/helpers/tchar.h in log4cxx 0.9.7 was
+* undesirable because it made log4cxx either exclusively
+* wide-char or exclusively multi-byte and had to be consistant
+* with the character model of the calling executable.
+* This would make it extremely difficult to use
+* log4cxx when DLL's with different character models
+* where called by the same application. Since log4cxx
+* was C++, not C, function overloading could be
+* used instead of the CreateProcess et al macros
+* used in the Windows headers.
+*
+* In the rework before the 0.9.8, the following changes
+* were made to log4cxx:
+*
+* 1. All inclusions of log4cxx/helpers/tchar.h
+* and use of TCHAR, log4cxx::String and _T
+* were removed from log4cxx.
+* 2. log4cxx/logstring.h was added to define the
+* implementation character model using the log4cxx::logchar
+* and log4cxx::LogString typedefs and LOG4CXX_STR macro.
+* 3. Methods commonly used by calling applications were defined
+* in both wide-char and multi-byte and both pointer and string
+* forms with conversion to the implementation character
+* model delayed as long as possible.
+* 4. Use of Standard Template Library streams within
+* log4cxx was substantially reduced (but not totally
+* elminated).
+* 5. The LOG4CXX_DEBUG and similar macros were simplified
+* and now only take arguments that evaluate to
+* character pointers or strings and no longer take
+* the right hand side of an insertion operation:
+*
+* // This used to work, but no longer
+* LOG4CXX_DEBUG(logger, "foo" << i);
+*
+* If you extensively used this idiom, please consider
+* migrating to stream-like API defined in log4cxx/stream.h.
+*
+* 6. The LOG4CXX_DEBUG and similar use the LOG4CXX_LOCATION
+* macro to define the log statement location instead of
+* using __FILE__ and __LINE__. Logger::debug and
+* similar now take const LocationInfo& instead of
+* separate const char* and int arguments. This allows
+* class and method names to appear in location info.
+* 7. log4cxx include files no longer include config.h
+* or related files. config.h and related files
+* may be used by log4cxx implementation, but have
+* no effect on the exposed API.
+*
+* It is expected that the default implementation character
+* model will be wchar_t. However this may vary by platform
+* and may be changed based on feedback.
+*
+* Developers using log4cxx should seldom be concerned
+* with the internal character model of log4cxx unless
+* writing custom appenders or layouts. An application
+* should not be using log4cxx::logchar, log4cxx::LogString
+* or LOG4CXX_STR unless dealing with something that is
+* clearly a log4cxx internal. If you find something
+* defined as using or returning LogString that you
+* don't consider a log4cxx internal, please file a
+* bug report or post a message to one of the mailing lists.
+*
+* wchar_t literals should be preferred in log requests since
+* since they eliminate potential encoding confusion
+* when the development and deployment encodings are different.
+*
+* Migration strategies:
+*
+* If you followed the examples in the previous log4cxx versions,
+* you may have _T() macros littered through your code
+* and inclusions of this file. If you are on the Microsoft
+* platform, the simplest solution is to just include
+* the Platform SDK's tchar.h which would result your log
+* statements matching the character model of your application.
+*
+* If you targetting another platform and your only use of
+* _T() in related to log4cxx, then I would recommend replacing
+* all _T() with another macro (say MYAPP_LOGSTR())
+* and defining that macro in a commonly included header file
+* or defining _T() in a commonly included header file.
+*
+* I would first try defining these macros as
+*
+* #define _T(str) L ## str
+*
+* If that results in too many compilation errors, then try:
+*
+* #define _T(str) str
+*
+* Using the first form will result in wchar_t literals which
+* will avoid potential encoding confusion and is expected
+* to result in slightly better performance when logging.
+*
+* Since the best choice for _T() depends on the application,
+* there is not a definition within log4cxx.
+*
+* Use encoding conversion macros A2T, W2T, et al should
+* not longer be necessary. If you are doing a lot of
+* work converting between encodings, you might consider
+* using the stream-like interface in log4cxx/stream.h
+* which defines insertion operators for multi-byte
+* strings in addition to exposing all the
+* insertion operations defined for
+* std::basic_ostream<wchar_t>.
+*
+*/
+
+#endif //_LOG4CXX_HELPERS_TCHAR_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/thread.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/thread.h
new file mode 100644
index 0000000000..09a47d6c79
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/thread.h
@@ -0,0 +1,184 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_THREAD_H
+#define _LOG4CXX_HELPERS_THREAD_H
+
+#include <log4cxx/log4cxx.h>
+#include <log4cxx/helpers/pool.h>
+
+#if !defined(LOG4CXX_THREAD_FUNC)
+#if defined(_WIN32)
+#define LOG4CXX_THREAD_FUNC __stdcall
+#else
+#define LOG4CXX_THREAD_FUNC
+#endif
+#endif
+
+extern "C" {
+ typedef struct apr_thread_t apr_thread_t;
+}
+
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class Pool;
+ class ThreadLocal;
+
+ typedef void* (LOG4CXX_THREAD_FUNC *Runnable)(apr_thread_t* thread, void* data);
+ /**
+ * This class implements an approximation of java.util.Thread.
+ */
+ class LOG4CXX_EXPORT Thread
+ {
+ public:
+ /**
+ * Create new instance.
+ */
+ Thread();
+ /**
+ * Destructor.
+ */
+ ~Thread();
+
+ /**
+ * Runs the specified method on a newly created thread.
+ */
+ void run(Runnable start, void* data);
+ void join();
+
+ inline bool isActive() { return thread != 0; }
+
+ /**
+ * Causes the currently executing thread to sleep for the
+ * specified number of milliseconds.
+ * @param millis milliseconds.
+ * @throws Interrupted Exception if the thread is interrupted.
+ */
+ static void sleep(int millis);
+ /**
+ * Sets interrupted status for current thread to true.
+ */
+ static void currentThreadInterrupt();
+ /**
+ * Sets interrupted status to true.
+ */
+ void interrupt();
+ /**
+ * Tests if the current thread has been interrupted and
+ * sets the interrupted status to false.
+ */
+ static bool interrupted();
+
+ bool isAlive();
+ bool isCurrentThread() const;
+ void ending();
+
+
+ private:
+ Pool p;
+ apr_thread_t* thread;
+ volatile unsigned int alive;
+ volatile unsigned int interruptedStatus;
+ Thread(const Thread&);
+ Thread& operator=(const Thread&);
+
+ /**
+ * This class is used to encapsulate the parameters to
+ * Thread::run when they are passed to Thread::launcher.
+ *
+ */
+ class LaunchPackage {
+ public:
+ /**
+ * Placement new to create LaunchPackage in specified pool.
+ * LaunchPackage needs to be dynamically allocated since
+ * since a stack allocated instance may go out of scope
+ * before thread is launched.
+ */
+ static void* operator new(size_t, Pool& p);
+ /**
+ * operator delete would be called if exception during construction.
+ */
+ static void operator delete(void*, Pool& p);
+ /**
+ * Create new instance.
+ */
+ LaunchPackage(Thread* thread, Runnable runnable, void* data);
+ /**
+ * Gets thread parameter.
+ * @return thread.
+ */
+ Thread* getThread() const;
+ /**
+ * Gets runnable parameter.
+ * @return runnable.
+ */
+ Runnable getRunnable() const;
+ /**
+ * gets data parameter.
+ * @return thread.
+ */
+ void* getData() const;
+ private:
+ LaunchPackage(const LaunchPackage&);
+ LaunchPackage& operator=(const LaunchPackage&);
+ Thread* thread;
+ Runnable runnable;
+ void* data;
+ };
+
+ /**
+ * This object atomically sets the specified memory location
+ * to non-zero on construction and to zero on destruction.
+ * Used to maintain Thread.alive.
+ */
+ class LaunchStatus {
+ public:
+ /*
+ * Construct new instance.
+ * @param p address of memory to set to non-zero on construction, zero on destruction.
+ */
+ LaunchStatus(volatile unsigned int* p);
+ /**
+ * Destructor.
+ */
+ ~LaunchStatus();
+ private:
+ LaunchStatus(const LaunchStatus&);
+ LaunchStatus& operator=(const LaunchStatus&);
+ volatile unsigned int* alive;
+ };
+
+ /**
+ * This method runs on the created thread and sets up thread-local storage
+ * used to keep the reference to the corresponding Thread object and
+ * is responsible for maintaining Thread.alive.
+ */
+ static void* LOG4CXX_THREAD_FUNC launcher(apr_thread_t* thread, void* data);
+ /**
+ * Get a key to the thread local storage used to hold the reference to
+ * the corresponding Thread object.
+ */
+ static ThreadLocal& getThreadLocal();
+ };
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_THREAD_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/threadlocal.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/threadlocal.h
new file mode 100644
index 0000000000..9275811917
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/threadlocal.h
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_THREAD_LOCAL_H
+#define _LOG4CXX_HELPERS_THREAD_LOCAL_H
+
+#include <log4cxx/log4cxx.h>
+#include <log4cxx/helpers/pool.h>
+
+#if !defined(LOG4CXX_THREAD_FUNC)
+#if defined(_WIN32)
+#define LOG4CXX_THREAD_FUNC __stdcall
+#else
+#define LOG4CXX_THREAD_FUNC
+#endif
+#endif
+
+
+extern "C" {
+ struct apr_threadkey_t;
+}
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+
+ /**
+ * This class provides thread-local variables. This class is similar in function
+ * to java.lang.ThreadLocal.
+ */
+ class LOG4CXX_EXPORT ThreadLocal {
+ public:
+ /**
+ * Create new instance.
+ */
+ ThreadLocal();
+ /**
+ * Destructor.
+ */
+ ~ThreadLocal();
+ /**
+ * Sets the value in the current thread's copy of this thread-local variable.
+ * @param priv new value.
+ */
+ void set(void* priv);
+ /**
+ * Returns the value in the current thread's copy of this thread-local variable.
+ * @return value of thread-local variable for the current thread.
+ */
+ void* get();
+
+ private:
+ /**
+ * Prevent use of default copy constructor.
+ */
+ ThreadLocal(const ThreadLocal&);
+ /**
+ * Prevent use of default assignment operator.
+ */
+ ThreadLocal& operator=(const ThreadLocal&);
+
+ static apr_threadkey_t* create(Pool& p);
+
+ Pool p;
+ apr_threadkey_t* key;
+ };
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_THREAD_LOCAL_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/threadspecificdata.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/threadspecificdata.h
new file mode 100644
index 0000000000..b02cf517a5
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/threadspecificdata.h
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_THREAD_SPECIFIC_DATA_H
+#define _LOG4CXX_HELPERS_THREAD_SPECIFIC_DATA_H
+
+#include <log4cxx/ndc.h>
+#include <log4cxx/mdc.h>
+
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ /**
+ * This class contains all the thread-specific
+ * data in use by log4cxx.
+ */
+ class LOG4CXX_EXPORT ThreadSpecificData
+ {
+ public:
+ ThreadSpecificData();
+ ~ThreadSpecificData();
+
+ /**
+ * Gets current thread specific data.
+ * @return thread specific data, may be null.
+ */
+ static ThreadSpecificData* getCurrentData();
+ /**
+ * Release this ThreadSpecficData if empty.
+ */
+ void recycle();
+
+ static void put(const LogString& key, const LogString& val);
+ static void push(const LogString& val);
+ static void inherit(const log4cxx::NDC::Stack& stack);
+
+ log4cxx::NDC::Stack& getStack();
+ log4cxx::MDC::Map& getMap();
+
+
+ private:
+ static ThreadSpecificData& getDataNoThreads();
+ static ThreadSpecificData* createCurrentData();
+ log4cxx::NDC::Stack ndcStack;
+ log4cxx::MDC::Map mdcMap;
+ };
+
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/timezone.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/timezone.h
new file mode 100644
index 0000000000..67c0626f75
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/timezone.h
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_TIMEZONE_H
+#define _LOG4CXX_HELPERS_TIMEZONE_H
+
+#include <log4cxx/logstring.h>
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/helpers/objectptr.h>
+
+struct apr_time_exp_t;
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class TimeZone;
+ LOG4CXX_PTR_DEF(TimeZone);
+
+ class LOG4CXX_EXPORT TimeZone : public helpers::ObjectImpl
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(TimeZone)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(TimeZone)
+ END_LOG4CXX_CAST_MAP()
+
+ static const TimeZonePtr& getDefault();
+ static const TimeZonePtr& getGMT();
+ static const TimeZonePtr getTimeZone(const LogString& ID);
+
+ const LogString getID() const {
+ return id;
+ }
+
+
+ /**
+ * Expand an APR time into the human readable
+ * components for this timezone.
+ */
+ virtual log4cxx_status_t explode(apr_time_exp_t* result,
+ log4cxx_time_t input) const = 0;
+
+
+ protected:
+ TimeZone(const LogString& ID);
+ virtual ~TimeZone();
+
+ const LogString id;
+ };
+
+
+ }
+}
+
+#endif //_LOG4CXX_HELPERS_TIMEZONE_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/transcoder.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/transcoder.h
new file mode 100644
index 0000000000..0559ba9ecc
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/transcoder.h
@@ -0,0 +1,256 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_TRANSCODER_H
+#define _LOG4CXX_HELPERS_TRANSCODER_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+#include <log4cxx/logstring.h>
+
+
+namespace log4cxx {
+ namespace helpers {
+ class ByteBuffer;
+ class Pool;
+ /**
+ * Simple transcoder for converting between
+ * external char and wchar_t strings and
+ * internal strings.
+ *
+ */
+ class LOG4CXX_EXPORT Transcoder {
+ public:
+
+
+ /**
+ * Appends this specified string of UTF-8 characters to LogString.
+ */
+ static void decodeUTF8(const std::string& src, LogString& dst);
+ /**
+ * Converts the LogString to a UTF-8 string.
+ */
+ static void encodeUTF8(const LogString& src, std::string& dst);
+ /**
+ * Converts the LogString to a UTF-8 string.
+ */
+ static char* encodeUTF8(const LogString& src, log4cxx::helpers::Pool& p);
+ /**
+ * Append UCS-4 code point to a byte buffer as UTF-8.
+ */
+ static void encodeUTF8(unsigned int sv, ByteBuffer& dst);
+ /**
+ * Append UCS-4 code point to a byte buffer as UTF-16LE.
+ */
+ static void encodeUTF16LE(unsigned int sv, ByteBuffer& dst);
+ /**
+ * Append UCS-4 code point to a byte buffer as UTF-16BE.
+ */
+ static void encodeUTF16BE(unsigned int sv, ByteBuffer& dst);
+
+
+ /**
+ * Decodes next character from a UTF-8 string.
+ * @param in string from which the character is extracted.
+ * @param iter iterator addressing start of character, will be
+ * advanced to next character if successful.
+ * @return scalar value (UCS-4) or 0xFFFF if invalid sequence.
+ */
+ static unsigned int decode(const std::string& in,
+ std::string::const_iterator& iter);
+
+ /**
+ * Appends UCS-4 value to a UTF-8 string.
+ * @param ch UCS-4 value.
+ * @param dst destination.
+ */
+ static void encode(unsigned int ch, std::string& dst);
+
+ /**
+ * Appends string in the current code-page
+ * to a LogString.
+ */
+ static void decode(const std::string& src, LogString& dst);
+ /**
+ * Appends a LogString to a string in the current
+ * code-page. Unrepresentable characters may be
+ * replaced with loss characters.
+ */
+ static void encode(const LogString& src, std::string& dst);
+
+ /**
+ * Encodes the specified LogString to the current
+ * character set.
+ * @param src string to encode.
+ * @param p pool from which to allocate return value.
+ * @return pool allocated string.
+ */
+ static char* encode(const LogString& src, log4cxx::helpers::Pool& p);
+
+
+
+#if LOG4CXX_WCHAR_T_API || LOG4CXX_LOGCHAR_IS_WCHAR_T || defined(WIN32) || defined(_WIN32)
+ static void decode(const std::wstring& src, LogString& dst);
+ static void encode(const LogString& src, std::wstring& dst);
+ static wchar_t* wencode(const LogString& src, log4cxx::helpers::Pool& p);
+
+ /**
+ * Decodes next character from a wstring.
+ * @param in string from which the character is extracted.
+ * @param iter iterator addressing start of character, will be
+ * advanced to next character if successful.
+ * @return scalar value (UCS-4) or 0xFFFF if invalid sequence.
+ */
+ static unsigned int decode(const std::wstring& in,
+ std::wstring::const_iterator& iter);
+
+ /**
+ * Appends UCS-4 value to a UTF-8 string.
+ * @param ch UCS-4 value.
+ * @param dst destination.
+ */
+ static void encode(unsigned int ch, std::wstring& dst);
+
+#endif
+
+
+#if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API || LOG4CXX_LOGCHAR_IS_UNICHAR
+ static void decode(const std::basic_string<UniChar>& src, LogString& dst);
+ static void encode(const LogString& src, std::basic_string<UniChar>& dst);
+
+ /**
+ * Decodes next character from a UniChar string.
+ * @param in string from which the character is extracted.
+ * @param iter iterator addressing start of character, will be
+ * advanced to next character if successful.
+ * @return scalar value (UCS-4) or 0xFFFF if invalid sequence.
+ */
+ static unsigned int decode(const std::basic_string<UniChar>& in,
+ std::basic_string<UniChar>::const_iterator& iter);
+
+ /**
+ * Appends UCS-4 value to a UTF-8 string.
+ * @param ch UCS-4 value.
+ * @param dst destination.
+ */
+ static void encode(unsigned int ch, std::basic_string<UniChar>& dst);
+
+#endif
+
+#if LOG4CXX_CFSTRING_API
+ static void decode(const CFStringRef& src, LogString& dst);
+ static CFStringRef encode(const LogString& src);
+#endif
+
+ enum { LOSSCHAR = 0x3F };
+
+ /**
+ * Returns a logchar value given a character literal in the ASCII charset.
+ * Used to implement the LOG4CXX_STR macro for EBCDIC and UNICHAR.
+ */
+ static logchar decode(char v);
+ /**
+ * Returns a LogString given a string literal in the ASCII charset.
+ * Used to implement the LOG4CXX_STR macro for EBCDIC and UNICHAR.
+ */
+ static LogString decode(const char* v);
+
+ /**
+ * Encodes a charset name in the default encoding
+ * without using a CharsetEncoder (which could trigger recursion).
+ */
+ static std::string encodeCharsetName(const LogString& charsetName);
+
+ private:
+
+ private:
+ Transcoder();
+ Transcoder(const Transcoder&);
+ Transcoder& operator=(const Transcoder&);
+ enum { BUFSIZE = 256 };
+ static size_t encodeUTF8(unsigned int ch, char* dst);
+ static size_t encodeUTF16BE(unsigned int ch, char* dst);
+ static size_t encodeUTF16LE(unsigned int ch, char* dst);
+
+ };
+ }
+}
+
+#define LOG4CXX_ENCODE_CHAR(var, src) \
+std::string var; \
+log4cxx::helpers::Transcoder::encode(src, var)
+
+#define LOG4CXX_DECODE_CHAR(var, src) \
+log4cxx::LogString var; \
+log4cxx::helpers::Transcoder::decode(src, var)
+
+#define LOG4CXX_DECODE_CFSTRING(var, src) \
+log4cxx::LogString var; \
+log4cxx::helpers::Transcoder::decode(src, var)
+
+#define LOG4CXX_ENCODE_CFSTRING(var, src) \
+CFStringRef var = log4cxx::helpers::Transcoder::encode(src)
+
+
+#if LOG4CXX_LOGCHAR_IS_WCHAR
+
+#define LOG4CXX_ENCODE_WCHAR(var, src) \
+const std::wstring& var = src
+
+#define LOG4CXX_DECODE_WCHAR(var, src) \
+const log4cxx::LogString& var = src
+
+#else
+
+#define LOG4CXX_ENCODE_WCHAR(var, src) \
+std::wstring var; \
+log4cxx::helpers::Transcoder::encode(src, var)
+
+#define LOG4CXX_DECODE_WCHAR(var, src) \
+log4cxx::LogString var; \
+log4cxx::helpers::Transcoder::decode(src, var)
+
+#endif
+
+#if LOG4CXX_LOGCHAR_IS_UNICHAR
+
+#define LOG4CXX_ENCODE_UNICHAR(var, src) \
+const std::basic_string<UniChar>& var = src
+
+#define LOG4CXX_DECODE_UNICHAR(var, src) \
+const log4cxx::LogString& var = src
+
+#else
+
+#define LOG4CXX_ENCODE_UNICHAR(var, src) \
+std::basic_string<UniChar> var; \
+log4cxx::helpers::Transcoder::encode(src, var)
+
+#define LOG4CXX_DECODE_UNICHAR(var, src) \
+log4cxx::LogString var; \
+log4cxx::helpers::Transcoder::decode(src, var)
+
+#endif
+
+#if defined(_MSC_VER)
+#pragma warning (pop)
+#endif
+
+#endif //_LOG4CXX_HELPERS_TRANSCODER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/transform.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/transform.h
new file mode 100644
index 0000000000..08be797285
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/transform.h
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_TRANSFORM_H
+#define _LOG4CXX_HELPERS_TRANSFORM_H
+
+#include <log4cxx/logstring.h>
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ /**
+ Utility class for transforming strings.
+ */
+ class LOG4CXX_EXPORT Transform
+ {
+ public:
+ /**
+ * This method takes a string which may contain HTML tags (ie,
+ * &lt;b&gt;, &lt;table&gt;, etc) and replaces any '<' and '>'
+ * characters with respective predefined entity references.
+ *
+ * @param buf output stream where to write the modified string.
+ * @param input The text to be converted.
+ * @return The input string with the characters '<' and '>' replaced with
+ * &amp;lt; and &amp;gt; respectively.
+ * */
+ static void appendEscapingTags(
+ LogString& buf, const LogString& input);
+
+ /**
+ * Ensures that embeded CDEnd strings (]]>) are handled properly
+ * within message, NDC and throwable tag text.
+ *
+ * @param buf output stream holding the XML data to this point. The
+ * initial CDStart (<![CDATA[) and final CDEnd (]]>) of the CDATA
+ * section are the responsibility of the calling method.
+ * @param input The String that is inserted into an existing CDATA
+ * Section within buf.
+ */
+ static void appendEscapingCDATA(
+ LogString& buf, const LogString& input);
+ }; // class Transform
+ } // namespace helpers
+} //namespace log4cxx
+
+#endif // _LOG4CXX_HELPERS_TRANSFORM_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/writer.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/writer.h
new file mode 100644
index 0000000000..debe834bf0
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/writer.h
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_WRITER_H
+#define _LOG4CXX_HELPERS_WRITER_H
+
+#include <log4cxx/helpers/objectimpl.h>
+
+namespace log4cxx
+{
+
+ namespace helpers {
+
+ /**
+ * Abstract class for writing to character streams.
+ */
+ class LOG4CXX_EXPORT Writer : public ObjectImpl
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(Writer)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(Writer)
+ END_LOG4CXX_CAST_MAP()
+
+ protected:
+ Writer();
+ virtual ~Writer();
+
+ public:
+ virtual void close(Pool& p) = 0;
+ virtual void flush(Pool& p) = 0;
+ virtual void write(const LogString& str, Pool& p) = 0;
+
+ private:
+ Writer(const Writer&);
+ Writer& operator=(const Writer&);
+ };
+
+ LOG4CXX_PTR_DEF(Writer);
+ } // namespace helpers
+
+} //namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_WRITER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/xml.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/xml.h
new file mode 100644
index 0000000000..a6b212bf50
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/xml.h
@@ -0,0 +1,131 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_XML_H
+#define _LOG4CXX_HELPERS_XML_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/logstring.h>
+#include <log4cxx/helpers/objectptr.h>
+#include <log4cxx/helpers/object.h>
+#include <log4cxx/helpers/exception.h>
+
+namespace log4cxx
+{
+ class File;
+ namespace helpers
+ {
+ class XMLDOMNode;
+ typedef helpers::ObjectPtrT<XMLDOMNode> XMLDOMNodePtr;
+
+ class XMLDOMDocument;
+ typedef helpers::ObjectPtrT<XMLDOMDocument> XMLDOMDocumentPtr;
+
+ class XMLDOMNodeList;
+ typedef helpers::ObjectPtrT<XMLDOMNodeList> XMLDOMNodeListPtr;
+
+ class LOG4CXX_EXPORT DOMException : public RuntimeException
+ {
+ public:
+ DOMException() : RuntimeException(LOG4CXX_STR("DOM exception")) {}
+ };
+
+
+ /**
+ The XMLDOMNode interface is the primary datatype for the entire Document
+ Object Model.
+ */
+ class LOG4CXX_EXPORT XMLDOMNode : virtual public Object
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(XMLDOMNode)
+ enum XMLDOMNodeType
+ {
+ NOT_IMPLEMENTED_NODE = 0,
+ ELEMENT_NODE = 1,
+ DOCUMENT_NODE = 9
+ };
+
+ virtual XMLDOMNodeListPtr getChildNodes() = 0;
+ virtual XMLDOMNodeType getNodeType() = 0;
+ virtual XMLDOMDocumentPtr getOwnerDocument() = 0;
+ };
+ LOG4CXX_PTR_DEF(XMLDOMNode);
+
+
+ /**
+ The XMLDOMElement interface represents an element in an XML document
+ */
+ class LOG4CXX_EXPORT XMLDOMElement : virtual public XMLDOMNode
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(XMLDOMElement)
+ virtual LogString getTagName() = 0;
+ virtual LogString getAttribute(const LogString& name) = 0;
+ };
+ LOG4CXX_PTR_DEF(XMLDOMElement);
+
+ /**
+ The XMLDOMDocument interface represents an entire XML document.
+
+ Conceptually, it is the root of the document tree, and provides the
+ primary access to the document's data.
+ */
+ class LOG4CXX_EXPORT XMLDOMDocument : virtual public XMLDOMNode
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(XMLDOMDocument)
+ virtual void load(const File& fileName) = 0;
+ virtual XMLDOMElementPtr getDocumentElement() = 0;
+ virtual XMLDOMElementPtr getElementById(const LogString& tagName,
+ const LogString& elementId) = 0;
+ };
+ LOG4CXX_PTR_DEF(XMLDOMDocument);
+
+ /**
+ The XMLDOMNodeList interface provides the abstraction of an ordered
+ collection of nodes, without defining or constraining how this
+ collection is implemented.
+
+ XMLDOMNodeList objects in the DOM are live.
+
+ The items in the XMLDOMNodeList are accessible via an integral index,
+ starting from 0.
+ */
+ class LOG4CXX_EXPORT XMLDOMNodeList : virtual public Object
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(XMLDOMNodeList)
+ virtual int getLength() = 0;
+ virtual XMLDOMNodePtr item(int index) = 0;
+ };
+ LOG4CXX_PTR_DEF(XMLDOMNodeList);
+ } // namespace helpers
+} // namespace log4cxx
+
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+#endif // _LOG4CXX_HELPERS_XML_H
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/hierarchy.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/hierarchy.h
new file mode 100644
index 0000000000..ff6854d3e5
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/hierarchy.h
@@ -0,0 +1,283 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HIERARCHY_H
+#define _LOG4CXX_HIERARCHY_H
+
+#if defined(_MSC_VER)
+#pragma warning (push)
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+#include <log4cxx/spi/loggerrepository.h>
+#include <log4cxx/spi/loggerfactory.h>
+#include <vector>
+#include <map>
+#include <log4cxx/provisionnode.h>
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/spi/hierarchyeventlistener.h>
+#include <log4cxx/helpers/pool.h>
+
+namespace log4cxx
+{
+ /**
+ This class is specialized in retrieving loggers by name and also
+ maintaining the logger hierarchy.
+
+ <p><em>The casual user does not have to deal with this class
+ directly.</em>
+
+ <p>The structure of the logger hierarchy is maintained by the
+ #getLogger method. The hierarchy is such that children link
+ to their parent but parents do not have any pointers to their
+ children. Moreover, loggers can be instantiated in any order, in
+ particular descendant before ancestor.
+
+ <p>In case a descendant is created before a particular ancestor,
+ then it creates a provision node for the ancestor and adds itself
+ to the provision node. Other descendants of the same ancestor add
+ themselves to the previously created provision node.
+ */
+ class LOG4CXX_EXPORT Hierarchy :
+ public virtual spi::LoggerRepository,
+ public virtual helpers::ObjectImpl
+ {
+ private:
+ log4cxx::helpers::Pool pool;
+ log4cxx::helpers::Mutex mutex;
+ bool configured;
+
+ spi::LoggerFactoryPtr defaultFactory;
+ spi::HierarchyEventListenerList listeners;
+
+ typedef std::map<LogString, LoggerPtr> LoggerMap;
+ LoggerMap* loggers;
+
+ typedef std::map<LogString, ProvisionNode> ProvisionNodeMap;
+ ProvisionNodeMap* provisionNodes;
+
+ LoggerPtr root;
+
+ int thresholdInt;
+ LevelPtr threshold;
+
+ bool emittedNoAppenderWarning;
+ bool emittedNoResourceBundleWarning;
+
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(Hierarchy)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(spi::LoggerRepository)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ Create a new logger hierarchy.
+ */
+ Hierarchy();
+
+ ~Hierarchy();
+
+ void addRef() const;
+ void releaseRef() const;
+
+ void addHierarchyEventListener(const spi::HierarchyEventListenerPtr& listener);
+
+ /**
+ This call will clear all logger definitions from the internal
+ hashtable. Invoking this method will irrevocably mess up the
+ logger hierarchy.
+
+ <p>You should <em>really</em> know what you are doing before
+ invoking this method.
+ */
+ void clear();
+
+ void emitNoAppenderWarning(const LoggerPtr& logger);
+
+ /**
+ Check if the named logger exists in the hierarchy. If so return
+ its reference, otherwise returns <code>null</code>.
+
+ @param name The name of the logger to search for.
+
+ */
+ LoggerPtr exists(const LogString& name);
+
+ /**
+ The string form of {@link #setThreshold(const LevelPtr&) setThreshold}.
+ */
+ void setThreshold(const LogString& levelStr);
+
+ /**
+ Enable logging for logging requests with level <code>l</code> or
+ higher. By default all levels are enabled.
+
+ @param l The minimum level for which logging requests are sent to
+ their appenders. */
+ void setThreshold(const LevelPtr& l);
+
+ void fireAddAppenderEvent(const LoggerPtr& logger, const AppenderPtr& appender);
+
+ void fireRemoveAppenderEvent(const LoggerPtr& logger,
+ const AppenderPtr& appender);
+
+ /**
+ Returns a Level representation of the <code>enable</code>
+ state.
+ */
+ const LevelPtr& getThreshold() const;
+
+ /**
+ Return a new logger instance named as the first parameter using
+ the default factory.
+
+ <p>If a logger of that name already exists, then it will be
+ returned. Otherwise, a new logger will be instantiated and
+ then linked with its existing ancestors as well as children.
+
+ @param name The name of the logger to retrieve.
+
+ */
+ LoggerPtr getLogger(const LogString& name);
+
+ /**
+ Return a new logger instance named as the first parameter using
+ <code>factory</code>.
+
+ <p>If a logger of that name already exists, then it will be
+ returned. Otherwise, a new logger will be instantiated by the
+ <code>factory</code> parameter and linked with its existing
+ ancestors as well as children.
+
+ @param name The name of the logger to retrieve.
+ @param factory The factory that will make the new logger instance.
+
+ */
+ LoggerPtr getLogger(const LogString& name,
+ const spi::LoggerFactoryPtr& factory);
+
+ /**
+ Returns all the currently defined loggers in this hierarchy as
+ a LoggerList.
+
+ <p>The root logger is <em>not</em> included in the returned
+ LoggerList. */
+ LoggerList getCurrentLoggers() const;
+
+ /**
+ Get the root of this hierarchy.
+ */
+ LoggerPtr getRootLogger() const;
+
+ /**
+ This method will return <code>true</code> if this repository is
+ disabled for <code>level</code> object passed as parameter and
+ <code>false</code> otherwise. See also the
+ {@link #setThreshold(const LevelPtr&) setThreshold} method. */
+ bool isDisabled(int level) const;
+
+ /**
+ Reset all values contained in this hierarchy instance to their
+ default. This removes all appenders from all categories, sets
+ the level of all non-root categories to <code>null</code>,
+ sets their additivity flag to <code>true</code> and sets the level
+ of the root logger to DEBUG. Moreover,
+ message disabling is set its default "off" value.
+
+ <p>Existing categories are not removed. They are just reset.
+
+ <p>This method should be used sparingly and with care as it will
+ block all logging until it is completed.</p>
+ */
+ void resetConfiguration();
+
+ /**
+ Used by subclasses to add a renderer to the hierarchy passed as parameter.
+ */
+ /**
+ Shutting down a hierarchy will <em>safely</em> close and remove
+ all appenders in all categories including the root logger.
+
+ <p>Some appenders such as {@link net::SocketAppender SocketAppender}
+ and AsyncAppender need to be closed before the
+ application exists. Otherwise, pending logging events might be
+ lost.
+
+ <p>The <code>shutdown</code> method is careful to close nested
+ appenders before closing regular appenders. This is allows
+ configurations where a regular appender is attached to a logger
+ and again to a nested appender.
+ */
+ void shutdown();
+
+
+ virtual bool isConfigured();
+ virtual void setConfigured(bool configured);
+
+
+ private:
+
+ /**
+ This method loops through all the *potential* parents of
+ 'cat'. There 3 possible cases:
+
+ 1) No entry for the potential parent of 'cat' exists
+
+ We create a ProvisionNode for this potential parent and insert
+ 'cat' in that provision node.
+
+ 2) There entry is of type Logger for the potential parent.
+
+ The entry is 'cat's nearest existing parent. We update cat's
+ parent field with this entry. We also break from the loop
+ because updating our parent's parent is our parent's
+ responsibility.
+
+ 3) There entry is of type ProvisionNode for this potential parent.
+
+ We add 'cat' to the list of children for this potential parent.
+ */
+ void updateParents(LoggerPtr logger);
+
+ /**
+ We update the links for all the children that placed themselves
+ in the provision node 'pn'. The second argument 'cat' is a
+ reference for the newly created Logger, parent of all the
+ children in 'pn'
+
+ We loop on all the children 'c' in 'pn':
+
+ If the child 'c' has been already linked to a child of
+ 'cat' then there is no need to update 'c'.
+
+ Otherwise, we set cat's parent field to c's parent and set
+ c's parent field to cat.
+ */
+ Hierarchy(const Hierarchy&);
+ Hierarchy& operator=(const Hierarchy&);
+
+ void updateChildren(ProvisionNode& pn, LoggerPtr logger);
+ };
+
+} //namespace log4cxx
+
+
+#if defined(_MSC_VER)
+#pragma warning (pop)
+#endif
+
+#endif //_LOG4CXX_HIERARCHY_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/htmllayout.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/htmllayout.h
new file mode 100644
index 0000000000..8c0c6a7f32
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/htmllayout.h
@@ -0,0 +1,133 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HTML_LAYOUT_H
+#define _LOG4CXX_HTML_LAYOUT_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/layout.h>
+#include <log4cxx/helpers/iso8601dateformat.h>
+
+
+
+namespace log4cxx
+{
+ /**
+ This layout outputs events in a HTML table.
+ */
+ class LOG4CXX_EXPORT HTMLLayout : public Layout
+ {
+ private:
+ // Print no location info by default
+ bool locationInfo; //= false
+
+ LogString title;
+
+ helpers::ISO8601DateFormat dateFormat;
+
+ public:
+ DECLARE_LOG4CXX_OBJECT(HTMLLayout)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(HTMLLayout)
+ LOG4CXX_CAST_ENTRY_CHAIN(Layout)
+ END_LOG4CXX_CAST_MAP()
+
+ HTMLLayout();
+
+ /**
+ The <b>LocationInfo</b> option takes a boolean value. By
+ default, it is set to false which means there will be no location
+ information output by this layout. If the the option is set to
+ true, then the file name and line number of the statement
+ at the origin of the log statement will be output.
+
+ <p>If you are embedding this layout within an
+ {@link net::SMTPAppender SMTPAppender} then make sure
+ to set the <b>LocationInfo</b> option of that appender as well.
+ */
+ inline void setLocationInfo(bool locationInfoFlag)
+ { this->locationInfo = locationInfoFlag; }
+
+ /**
+ Returns the current value of the <b>LocationInfo</b> option.
+ */
+ inline bool getLocationInfo() const
+ { return locationInfo; }
+
+ /**
+ The <b>Title</b> option takes a String value. This option sets the
+ document title of the generated HTML document.
+ <p>Defaults to 'Log4cxx Log Messages'.
+ */
+ inline void setTitle(const LogString& title1)
+ { this->title.assign(title1); }
+
+ /**
+ Returns the current value of the <b>Title</b> option.
+ */
+ inline const LogString& getTitle() const
+ { return title; }
+
+ /**
+ Returns the content type output by this layout, i.e "text/html".
+ */
+ virtual LogString getContentType() const { return LOG4CXX_STR("text/html"); }
+
+ /**
+ No options to activate.
+ */
+ virtual void activateOptions(log4cxx::helpers::Pool& /* p */) {}
+
+ /**
+ Set options
+ */
+ virtual void setOption(const LogString& option, const LogString& value);
+
+ virtual void format(LogString& output,
+ const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& pool) const;
+
+ /**
+ Append appropriate HTML headers.
+ */
+ virtual void appendHeader(LogString& output, log4cxx::helpers::Pool& pool);
+
+ /**
+ Append the appropriate HTML footers.
+ */
+ virtual void appendFooter(LogString& output, log4cxx::helpers::Pool& pool);
+
+ /**
+ The HTML layout handles the throwable contained in logging
+ events. Hence, this method return <code>false</code>. */
+ virtual bool ignoresThrowable() const
+ { return false; }
+
+ }; // class HtmlLayout
+ LOG4CXX_PTR_DEF(HTMLLayout);
+} // namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+
+#endif // _LOG4CXX_HTML_LAYOUT_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/layout.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/layout.h
new file mode 100644
index 0000000000..b07d65049e
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/layout.h
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_LAYOUT_H
+#define _LOG4CXX_LAYOUT_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/helpers/objectptr.h>
+#include <log4cxx/spi/optionhandler.h>
+#include <log4cxx/spi/loggingevent.h>
+
+
+namespace log4cxx
+{
+ /**
+ Extend this abstract class to create your own log layout format.
+ */
+ class LOG4CXX_EXPORT Layout :
+ public virtual spi::OptionHandler,
+ public virtual helpers::ObjectImpl
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(Layout)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(Layout)
+ LOG4CXX_CAST_ENTRY(spi::OptionHandler)
+ END_LOG4CXX_CAST_MAP()
+
+ virtual ~Layout();
+ void addRef() const;
+ void releaseRef() const;
+
+
+ /**
+ Implement this method to create your own layout format.
+ */
+ virtual void format(LogString& output,
+ const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& pool) const = 0;
+
+ /**
+ Returns the content type output by this layout. The base class
+ returns "text/plain".
+ */
+ virtual LogString getContentType() const;
+
+ /**
+ Append the header for the layout format. The base class does
+ nothing.
+ */
+ virtual void appendHeader(LogString& output, log4cxx::helpers::Pool& p);
+
+ /**
+ Append the footer for the layout format. The base class does
+ nothing.
+ */
+ virtual void appendFooter(LogString& output, log4cxx::helpers::Pool& p);
+
+ /**
+ If the layout handles the throwable object contained within
+ {@link spi::LoggingEvent LoggingEvent}, then the layout should return
+ <code>false</code>. Otherwise, if the layout ignores throwable
+ object, then the layout should return <code>true</code>.
+
+ <p>The SimpleLayout, TTCCLayout,
+ PatternLayout all return <code>true</code>. The {@link
+ xml::XMLLayout XMLLayout} returns <code>false</code>.
+ */
+ virtual bool ignoresThrowable() const = 0;
+ };
+ LOG4CXX_PTR_DEF(Layout);
+}
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+#endif // _LOG4CXX_LAYOUT_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/level.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/level.h
new file mode 100644
index 0000000000..e675e45e9e
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/level.h
@@ -0,0 +1,285 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_LEVEL_H
+#define _LOG4CXX_LEVEL_H
+
+
+#include <log4cxx/logstring.h>
+#include <limits.h>
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/helpers/objectptr.h>
+
+
+namespace log4cxx
+{
+ class Level;
+ /** smart pointer to a Level instance */
+ LOG4CXX_PTR_DEF(Level);
+
+ /**
+ Defines the minimum set of levels recognized by the system, that is
+ <code>OFF</code>, <code>FATAL</code>, <code>ERROR</code>,
+ <code>WARN</code>, <code>INFO</code>, <code>DEBUG</code> and
+ <code>ALL</code>.
+ <p>The <code>Level</code> class may be subclassed to define a larger
+ level set.
+ */
+ class LOG4CXX_EXPORT Level : public helpers::ObjectImpl
+ {
+ public:
+ class LOG4CXX_EXPORT LevelClass : public helpers::Class
+ {
+ public:
+ LevelClass() : helpers::Class() {}
+
+ virtual LogString getName() const {
+ return LOG4CXX_STR("Level");
+ }
+
+ virtual LevelPtr toLevel(const LogString& sArg) const
+ { return Level::toLevelLS(sArg); }
+
+ virtual LevelPtr toLevel(int val) const
+ { return Level::toLevel(val); }
+ };
+
+ DECLARE_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(Level, LevelClass)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(Level)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ Instantiate a Level object.
+ */
+ Level(int level,
+ const LogString& name,
+ int syslogEquivalent);
+
+ /**
+ Convert the string passed as argument to a level. If the
+ conversion fails, then this method returns DEBUG.
+ * @param sArg level name.
+ */
+ static LevelPtr toLevel(const std::string& sArg);
+ /**
+ Convert the string passed as argument to a level. If the
+ conversion fails, then this method returns the value of
+ <code>defaultLevel</code>.
+ * @param sArg level name.
+ * @param defaultLevel level to return if no match.
+ * @return
+ */
+ static LevelPtr toLevel(const std::string& sArg,
+ const LevelPtr& defaultLevel);
+ /**
+ * Get the name of the level in the current encoding.
+ * @param name buffer to which name is appended.
+ */
+ void toString(std::string& name) const;
+
+#if LOG4CXX_WCHAR_T_API
+ /**
+ Convert the string passed as argument to a level. If the
+ conversion fails, then this method returns DEBUG.
+ * @param sArg level name.
+ */
+ static LevelPtr toLevel(const std::wstring& sArg);
+ /**
+ Convert the string passed as argument to a level. If the
+ conversion fails, then this method returns the value of
+ <code>defaultLevel</code>.
+ * @param sArg level name.
+ * @param defaultLevel level to return if no match.
+ * @return
+ */
+ static LevelPtr toLevel(const std::wstring& sArg,
+ const LevelPtr& defaultLevel);
+ /**
+ * Get the name of the level.
+ * @param name buffer to which name is appended.
+ */
+ void toString(std::wstring& name) const;
+#endif
+#if LOG4CXX_UNICHAR_API
+ /**
+ Convert the string passed as argument to a level. If the
+ conversion fails, then this method returns DEBUG.
+ * @param sArg level name.
+ */
+ static LevelPtr toLevel(const std::basic_string<UniChar>& sArg);
+ /**
+ Convert the string passed as argument to a level. If the
+ conversion fails, then this method returns the value of
+ <code>defaultLevel</code>.
+ * @param sArg level name.
+ * @param defaultLevel level to return if no match.
+ * @return
+ */
+ static LevelPtr toLevel(const std::basic_string<UniChar>& sArg,
+ const LevelPtr& defaultLevel);
+ /**
+ * Get the name of the level.
+ * @param name buffer to which name is appended.
+ */
+ void toString(std::basic_string<UniChar>& name) const;
+#endif
+#if LOG4CXX_CFSTRING_API
+ /**
+ Convert the string passed as argument to a level. If the
+ conversion fails, then this method returns DEBUG.
+ * @param sArg level name.
+ */
+ static LevelPtr toLevel(const CFStringRef& sArg);
+ /**
+ Convert the string passed as argument to a level. If the
+ conversion fails, then this method returns the value of
+ <code>defaultLevel</code>.
+ * @param sArg level name.
+ * @param defaultLevel level to return if no match.
+ * @return
+ */
+ static LevelPtr toLevel(const CFStringRef& sArg,
+ const LevelPtr& defaultLevel);
+ /**
+ * Get the name of the level.
+ * @param name buffer to which name is appended.
+ */
+ void toString(CFStringRef& name) const;
+#endif
+ /**
+ Convert the string passed as argument to a level. If the
+ conversion fails, then this method returns DEBUG.
+ * @param sArg level name.
+ */
+ static LevelPtr toLevelLS(const LogString& sArg);
+ /**
+ Convert the string passed as argument to a level. If the
+ conversion fails, then this method returns the value of
+ <code>defaultLevel</code>.
+ * @param sArg level name.
+ * @param defaultLevel level to return if no match.
+ * @return
+ */
+ static LevelPtr toLevelLS(const LogString& sArg,
+ const LevelPtr& defaultLevel);
+ /**
+ Returns the string representation of this level.
+ * @return level name.
+ */
+ LogString toString() const;
+
+ /**
+ Convert an integer passed as argument to a level. If the
+ conversion fails, then this method returns DEBUG.
+ */
+ static LevelPtr toLevel(int val);
+
+ /**
+ Convert an integer passed as argument to a level. If the
+ conversion fails, then this method returns the specified default.
+ */
+ static LevelPtr toLevel(int val, const LevelPtr& defaultLevel);
+
+ enum {
+ OFF_INT = INT_MAX,
+ FATAL_INT = 50000,
+ ERROR_INT = 40000,
+ WARN_INT = 30000,
+ INFO_INT = 20000,
+ DEBUG_INT = 10000,
+ TRACE_INT = 5000,
+ ALL_INT = INT_MIN
+ };
+
+
+ static LevelPtr getAll();
+ static LevelPtr getFatal();
+ static LevelPtr getError();
+ static LevelPtr getWarn();
+ static LevelPtr getInfo();
+ static LevelPtr getDebug();
+ static LevelPtr getTrace();
+ static LevelPtr getOff();
+
+
+ /**
+ Two levels are equal if their level fields are equal.
+ */
+ virtual bool equals(const LevelPtr& level) const;
+
+ inline bool operator==(const Level& level1) const
+ { return (this->level == level1.level); }
+
+ inline bool operator!=(const Level& level1) const
+ { return (this->level != level1.level); }
+
+ /**
+ Return the syslog equivalent of this level as an integer.
+ */
+ inline int getSyslogEquivalent() const {
+ return syslogEquivalent;
+ }
+
+
+ /**
+ Returns <code>true</code> if this level has a higher or equal
+ level than the level passed as argument, <code>false</code>
+ otherwise.
+
+ <p>You should think twice before overriding the default
+ implementation of <code>isGreaterOrEqual</code> method.
+
+ */
+ virtual bool isGreaterOrEqual(const LevelPtr& level) const;
+
+
+ /**
+ Returns the integer representation of this level.
+ */
+ inline int toInt() const {
+ return level;
+ }
+
+ private:
+ int level;
+ LogString name;
+ int syslogEquivalent;
+ Level(const Level&);
+ Level& operator=(const Level&);
+ };
+}
+
+#define DECLARE_LOG4CXX_LEVEL(level)\
+public:\
+ class Class##level : public Level::LevelClass\
+{\
+public:\
+ Class##level() : Level::LevelClass() {}\
+ virtual LogString getName() const { return LOG4CXX_STR(#level); } \
+ virtual LevelPtr toLevel(const LogString& sArg) const\
+ { return level::toLevelLS(sArg); }\
+ virtual LevelPtr toLevel(int val) const\
+ { return level::toLevel(val); }\
+};\
+DECLARE_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(level, Class##level)
+
+#define IMPLEMENT_LOG4CXX_LEVEL(level) \
+IMPLEMENT_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(level, Class##level)
+
+
+#endif //_LOG4CXX_LEVEL_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/log4cxx.h.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/log4cxx.h.in
new file mode 100644
index 0000000000..426063157a
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/log4cxx.h.in
@@ -0,0 +1,51 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef LOG4CXX_LOG4CXX_H
+#define LOG4CXX_LOG4CXX_H
+
+/* GENERATED FILE WARNING! DO NOT EDIT log4cxx.h
+ *
+ * Edit log4cxx.h.in instead
+ *
+ */
+
+
+#define LOG4CXX_LOGCHAR_IS_UNICHAR @LOGCHAR_IS_UNICHAR@
+#define LOG4CXX_LOGCHAR_IS_UTF8 @LOGCHAR_IS_UTF8@
+#define LOG4CXX_LOGCHAR_IS_WCHAR @LOGCHAR_IS_WCHAR@
+
+#define LOG4CXX_CHAR_API @CHAR_API@
+#define LOG4CXX_WCHAR_T_API @WCHAR_T_API@
+#define LOG4CXX_UNICHAR_API @UNICHAR_API@
+#define LOG4CXX_CFSTRING_API @CFSTRING_API@
+
+
+typedef long long log4cxx_int64_t;
+#define LOG4CXX_USE_GLOBAL_SCOPE_TEMPLATE 0
+#define LOG4CXX_LOGSTREAM_ADD_NOP 0
+typedef log4cxx_int64_t log4cxx_time_t;
+typedef int log4cxx_status_t;
+typedef unsigned int log4cxx_uint32_t;
+
+
+#define LOG4CXX_EXPORT
+#define LOG4CXX_PTR_DEF(T) typedef log4cxx::helpers::ObjectPtrT<T> T##Ptr
+#define LOG4CXX_LIST_DEF(N, T) typedef std::vector<T> N
+
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/log4cxx.hw b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/log4cxx.hw
new file mode 100644
index 0000000000..670cd32fe1
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/log4cxx.hw
@@ -0,0 +1,99 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LOG4CXX_LOG4CXX_H
+#define LOG4CXX_LOG4CXX_H
+
+/* GENERATED FILE WARNING! DO NOT EDIT log4cxx.h
+ *
+ * Edit log4cxx.hw instead
+ *
+ */
+
+#define LOG4CXX_LOGCHAR_IS_UTF8 0
+#if LOG4CXX_LOGCHAR_IS_UTF8
+#define LOG4CXX_LOGCHAR_IS_WCHAR 0
+#else
+#define LOG4CXX_LOGCHAR_IS_WCHAR 1
+#endif
+#define LOG4CXX_LOGCHAR_IS_UNICHAR 0
+
+#define LOG4CXX_CHAR_API 1
+#define LOG4CXX_WCHAR_T_API 1
+#define LOG4CXX_UNICHAR_API 0
+#define LOG4CXX_CFSTRING_API 0
+
+#if defined(_MSC_VER)
+typedef __int64 log4cxx_int64_t;
+#if _MSC_VER < 1300
+#define LOG4CXX_USE_GLOBAL_SCOPE_TEMPLATE 1
+#define LOG4CXX_LOGSTREAM_ADD_NOP 1
+#endif
+#elif defined(__BORLANDC__)
+typedef __int64 log4cxx_int64_t;
+#else
+typedef long long log4cxx_int64_t;
+#endif
+
+typedef log4cxx_int64_t log4cxx_time_t;
+typedef int log4cxx_status_t;
+typedef unsigned int log4cxx_uint32_t;
+
+// definitions used when using static library
+#if defined(LOG4CXX_STATIC)
+#define LOG4CXX_EXPORT
+// definitions used when building DLL
+#elif defined(LOG4CXX)
+#define LOG4CXX_EXPORT __declspec(dllexport)
+#else
+// definitions used when using DLL
+#define LOG4CXX_EXPORT __declspec(dllimport)
+#endif
+
+
+//
+// pointer and list definition macros when building DLL using VC
+//
+#if defined(_MSC_VER) && !defined(LOG4CXX_STATIC) && defined(LOG4CXX)
+#define LOG4CXX_PTR_DEF(T) \
+template class LOG4CXX_EXPORT log4cxx::helpers::ObjectPtrT<T>; \
+typedef log4cxx::helpers::ObjectPtrT<T> T##Ptr
+#define LOG4CXX_LIST_DEF(N, T) \
+template class LOG4CXX_EXPORT std::allocator<T>; \
+template class LOG4CXX_EXPORT std::vector<T>; \
+typedef std::vector<T> N
+//
+// pointer and list definition macros when linking with DLL using VC
+//
+#elif defined(_MSC_VER) && !defined(LOG4CXX_STATIC)
+#define LOG4CXX_PTR_DEF(T) \
+extern template class LOG4CXX_EXPORT log4cxx::helpers::ObjectPtrT<T>; \
+typedef log4cxx::helpers::ObjectPtrT<T> T##Ptr
+#define LOG4CXX_LIST_DEF(N, T) \
+extern template class LOG4CXX_EXPORT std::allocator<T>; \
+extern template class LOG4CXX_EXPORT std::vector<T>; \
+typedef std::vector<T> N
+//
+// pointer and list definition macros for all other cases
+//
+#else
+#define LOG4CXX_PTR_DEF(T) typedef log4cxx::helpers::ObjectPtrT<T> T##Ptr
+#define LOG4CXX_LIST_DEF(N, T) typedef std::vector<T> N
+#endif
+
+
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logger.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logger.h
new file mode 100644
index 0000000000..5d82b36b39
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logger.h
@@ -0,0 +1,1924 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_LOGGER_H
+#define _LOG4CXX_LOGGER_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+#include <log4cxx/helpers/appenderattachableimpl.h>
+#include <log4cxx/level.h>
+#include <log4cxx/helpers/pool.h>
+#include <log4cxx/helpers/mutex.h>
+#include <log4cxx/spi/location/locationinfo.h>
+#include <log4cxx/helpers/resourcebundle.h>
+#include <log4cxx/helpers/messagebuffer.h>
+
+
+namespace log4cxx
+{
+
+ namespace helpers {
+ class synchronized;
+ }
+
+ namespace spi {
+ class LoggerRepository;
+ LOG4CXX_PTR_DEF(LoggerRepository);
+ class LoggerFactory;
+ LOG4CXX_PTR_DEF(LoggerFactory);
+ }
+
+ class Logger;
+ /** smart pointer to a Logger class */
+ LOG4CXX_PTR_DEF(Logger);
+ LOG4CXX_LIST_DEF(LoggerList, LoggerPtr);
+
+
+ /**
+ This is the central class in the log4cxx package. Most logging
+ operations, except configuration, are done through this class.
+ */
+ class LOG4CXX_EXPORT Logger :
+ public virtual log4cxx::spi::AppenderAttachable,
+ public virtual helpers::ObjectImpl
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(Logger)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(Logger)
+ LOG4CXX_CAST_ENTRY(spi::AppenderAttachable)
+ END_LOG4CXX_CAST_MAP()
+
+ private:
+ /**
+ * Reference to memory pool.
+ */
+ helpers::Pool* pool;
+
+ protected:
+ /**
+ The name of this logger.
+ */
+ LogString name;
+
+ /**
+ The assigned level of this logger. The
+ <code>level</code> variable need not be assigned a value in
+ which case it is inherited form the hierarchy. */
+ LevelPtr level;
+
+ /**
+ The parent of this logger. All loggers have at least one
+ ancestor which is the root logger. */
+ LoggerPtr parent;
+
+ /** The resourceBundle for localized messages.
+
+ @see setResourceBundle, getResourceBundle
+ */
+ helpers::ResourceBundlePtr resourceBundle;
+
+
+ // Loggers need to know what Hierarchy they are in
+ log4cxx::spi::LoggerRepository * repository;
+
+ helpers::AppenderAttachableImplPtr aai;
+
+ /** Additivity is set to true by default, that is children inherit
+ the appenders of their ancestors by default. If this variable is
+ set to <code>false</code> then the appenders found in the
+ ancestors of this logger are not used. However, the children
+ of this logger will inherit its appenders, unless the children
+ have their additivity flag set to <code>false</code> too. See
+ the user manual for more details. */
+ bool additive;
+
+ protected:
+ friend class DefaultLoggerFactory;
+
+ /**
+ This constructor created a new <code>logger</code> instance and
+ sets its name.
+
+ <p>It is intended to be used by sub-classes only. You should not
+ create categories directly.
+
+ @param pool lifetime of pool must be longer than logger.
+ @param name The name of the logger.
+ */
+ Logger(log4cxx::helpers::Pool& pool, const LogString& name);
+
+ public:
+ ~Logger();
+
+
+ void addRef() const;
+ void releaseRef() const;
+
+ /**
+ Add <code>newAppender</code> to the list of appenders of this
+ Logger instance.
+
+ <p>If <code>newAppender</code> is already in the list of
+ appenders, then it won't be added again.
+ */
+ virtual void addAppender(const AppenderPtr& newAppender);
+
+
+ /**
+ Call the appenders in the hierrachy starting at
+ <code>this</code>. If no appenders could be found, emit a
+ warning.
+
+ <p>This method calls all the appenders inherited from the
+ hierarchy circumventing any evaluation of whether to log or not
+ to log the particular log request.
+
+ @param event the event to log.
+ @param p memory pool for any allocations needed to process request.
+ */
+ void callAppenders(const log4cxx::spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p) const;
+
+ /**
+ Close all attached appenders implementing the AppenderAttachable
+ interface.
+ */
+ void closeNestedAppenders();
+
+ /**
+ Log a message string with the DEBUG level.
+
+ <p>This method first checks if this logger is <code>DEBUG</code>
+ enabled by comparing the level of this logger with the
+ DEBUG level. If this logger is
+ <code>DEBUG</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void debug(const std::string& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the DEBUG level.
+
+ <p>This method first checks if this logger is <code>DEBUG</code>
+ enabled by comparing the level of this logger with the
+ DEBUG level. If this logger is
+ <code>DEBUG</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void debug(const std::string& msg) const;
+#if LOG4CXX_WCHAR_T_API
+ /**
+ Log a message string with the DEBUG level.
+
+ <p>This method first checks if this logger is <code>DEBUG</code>
+ enabled by comparing the level of this logger with the
+ DEBUG level. If this logger is
+ <code>DEBUG</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void debug(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the DEBUG level.
+
+ <p>This method first checks if this logger is <code>DEBUG</code>
+ enabled by comparing the level of this logger with the
+ DEBUG level. If this logger is
+ <code>DEBUG</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void debug(const std::wstring& msg) const;
+#endif
+#if LOG4CXX_UNICHAR_API
+ /**
+ Log a message string with the DEBUG level.
+
+ <p>This method first checks if this logger is <code>DEBUG</code>
+ enabled by comparing the level of this logger with the
+ DEBUG level. If this logger is
+ <code>DEBUG</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void debug(const std::basic_string<UniChar>& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the DEBUG level.
+
+ <p>This method first checks if this logger is <code>DEBUG</code>
+ enabled by comparing the level of this logger with the
+ DEBUG level. If this logger is
+ <code>DEBUG</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void debug(const std::basic_string<UniChar>& msg) const;
+#endif
+#if LOG4CXX_CFSTRING_API
+ /**
+ Log a message string with the DEBUG level.
+
+ <p>This method first checks if this logger is <code>DEBUG</code>
+ enabled by comparing the level of this logger with the
+ DEBUG level. If this logger is
+ <code>DEBUG</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void debug(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the DEBUG level.
+
+ <p>This method first checks if this logger is <code>DEBUG</code>
+ enabled by comparing the level of this logger with the
+ DEBUG level. If this logger is
+ <code>DEBUG</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void debug(const CFStringRef& msg) const;
+#endif
+
+ /**
+ Log a message string with the ERROR level.
+
+ <p>This method first checks if this logger is <code>ERROR</code>
+ enabled by comparing the level of this logger with the
+ ERROR level. If this logger is
+ <code>ERROR</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void error(const std::string& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the ERROR level.
+
+ <p>This method first checks if this logger is <code>ERROR</code>
+ enabled by comparing the level of this logger with the
+ ERROR level. If this logger is
+ <code>ERROR</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void error(const std::string& msg) const;
+#if LOG4CXX_WCHAR_T_API
+ /**
+ Log a message string with the ERROR level.
+
+ <p>This method first checks if this logger is <code>ERROR</code>
+ enabled by comparing the level of this logger with the
+ ERROR level. If this logger is
+ <code>ERROR</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void error(const std::wstring& msg) const;
+ /**
+ Log a message string with the ERROR level.
+
+ <p>This method first checks if this logger is <code>ERROR</code>
+ enabled by comparing the level of this logger with the
+ ERROR level. If this logger is
+ <code>ERROR</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void error(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const;
+#endif
+#if LOG4CXX_UNICHAR_API
+ /**
+ Log a message string with the ERROR level.
+
+ <p>This method first checks if this logger is <code>ERROR</code>
+ enabled by comparing the level of this logger with the
+ ERROR level. If this logger is
+ <code>ERROR</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void error(const std::basic_string<UniChar>& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the ERROR level.
+
+ <p>This method first checks if this logger is <code>ERROR</code>
+ enabled by comparing the level of this logger with the
+ ERROR level. If this logger is
+ <code>ERROR</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void error(const std::basic_string<UniChar>& msg) const;
+#endif
+#if LOG4CXX_CFSTRING_API
+ /**
+ Log a message string with the ERROR level.
+
+ <p>This method first checks if this logger is <code>ERROR</code>
+ enabled by comparing the level of this logger with the
+ ERROR level. If this logger is
+ <code>ERROR</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void error(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the ERROR level.
+
+ <p>This method first checks if this logger is <code>ERROR</code>
+ enabled by comparing the level of this logger with the
+ ERROR level. If this logger is
+ <code>ERROR</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void error(const CFStringRef& msg) const;
+#endif
+
+ /**
+ Log a message string with the FATAL level.
+
+ <p>This method first checks if this logger is <code>FATAL</code>
+ enabled by comparing the level of this logger with the
+ FATAL level. If this logger is
+ <code>FATAL</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void fatal(const std::string& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the ERROR level.
+
+ <p>This method first checks if this logger is <code>ERROR</code>
+ enabled by comparing the level of this logger with the
+ ERROR level. If this logger is
+ <code>ERROR</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void fatal(const std::string& msg) const;
+#if LOG4CXX_WCHAR_T_API
+ /**
+ Log a message string with the ERROR level.
+
+ <p>This method first checks if this logger is <code>ERROR</code>
+ enabled by comparing the level of this logger with the
+ ERROR level. If this logger is
+ <code>ERROR</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void fatal(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the ERROR level.
+
+ <p>This method first checks if this logger is <code>ERROR</code>
+ enabled by comparing the level of this logger with the
+ ERROR level. If this logger is
+ <code>ERROR</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void fatal(const std::wstring& msg) const;
+#endif
+#if LOG4CXX_UNICHAR_API
+ /**
+ Log a message string with the ERROR level.
+
+ <p>This method first checks if this logger is <code>ERROR</code>
+ enabled by comparing the level of this logger with the
+ ERROR level. If this logger is
+ <code>ERROR</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void fatal(const std::basic_string<UniChar>& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the ERROR level.
+
+ <p>This method first checks if this logger is <code>ERROR</code>
+ enabled by comparing the level of this logger with the
+ ERROR level. If this logger is
+ <code>ERROR</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void fatal(const std::basic_string<UniChar>& msg) const;
+#endif
+#if LOG4CXX_CFSTRING_API
+ /**
+ Log a message string with the ERROR level.
+
+ <p>This method first checks if this logger is <code>ERROR</code>
+ enabled by comparing the level of this logger with the
+ ERROR level. If this logger is
+ <code>ERROR</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void fatal(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the ERROR level.
+
+ <p>This method first checks if this logger is <code>ERROR</code>
+ enabled by comparing the level of this logger with the
+ ERROR level. If this logger is
+ <code>ERROR</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void fatal(const CFStringRef& msg) const;
+#endif
+
+ /**
+ This method creates a new logging event and logs the event
+ without further checks.
+ @param level the level to log.
+ @param message message.
+ @param location location of source of logging request.
+ */
+ void forcedLog(const LevelPtr& level, const std::string& message,
+ const log4cxx::spi::LocationInfo& location) const;
+ /**
+ This method creates a new logging event and logs the event
+ without further checks.
+ @param level the level to log.
+ @param message message.
+ @param timeStamp event time stamp.
+ @param location location of source of logging request.
+ @param threadName event thread name.
+ */
+ void forcedLog(const LevelPtr& level, const std::string& message,
+ log4cxx_time_t timeStamp,
+ const log4cxx::spi::LocationInfo& location,
+ const LogString& threadName) const;
+ /**
+ This method creates a new logging event and logs the event
+ without further checks.
+ @param level the level to log.
+ @param message message.
+ */
+ void forcedLog(const LevelPtr& level, const std::string& message) const;
+
+#if LOG4CXX_WCHAR_T_API
+ /**
+ This method creates a new logging event and logs the event
+ without further checks.
+ @param level the level to log.
+ @param message message.
+ @param location location of source of logging request.
+ */
+ void forcedLog(const LevelPtr& level, const std::wstring& message,
+ const log4cxx::spi::LocationInfo& location) const;
+ /**
+ This method creates a new logging event and logs the event
+ without further checks.
+ @param level the level to log.
+ @param message message.
+ */
+ void forcedLog(const LevelPtr& level, const std::wstring& message) const;
+#endif
+#if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API
+ /**
+ This method creates a new logging event and logs the event
+ without further checks.
+ @param level the level to log.
+ @param message message.
+ @param location location of source of logging request.
+ */
+ void forcedLog(const LevelPtr& level, const std::basic_string<UniChar>& message,
+ const log4cxx::spi::LocationInfo& location) const;
+ /**
+ This method creates a new logging event and logs the event
+ without further checks.
+ @param level the level to log.
+ @param message message.
+ */
+ void forcedLog(const LevelPtr& level, const std::basic_string<UniChar>& message) const;
+#endif
+#if LOG4CXX_CFSTRING_API
+ /**
+ This method creates a new logging event and logs the event
+ without further checks.
+ @param level the level to log.
+ @param message message.
+ @param location location of source of logging request.
+ */
+ void forcedLog(const LevelPtr& level, const CFStringRef& message,
+ const log4cxx::spi::LocationInfo& location) const;
+ /**
+ This method creates a new logging event and logs the event
+ without further checks.
+ @param level the level to log.
+ @param message message.
+ */
+ void forcedLog(const LevelPtr& level, const CFStringRef& message) const;
+#endif
+ /**
+ This method creates a new logging event and logs the event
+ without further checks.
+ @param level the level to log.
+ @param message the message string to log.
+ @param location location of the logging statement.
+ */
+ void forcedLogLS(const LevelPtr& level, const LogString& message,
+ const log4cxx::spi::LocationInfo& location) const;
+
+ /**
+ Get the additivity flag for this Logger instance.
+ */
+ bool getAdditivity() const;
+
+ /**
+ Get the appenders contained in this logger as an AppenderList.
+ If no appenders can be found, then an empty AppenderList
+ is returned.
+ @return AppenderList An collection of the appenders in this logger.*/
+ AppenderList getAllAppenders() const;
+
+ /**
+ Look for the appender named as <code>name</code>.
+ <p>Return the appender with that name if in the list. Return
+ <code>NULL</code> otherwise. */
+ AppenderPtr getAppender(const LogString& name) const;
+
+ /**
+ Starting from this logger, search the logger hierarchy for a
+ non-null level and return it.
+
+ <p>The Logger class is designed so that this method executes as
+ quickly as possible.
+
+ @throws RuntimeException if all levels are null in the hierarchy
+ */
+ virtual const LevelPtr& getEffectiveLevel() const;
+
+ /**
+ Return the the LoggerRepository where this
+ <code>Logger</code> is attached.
+ */
+ log4cxx::spi::LoggerRepositoryPtr getLoggerRepository() const;
+
+
+ /**
+ * Get the logger name.
+ * @return logger name as LogString.
+ */
+ const LogString getName() const { return name; }
+ /**
+ * Get logger name in current encoding.
+ * @param name buffer to which name is appended.
+ */
+ void getName(std::string& name) const;
+#if LOG4CXX_WCHAR_T_API
+ /**
+ * Get logger name.
+ * @param name buffer to which name is appended.
+ */
+ void getName(std::wstring& name) const;
+#endif
+#if LOG4CXX_UNICHAR_API
+ /**
+ * Get logger name.
+ * @param name buffer to which name is appended.
+ */
+ void getName(std::basic_string<UniChar>& name) const;
+#endif
+#if LOG4CXX_CFSTRING_API
+ /**
+ * Get logger name.
+ * @param name buffer to which name is appended.
+ */
+ void getName(CFStringRef& name) const;
+#endif
+
+ /**
+ Returns the parent of this logger. Note that the parent of a
+ given logger may change during the lifetime of the logger.
+
+ <p>The root logger will return <code>0</code>.
+ */
+ LoggerPtr getParent() const;
+
+
+ /**
+ Returns the assigned Level, if any, for this Logger.
+
+ @return Level - the assigned Level, can be null.
+ */
+ LevelPtr getLevel() const;
+
+ /**
+ * Retrieve a logger by name in current encoding.
+ * @param name logger name.
+ */
+ static LoggerPtr getLogger(const std::string& name);
+ /**
+ * Retrieve a logger by name in current encoding.
+ * @param name logger name.
+ */
+ static LoggerPtr getLogger(const char* const name);
+#if LOG4CXX_WCHAR_T_API
+ /**
+ * Retrieve a logger by name.
+ * @param name logger name.
+ */
+ static LoggerPtr getLogger(const std::wstring& name);
+ /**
+ * Retrieve a logger by name.
+ * @param name logger name.
+ */
+ static LoggerPtr getLogger(const wchar_t* const name);
+#endif
+#if LOG4CXX_UNICHAR_API
+ /**
+ * Retrieve a logger by name.
+ * @param name logger name.
+ */
+ static LoggerPtr getLogger(const std::basic_string<UniChar>& name);
+#endif
+#if LOG4CXX_CFSTRING_API
+ /**
+ * Retrieve a logger by name.
+ * @param name logger name.
+ */
+ static LoggerPtr getLogger(const CFStringRef& name);
+#endif
+ /**
+ * Retrieve a logger by name in Unicode.
+ * @param name logger name.
+ */
+ static LoggerPtr getLoggerLS(const LogString& name);
+
+ /**
+ Retrieve the root logger.
+ */
+ static LoggerPtr getRootLogger();
+
+ /**
+ Like #getLogger except that the type of logger
+ instantiated depends on the type returned by the
+ LoggerFactory#makeNewLoggerInstance method of the
+ <code>factory</code> parameter.
+
+ <p>This method is intended to be used by sub-classes.
+
+ @param name The name of the logger to retrieve.
+
+ @param factory A LoggerFactory implementation that will
+ actually create a new Instance.
+ */
+ static LoggerPtr getLoggerLS(const LogString& name,
+ const log4cxx::spi::LoggerFactoryPtr& factory);
+ /**
+ Like #getLogger except that the type of logger
+ instantiated depends on the type returned by the
+ LoggerFactory#makeNewLoggerInstance method of the
+ <code>factory</code> parameter.
+
+ <p>This method is intended to be used by sub-classes.
+
+ @param name The name of the logger to retrieve.
+
+ @param factory A LoggerFactory implementation that will
+ actually create a new Instance.
+ */
+ static LoggerPtr getLogger(const std::string& name,
+ const log4cxx::spi::LoggerFactoryPtr& factory);
+#if LOG4CXX_WCHAR_T_API
+ /**
+ Like #getLogger except that the type of logger
+ instantiated depends on the type returned by the
+ LoggerFactory#makeNewLoggerInstance method of the
+ <code>factory</code> parameter.
+
+ <p>This method is intended to be used by sub-classes.
+
+ @param name The name of the logger to retrieve.
+
+ @param factory A LoggerFactory implementation that will
+ actually create a new Instance.
+ */
+ static LoggerPtr getLogger(const std::wstring& name,
+ const log4cxx::spi::LoggerFactoryPtr& factory);
+#endif
+#if LOG4CXX_UNICHAR_API
+ /**
+ Like #getLogger except that the type of logger
+ instantiated depends on the type returned by the
+ LoggerFactory#makeNewLoggerInstance method of the
+ <code>factory</code> parameter.
+
+ <p>This method is intended to be used by sub-classes.
+
+ @param name The name of the logger to retrieve.
+
+ @param factory A LoggerFactory implementation that will
+ actually create a new Instance.
+ */
+ static LoggerPtr getLogger(const std::basic_string<UniChar>& name,
+ const log4cxx::spi::LoggerFactoryPtr& factory);
+#endif
+#if LOG4CXX_CFSTRING_API
+ /**
+ Like #getLogger except that the type of logger
+ instantiated depends on the type returned by the
+ LoggerFactory#makeNewLoggerInstance method of the
+ <code>factory</code> parameter.
+
+ <p>This method is intended to be used by sub-classes.
+
+ @param name The name of the logger to retrieve.
+
+ @param factory A LoggerFactory implementation that will
+ actually create a new Instance.
+ */
+ static LoggerPtr getLogger(const CFStringRef& name,
+ const log4cxx::spi::LoggerFactoryPtr& factory);
+#endif
+
+ /**
+ Return the <em>inherited</em> ResourceBundle for this logger.
+
+
+ This method walks the hierarchy to find the appropriate resource bundle.
+ It will return the resource bundle attached to the closest ancestor of
+ this logger, much like the way priorities are searched. In case there
+ is no bundle in the hierarchy then <code>NULL</code> is returned.
+ */
+ helpers::ResourceBundlePtr getResourceBundle() const;
+
+ protected:
+ /**
+ Returns the string resource coresponding to <code>key</code> in this
+ logger's inherited resource bundle.
+
+ If the resource cannot be found, then an {@link #error error} message
+ will be logged complaining about the missing resource.
+
+ @see #getResourceBundle.
+ */
+ LogString getResourceBundleString(const LogString& key) const;
+
+ public:
+ /**
+ Log a message string with the INFO level.
+
+ <p>This method first checks if this logger is <code>INFO</code>
+ enabled by comparing the level of this logger with the
+ INFO level. If this logger is
+ <code>INFO</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void info(const std::string& msg, const log4cxx::spi::LocationInfo& location) const;
+ void info(const std::string& msg) const;
+#if LOG4CXX_WCHAR_T_API
+ /**
+ Log a message string with the INFO level.
+
+ <p>This method first checks if this logger is <code>INFO</code>
+ enabled by comparing the level of this logger with the
+ INFO level. If this logger is
+ <code>INFO</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void info(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the INFO level.
+
+ <p>This method first checks if this logger is <code>INFO</code>
+ enabled by comparing the level of this logger with the
+ INFO level. If this logger is
+ <code>INFO</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void info(const std::wstring& msg) const;
+#endif
+#if LOG4CXX_UNICHAR_API
+ /**
+ Log a message string with the INFO level.
+
+ <p>This method first checks if this logger is <code>INFO</code>
+ enabled by comparing the level of this logger with the
+ INFO level. If this logger is
+ <code>INFO</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void info(const std::basic_string<UniChar>& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the INFO level.
+
+ <p>This method first checks if this logger is <code>INFO</code>
+ enabled by comparing the level of this logger with the
+ INFO level. If this logger is
+ <code>INFO</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void info(const std::basic_string<UniChar>& msg) const;
+#endif
+#if LOG4CXX_CFSTRING_API
+ /**
+ Log a message string with the INFO level.
+
+ <p>This method first checks if this logger is <code>INFO</code>
+ enabled by comparing the level of this logger with the
+ INFO level. If this logger is
+ <code>INFO</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void info(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the INFO level.
+
+ <p>This method first checks if this logger is <code>INFO</code>
+ enabled by comparing the level of this logger with the
+ INFO level. If this logger is
+ <code>INFO</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void info(const CFStringRef& msg) const;
+#endif
+
+ /**
+ Is the appender passed as parameter attached to this logger?
+ */
+ bool isAttached(const AppenderPtr& appender) const;
+
+ /**
+ * Check whether this logger is enabled for the <code>DEBUG</code>
+ * Level.
+ *
+ * <p> This function is intended to lessen the computational cost of
+ * disabled log debug statements.
+ *
+ * <p> For some <code>logger</code> Logger object, when you write,
+ * <pre>
+ * logger->debug("debug message");
+ * </pre>
+ *
+ * <p>You incur the cost constructing the message, concatenation in
+ * this case, regardless of whether the message is logged or not.
+ *
+ * <p>If you are worried about speed, then you should write
+ * <pre>
+ * if(logger->isDebugEnabled()) {
+ * logger->debug("debug message");
+ * }
+ * </pre>
+ *
+ * <p>This way you will not incur the cost of parameter
+ * construction if debugging is disabled for <code>logger</code>. On
+ * the other hand, if the <code>logger</code> is debug enabled, you
+ * will incur the cost of evaluating whether the logger is debug
+ * enabled twice. Once in <code>isDebugEnabled</code> and once in
+ * the <code>debug</code>. This is an insignificant overhead
+ * since evaluating a logger takes about 1%% of the time it
+ * takes to actually log.
+ *
+ * @return bool - <code>true</code> if this logger is debug
+ * enabled, <code>false</code> otherwise.
+ * */
+ bool isDebugEnabled() const;
+
+ /**
+ Check whether this logger is enabled for a given
+ Level passed as parameter.
+
+ See also #isDebugEnabled.
+
+ @return bool True if this logger is enabled for <code>level</code>.
+ */
+ bool isEnabledFor(const LevelPtr& level) const;
+
+
+ /**
+ Check whether this logger is enabled for the info Level.
+ See also #isDebugEnabled.
+
+ @return bool - <code>true</code> if this logger is enabled
+ for level info, <code>false</code> otherwise.
+ */
+ bool isInfoEnabled() const;
+
+ /**
+ Check whether this logger is enabled for the warn Level.
+ See also #isDebugEnabled.
+
+ @return bool - <code>true</code> if this logger is enabled
+ for level warn, <code>false</code> otherwise.
+ */
+ bool isWarnEnabled() const;
+
+ /**
+ Check whether this logger is enabled for the error Level.
+ See also #isDebugEnabled.
+
+ @return bool - <code>true</code> if this logger is enabled
+ for level error, <code>false</code> otherwise.
+ */
+ bool isErrorEnabled() const;
+
+ /**
+ Check whether this logger is enabled for the fatal Level.
+ See also #isDebugEnabled.
+
+ @return bool - <code>true</code> if this logger is enabled
+ for level fatal, <code>false</code> otherwise.
+ */
+ bool isFatalEnabled() const;
+
+ /**
+ Check whether this logger is enabled for the trace level.
+ See also #isDebugEnabled.
+
+ @return bool - <code>true</code> if this logger is enabled
+ for level trace, <code>false</code> otherwise.
+ */
+ bool isTraceEnabled() const;
+
+ /**
+ Log a localized and parameterized message.
+
+ First, the user supplied
+ <code>key</code> is searched in the resource bundle. Next, the resulting
+ pattern is formatted using helpers::StringHelper::format method with the user
+ supplied string array <code>params</code>.
+
+ @param level The level of the logging request.
+ @param key The key to be searched in the ResourceBundle.
+ @param locationInfo The location info of the logging request.
+ @param values The values for the placeholders <code>{0}</code>,
+ <code>{1}</code> etc. within the pattern.
+
+ @see #setResourceBundle
+ */
+ void l7dlog(const LevelPtr& level, const LogString& key,
+ const log4cxx::spi::LocationInfo& locationInfo,
+ const std::vector<LogString>& values) const;
+ /**
+ Log a localized and parameterized message.
+
+ First, the user supplied
+ <code>key</code> is searched in the resource bundle. Next, the resulting
+ pattern is formatted using helpers::StringHelper::format method with the user
+ supplied string array <code>params</code>.
+
+ @param level The level of the logging request.
+ @param key The key to be searched in the ResourceBundle.
+ @param locationInfo The location info of the logging request.
+
+ @see #setResourceBundle
+ */
+ void l7dlog(const LevelPtr& level, const std::string& key,
+ const log4cxx::spi::LocationInfo& locationInfo) const;
+ /**
+ Log a localized and parameterized message.
+
+ First, the user supplied
+ <code>key</code> is searched in the resource bundle. Next, the resulting
+ pattern is formatted using helpers::StringHelper::format method with the user
+ supplied string array <code>params</code>.
+
+ @param level The level of the logging request.
+ @param key The key to be searched in the ResourceBundle.
+ @param locationInfo The location info of the logging request.
+ @param val1 The first value for the placeholders within the pattern.
+
+ @see #setResourceBundle
+ */
+ void l7dlog(const LevelPtr& level, const std::string& key,
+ const log4cxx::spi::LocationInfo& locationInfo,
+ const std::string& val1) const;
+ /**
+ Log a localized and parameterized message.
+
+ First, the user supplied
+ <code>key</code> is searched in the resource bundle. Next, the resulting
+ pattern is formatted using helpers::StringHelper::format method with the user
+ supplied string array <code>params</code>.
+
+ @param level The level of the logging request.
+ @param key The key to be searched in the ResourceBundle.
+ @param locationInfo The location info of the logging request.
+ @param val1 The first value for the placeholders within the pattern.
+ @param val2 The second value for the placeholders within the pattern.
+
+ @see #setResourceBundle
+ */
+ void l7dlog(const LevelPtr& level, const std::string& key,
+ const log4cxx::spi::LocationInfo& locationInfo,
+ const std::string& val1, const std::string& val2) const;
+ /**
+ Log a localized and parameterized message.
+
+ First, the user supplied
+ <code>key</code> is searched in the resource bundle. Next, the resulting
+ pattern is formatted using helpers::StringHelper::format method with the user
+ supplied string array <code>params</code>.
+
+ @param level The level of the logging request.
+ @param key The key to be searched in the ResourceBundle.
+ @param locationInfo The location info of the logging request.
+ @param val1 The value for the first placeholder within the pattern.
+ @param val2 The value for the second placeholder within the pattern.
+ @param val3 The value for the third placeholder within the pattern.
+
+ @see #setResourceBundle
+ */
+ void l7dlog(const LevelPtr& level, const std::string& key,
+ const log4cxx::spi::LocationInfo& locationInfo,
+ const std::string& val1, const std::string& val2, const std::string& val3) const;
+
+#if LOG4CXX_WCHAR_T_API
+ /**
+ Log a localized and parameterized message.
+
+ First, the user supplied
+ <code>key</code> is searched in the resource bundle. Next, the resulting
+ pattern is formatted using helpers::StringHelper::format method with the user
+ supplied string array <code>params</code>.
+
+ @param level The level of the logging request.
+ @param key The key to be searched in the ResourceBundle.
+ @param locationInfo The location info of the logging request.
+
+ @see #setResourceBundle
+ */
+ void l7dlog(const LevelPtr& level, const std::wstring& key,
+ const log4cxx::spi::LocationInfo& locationInfo) const;
+ /**
+ Log a localized and parameterized message.
+
+ First, the user supplied
+ <code>key</code> is searched in the resource bundle. Next, the resulting
+ pattern is formatted using helpers::StringHelper::format method with the user
+ supplied string array <code>params</code>.
+
+ @param level The level of the logging request.
+ @param key The key to be searched in the ResourceBundle.
+ @param locationInfo The location info of the logging request.
+ @param val1 The value for the first placeholder within the pattern.
+
+ @see #setResourceBundle
+ */
+ void l7dlog(const LevelPtr& level, const std::wstring& key,
+ const log4cxx::spi::LocationInfo& locationInfo,
+ const std::wstring& val1) const;
+ /**
+ Log a localized and parameterized message.
+
+ First, the user supplied
+ <code>key</code> is searched in the resource bundle. Next, the resulting
+ pattern is formatted using helpers::StringHelper::format method with the user
+ supplied string array <code>params</code>.
+
+ @param level The level of the logging request.
+ @param key The key to be searched in the ResourceBundle.
+ @param locationInfo The location info of the logging request.
+ @param val1 The value for the first placeholder within the pattern.
+ @param val2 The value for the second placeholder within the pattern.
+
+ @see #setResourceBundle
+ */
+ void l7dlog(const LevelPtr& level, const std::wstring& key,
+ const log4cxx::spi::LocationInfo& locationInfo,
+ const std::wstring& val1, const std::wstring& val2) const;
+ /**
+ Log a localized and parameterized message.
+
+ First, the user supplied
+ <code>key</code> is searched in the resource bundle. Next, the resulting
+ pattern is formatted using helpers::StringHelper::format method with the user
+ supplied string array <code>params</code>.
+
+ @param level The level of the logging request.
+ @param key The key to be searched in the ResourceBundle.
+ @param locationInfo The location info of the logging request.
+ @param val1 The value for the first placeholder within the pattern.
+ @param val2 The value for the second placeholder within the pattern.
+ @param val3 The value for the third placeholder within the pattern.
+
+ @see #setResourceBundle
+ */
+ void l7dlog(const LevelPtr& level, const std::wstring& key,
+ const log4cxx::spi::LocationInfo& locationInfo,
+ const std::wstring& val1, const std::wstring& val2, const std::wstring& val3) const;
+#endif
+#if LOG4CXX_UNICHAR_API
+ /**
+ Log a localized and parameterized message.
+
+ First, the user supplied
+ <code>key</code> is searched in the resource bundle. Next, the resulting
+ pattern is formatted using helpers::StringHelper::format method with the user
+ supplied string array <code>params</code>.
+
+ @param level The level of the logging request.
+ @param key The key to be searched in the ResourceBundle.
+ @param locationInfo The location info of the logging request.
+
+ @see #setResourceBundle
+ */
+ void l7dlog(const LevelPtr& level, const std::basic_string<UniChar>& key,
+ const log4cxx::spi::LocationInfo& locationInfo) const;
+ /**
+ Log a localized and parameterized message.
+
+ First, the user supplied
+ <code>key</code> is searched in the resource bundle. Next, the resulting
+ pattern is formatted using helpers::StringHelper::format method with the user
+ supplied string array <code>params</code>.
+
+ @param level The level of the logging request.
+ @param key The key to be searched in the ResourceBundle.
+ @param locationInfo The location info of the logging request.
+ @param val1 The value for the first placeholder within the pattern.
+
+ @see #setResourceBundle
+ */
+ void l7dlog(const LevelPtr& level, const std::basic_string<UniChar>& key,
+ const log4cxx::spi::LocationInfo& locationInfo,
+ const std::basic_string<UniChar>& val1) const;
+ /**
+ Log a localized and parameterized message.
+
+ First, the user supplied
+ <code>key</code> is searched in the resource bundle. Next, the resulting
+ pattern is formatted using helpers::StringHelper::format method with the user
+ supplied string array <code>params</code>.
+
+ @param level The level of the logging request.
+ @param key The key to be searched in the ResourceBundle.
+ @param locationInfo The location info of the logging request.
+ @param val1 The value for the first placeholder within the pattern.
+ @param val2 The value for the second placeholder within the pattern.
+
+ @see #setResourceBundle
+ */
+ void l7dlog(const LevelPtr& level, const std::basic_string<UniChar>& key,
+ const log4cxx::spi::LocationInfo& locationInfo,
+ const std::basic_string<UniChar>& val1, const std::basic_string<UniChar>& val2) const;
+ /**
+ Log a localized and parameterized message.
+
+ First, the user supplied
+ <code>key</code> is searched in the resource bundle. Next, the resulting
+ pattern is formatted using helpers::StringHelper::format method with the user
+ supplied string array <code>params</code>.
+
+ @param level The level of the logging request.
+ @param key The key to be searched in the ResourceBundle.
+ @param locationInfo The location info of the logging request.
+ @param val1 The value for the first placeholder within the pattern.
+ @param val2 The value for the second placeholder within the pattern.
+ @param val3 The value for the third placeholder within the pattern.
+
+ @see #setResourceBundle
+ */
+ void l7dlog(const LevelPtr& level, const std::basic_string<UniChar>& key,
+ const log4cxx::spi::LocationInfo& locationInfo,
+ const std::basic_string<UniChar>& val1, const std::basic_string<UniChar>& val2,
+ const std::basic_string<UniChar>& val3) const;
+#endif
+#if LOG4CXX_CFSTRING_API
+ /**
+ Log a localized and parameterized message.
+
+ First, the user supplied
+ <code>key</code> is searched in the resource bundle. Next, the resulting
+ pattern is formatted using helpers::StringHelper::format method with the user
+ supplied string array <code>params</code>.
+
+ @param level The level of the logging request.
+ @param key The key to be searched in the ResourceBundle.
+ @param locationInfo The location info of the logging request.
+
+ @see #setResourceBundle
+ */
+ void l7dlog(const LevelPtr& level, const CFStringRef& key,
+ const log4cxx::spi::LocationInfo& locationInfo) const;
+ /**
+ Log a localized and parameterized message.
+
+ First, the user supplied
+ <code>key</code> is searched in the resource bundle. Next, the resulting
+ pattern is formatted using helpers::StringHelper::format method with the user
+ supplied string array <code>params</code>.
+
+ @param level The level of the logging request.
+ @param key The key to be searched in the ResourceBundle.
+ @param locationInfo The location info of the logging request.
+ @param val1 The value for the first placeholder within the pattern.
+
+ @see #setResourceBundle
+ */
+ void l7dlog(const LevelPtr& level, const CFStringRef& key,
+ const log4cxx::spi::LocationInfo& locationInfo,
+ const CFStringRef& val1) const;
+ /**
+ Log a localized and parameterized message.
+
+ First, the user supplied
+ <code>key</code> is searched in the resource bundle. Next, the resulting
+ pattern is formatted using helpers::StringHelper::format method with the user
+ supplied string array <code>params</code>.
+
+ @param level The level of the logging request.
+ @param key The key to be searched in the ResourceBundle.
+ @param locationInfo The location info of the logging request.
+ @param val1 The value for the first placeholder within the pattern.
+ @param val2 The value for the second placeholder within the pattern.
+
+ @see #setResourceBundle
+ */
+ void l7dlog(const LevelPtr& level, const CFStringRef& key,
+ const log4cxx::spi::LocationInfo& locationInfo,
+ const CFStringRef& val1, const CFStringRef& val2) const;
+ /**
+ Log a localized and parameterized message.
+
+ First, the user supplied
+ <code>key</code> is searched in the resource bundle. Next, the resulting
+ pattern is formatted using helpers::StringHelper::format method with the user
+ supplied string array <code>params</code>.
+
+ @param level The level of the logging request.
+ @param key The key to be searched in the ResourceBundle.
+ @param locationInfo The location info of the logging request.
+ @param val1 The value for the first placeholder within the pattern.
+ @param val2 The value for the second placeholder within the pattern.
+ @param val3 The value for the third placeholder within the pattern.
+
+ @see #setResourceBundle
+ */
+ void l7dlog(const LevelPtr& level, const CFStringRef& key,
+ const log4cxx::spi::LocationInfo& locationInfo,
+ const CFStringRef& val1, const CFStringRef& val2,
+ const CFStringRef& val3) const;
+#endif
+
+ /**
+ This is the most generic printing method. It is intended to be
+ invoked by <b>wrapper</b> classes.
+
+ @param level The level of the logging request.
+ @param message The message of the logging request.
+ @param location The source file of the logging request, may be null. */
+ void log(const LevelPtr& level, const std::string& message,
+ const log4cxx::spi::LocationInfo& location) const;
+ /**
+ This is the most generic printing method. It is intended to be
+ invoked by <b>wrapper</b> classes.
+
+ @param level The level of the logging request.
+ @param message The message of the logging request.
+ */
+ void log(const LevelPtr& level, const std::string& message) const;
+#if LOG4CXX_WCHAR_T_API
+ /**
+ This is the most generic printing method. It is intended to be
+ invoked by <b>wrapper</b> classes.
+
+ @param level The level of the logging request.
+ @param message The message of the logging request.
+ @param location The source file of the logging request, may be null. */
+ void log(const LevelPtr& level, const std::wstring& message,
+ const log4cxx::spi::LocationInfo& location) const;
+ /**
+ This is the most generic printing method. It is intended to be
+ invoked by <b>wrapper</b> classes.
+
+ @param level The level of the logging request.
+ @param message The message of the logging request.
+ */
+ void log(const LevelPtr& level, const std::wstring& message) const;
+#endif
+#if LOG4CXX_UNICHAR_API
+ /**
+ This is the most generic printing method. It is intended to be
+ invoked by <b>wrapper</b> classes.
+
+ @param level The level of the logging request.
+ @param message The message of the logging request.
+ @param location The source file of the logging request, may be null. */
+ void log(const LevelPtr& level, const std::basic_string<UniChar>& message,
+ const log4cxx::spi::LocationInfo& location) const;
+ /**
+ This is the most generic printing method. It is intended to be
+ invoked by <b>wrapper</b> classes.
+
+ @param level The level of the logging request.
+ @param message The message of the logging request.
+ */
+ void log(const LevelPtr& level, const std::basic_string<UniChar>& message) const;
+#endif
+#if LOG4CXX_CFSTRING_API
+ /**
+ This is the most generic printing method. It is intended to be
+ invoked by <b>wrapper</b> classes.
+
+ @param level The level of the logging request.
+ @param message The message of the logging request.
+ @param location The source file of the logging request, may be null. */
+ void log(const LevelPtr& level, const CFStringRef& message,
+ const log4cxx::spi::LocationInfo& location) const;
+ /**
+ This is the most generic printing method. It is intended to be
+ invoked by <b>wrapper</b> classes.
+
+ @param level The level of the logging request.
+ @param message The message of the logging request.
+ */
+ void log(const LevelPtr& level, const CFStringRef& message) const;
+#endif
+ /**
+ This is the most generic printing method. It is intended to be
+ invoked by <b>wrapper</b> classes.
+
+ @param level The level of the logging request.
+ @param message The message of the logging request.
+ @param location The source file of the logging request, may be null. */
+ void logLS(const LevelPtr& level, const LogString& message,
+ const log4cxx::spi::LocationInfo& location) const;
+
+
+
+ /**
+ Remove all previously added appenders from this logger
+ instance.
+ <p>This is useful when re-reading configuration information.
+ */
+ void removeAllAppenders();
+
+ /**
+ Remove the appender passed as parameter form the list of appenders.
+ */
+ void removeAppender(const AppenderPtr& appender);
+
+ /**
+ Remove the appender with the name passed as parameter form the
+ list of appenders.
+ */
+ void removeAppender(const LogString& name);
+
+ /**
+ Set the additivity flag for this Logger instance.
+ */
+ void setAdditivity(bool additive);
+
+ protected:
+ friend class Hierarchy;
+ /**
+ Only the Hierarchy class can set the hierarchy of a logger.*/
+ void setHierarchy(spi::LoggerRepository * repository);
+
+ public:
+ /**
+ Set the level of this Logger.
+
+ <p>As in <pre> &nbsp;&nbsp;&nbsp;logger->setLevel(Level::getDebug()); </pre>
+
+ <p>Null values are admitted. */
+ virtual void setLevel(const LevelPtr& level);
+
+ /**
+ Set the resource bundle to be used with localized logging methods.
+ */
+ inline void setResourceBundle(const helpers::ResourceBundlePtr& bundle)
+ { resourceBundle = bundle; }
+
+#if LOG4CXX_WCHAR_T_API
+ /**
+ Log a message string with the WARN level.
+
+ <p>This method first checks if this logger is <code>WARN</code>
+ enabled by comparing the level of this logger with the
+ WARN level. If this logger is
+ <code>WARN</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void warn(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the WARN level.
+
+ <p>This method first checks if this logger is <code>WARN</code>
+ enabled by comparing the level of this logger with the
+ WARN level. If this logger is
+ <code>WARN</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void warn(const std::wstring& msg) const;
+#endif
+#if LOG4CXX_UNICHAR_API
+ /**
+ Log a message string with the WARN level.
+
+ <p>This method first checks if this logger is <code>WARN</code>
+ enabled by comparing the level of this logger with the
+ WARN level. If this logger is
+ <code>WARN</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void warn(const std::basic_string<UniChar>& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the WARN level.
+
+ <p>This method first checks if this logger is <code>WARN</code>
+ enabled by comparing the level of this logger with the
+ WARN level. If this logger is
+ <code>WARN</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void warn(const std::basic_string<UniChar>& msg) const;
+#endif
+#if LOG4CXX_CFSTRING_API
+ /**
+ Log a message string with the WARN level.
+
+ <p>This method first checks if this logger is <code>WARN</code>
+ enabled by comparing the level of this logger with the
+ WARN level. If this logger is
+ <code>WARN</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void warn(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the WARN level.
+
+ <p>This method first checks if this logger is <code>WARN</code>
+ enabled by comparing the level of this logger with the
+ WARN level. If this logger is
+ <code>WARN</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void warn(const CFStringRef& msg) const;
+#endif
+ /**
+ Log a message string with the WARN level.
+
+ <p>This method first checks if this logger is <code>WARN</code>
+ enabled by comparing the level of this logger with the
+ WARN level. If this logger is
+ <code>WARN</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void warn(const std::string& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the WARN level.
+
+ <p>This method first checks if this logger is <code>WARN</code>
+ enabled by comparing the level of this logger with the
+ WARN level. If this logger is
+ <code>WARN</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void warn(const std::string& msg) const;
+
+#if LOG4CXX_WCHAR_T_API
+ /**
+ Log a message string with the TRACE level.
+
+ <p>This method first checks if this logger is <code>TRACE</code>
+ enabled by comparing the level of this logger with the
+ TRACE level. If this logger is
+ <code>TRACE</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void trace(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the TRACE level.
+
+ <p>This method first checks if this logger is <code>TRACE</code>
+ enabled by comparing the level of this logger with the
+ TRACE level. If this logger is
+ <code>TRACE</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void trace(const std::wstring& msg) const;
+#endif
+#if LOG4CXX_UNICHAR_API
+ /**
+ Log a message string with the TRACE level.
+
+ <p>This method first checks if this logger is <code>TRACE</code>
+ enabled by comparing the level of this logger with the
+ TRACE level. If this logger is
+ <code>TRACE</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void trace(const std::basic_string<UniChar>& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the TRACE level.
+
+ <p>This method first checks if this logger is <code>TRACE</code>
+ enabled by comparing the level of this logger with the
+ TRACE level. If this logger is
+ <code>TRACE</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void trace(const std::basic_string<UniChar>& msg) const;
+#endif
+#if LOG4CXX_CFSTRING_API
+ /**
+ Log a message string with the TRACE level.
+
+ <p>This method first checks if this logger is <code>TRACE</code>
+ enabled by comparing the level of this logger with the
+ TRACE level. If this logger is
+ <code>TRACE</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void trace(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the TRACE level.
+
+ <p>This method first checks if this logger is <code>TRACE</code>
+ enabled by comparing the level of this logger with the
+ TRACE level. If this logger is
+ <code>TRACE</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void trace(const CFStringRef& msg) const;
+#endif
+ /**
+ Log a message string with the TRACE level.
+
+ <p>This method first checks if this logger is <code>TRACE</code>
+ enabled by comparing the level of this logger with the
+ TRACE level. If this logger is
+ <code>TRACE</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ @param location location of source of logging request.
+ */
+ void trace(const std::string& msg, const log4cxx::spi::LocationInfo& location) const;
+ /**
+ Log a message string with the TRACE level.
+
+ <p>This method first checks if this logger is <code>TRACE</code>
+ enabled by comparing the level of this logger with the
+ TRACE level. If this logger is
+ <code>TRACE</code> enabled, it proceeds to call all the
+ registered appenders in this logger and also higher in the
+ hierarchy depending on the value of the additivity flag.
+
+ @param msg the message string to log.
+ */
+ void trace(const std::string& msg) const;
+
+ inline const log4cxx::helpers::Mutex& getMutex() const { return mutex; }
+
+ private:
+ //
+ // prevent copy and assignment
+ Logger(const Logger&);
+ Logger& operator=(const Logger&);
+ log4cxx::helpers::Mutex mutex;
+ friend class log4cxx::helpers::synchronized;
+ };
+ LOG4CXX_LIST_DEF(LoggerList, LoggerPtr);
+
+}
+
+/** @addtogroup LoggingMacros Logging macros
+@{
+*/
+
+#if !defined(LOG4CXX_UNLIKELY)
+#if __GNUC__ >= 3
+/**
+Provides optimization hint to the compiler
+to optimize for the expression being false.
+@param expr boolean expression.
+@returns value of expression.
+*/
+#define LOG4CXX_UNLIKELY(expr) __builtin_expect(expr, 0)
+#else
+/**
+Provides optimization hint to the compiler
+to optimize for the expression being false.
+@param expr boolean expression.
+@returns value of expression.
+**/
+#define LOG4CXX_UNLIKELY(expr) expr
+#endif
+#endif
+
+
+/**
+Logs a message to a specified logger with a specified level.
+
+@param logger the logger to be used.
+@param level the level to log.
+@param message the message string to log.
+*/
+#define LOG4CXX_LOG(logger, level, message) { \
+ if (logger->isEnabledFor(level)) {\
+ ::log4cxx::helpers::MessageBuffer oss_; \
+ logger->forcedLog(level, oss_.str(oss_ << message), LOG4CXX_LOCATION); } }
+
+/**
+Logs a message to a specified logger with a specified level.
+
+@param logger the logger to be used.
+@param level the level to log.
+@param message the message string to log in the internal encoding.
+*/
+#define LOG4CXX_LOGLS(logger, level, message) { \
+ if (logger->isEnabledFor(level)) {\
+ ::log4cxx::helpers::LogCharMessageBuffer oss_; \
+ logger->forcedLog(level, oss_.str(oss_ << message), LOG4CXX_LOCATION); } }
+
+/**
+Logs a message to a specified logger with the DEBUG level.
+
+@param logger the logger to be used.
+@param message the message string to log.
+*/
+#define LOG4CXX_DEBUG(logger, message) { \
+ if (LOG4CXX_UNLIKELY(logger->isDebugEnabled())) {\
+ ::log4cxx::helpers::MessageBuffer oss_; \
+ logger->forcedLog(::log4cxx::Level::getDebug(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }}
+
+/**
+Logs a message to a specified logger with the TRACE level.
+
+@param logger the logger to be used.
+@param message the message string to log.
+*/
+#define LOG4CXX_TRACE(logger, message) { \
+ if (LOG4CXX_UNLIKELY(logger->isTraceEnabled())) {\
+ ::log4cxx::helpers::MessageBuffer oss_; \
+ logger->forcedLog(::log4cxx::Level::getTrace(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }}
+
+
+/**
+Logs a message to a specified logger with the INFO level.
+
+@param logger the logger to be used.
+@param message the message string to log.
+*/
+#define LOG4CXX_INFO(logger, message) { \
+ if (logger->isInfoEnabled()) {\
+ ::log4cxx::helpers::MessageBuffer oss_; \
+ logger->forcedLog(::log4cxx::Level::getInfo(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }}
+
+/**
+Logs a message to a specified logger with the WARN level.
+
+@param logger the logger to be used.
+@param message the message string to log.
+*/
+#define LOG4CXX_WARN(logger, message) { \
+ if (logger->isWarnEnabled()) {\
+ ::log4cxx::helpers::MessageBuffer oss_; \
+ logger->forcedLog(::log4cxx::Level::getWarn(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }}
+
+/**
+Logs a message to a specified logger with the ERROR level.
+
+@param logger the logger to be used.
+@param message the message string to log.
+*/
+#define LOG4CXX_ERROR(logger, message) { \
+ if (logger->isErrorEnabled()) {\
+ ::log4cxx::helpers::MessageBuffer oss_; \
+ logger->forcedLog(::log4cxx::Level::getError(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }}
+
+/**
+Logs a error if the condition is not true.
+
+@param logger the logger to be used.
+@param condition condition
+@param message the message string to log.
+*/
+#define LOG4CXX_ASSERT(logger, condition, message) { \
+ if (!(condition) && logger->isErrorEnabled()) {\
+ ::log4cxx::helpers::MessageBuffer oss_; \
+ logger->forcedLog(::log4cxx::Level::getError(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }}
+
+
+/**
+Logs a message to a specified logger with the FATAL level.
+
+@param logger the logger to be used.
+@param message the message string to log.
+*/
+#define LOG4CXX_FATAL(logger, message) { \
+ if (logger->isFatalEnabled()) {\
+ ::log4cxx::helpers::MessageBuffer oss_; \
+ logger->forcedLog(::log4cxx::Level::getFatal(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }}
+
+/**
+Logs a localized message with no parameter.
+
+@param logger the logger to be used.
+@param level the level to log.
+@param key the key to be searched in the resourceBundle of the logger.
+*/
+#define LOG4CXX_L7DLOG(logger, level, key) { \
+ if (logger->isEnabledFor(level)) {\
+ logger->l7dlog(level, key, LOG4CXX_LOCATION); }}
+
+/**
+Logs a localized message with one parameter.
+
+@param logger the logger to be used.
+@param level the level to log.
+@param key the key to be searched in the resourceBundle of the logger.
+@param p1 the unique parameter.
+*/
+#define LOG4CXX_L7DLOG1(logger, level, key, p1) { \
+ if (logger->isEnabledFor(level)) {\
+ logger->l7dlog(level, key, LOG4CXX_LOCATION, p1); }}
+
+/**
+Logs a localized message with two parameters.
+
+@param logger the logger to be used.
+@param level the level to log.
+@param key the key to be searched in the resourceBundle of the logger.
+@param p1 the first parameter.
+@param p2 the second parameter.
+*/
+#define LOG4CXX_L7DLOG2(logger, level, key, p1, p2) { \
+ if (logger->isEnabledFor(level)) {\
+ logger->l7dlog(level, key, LOG4CXX_LOCATION, p1, p2); }}
+
+/**
+Logs a localized message with three parameters.
+
+@param logger the logger to be used.
+@param level the level to log.
+@param key the key to be searched in the resourceBundle of the logger.
+@param p1 the first parameter.
+@param p2 the second parameter.
+@param p3 the third parameter.
+*/
+#define LOG4CXX_L7DLOG3(logger, level, key, p1, p2, p3) { \
+ if (logger->isEnabledFor(level)) {\
+ logger->l7dlog(level, key, LOG4CXX_LOCATION, p1, p2, p3); }}
+
+/**@}*/
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+#include <log4cxx/spi/loggerrepository.h>
+
+#endif //_LOG4CXX_LOGGER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logmanager.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logmanager.h
new file mode 100644
index 0000000000..b9ec0b6c4b
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logmanager.h
@@ -0,0 +1,212 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_LOG_MANAGER_H
+#define _LOG4CXX_LOG_MANAGER_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+#include <log4cxx/logstring.h>
+#include <vector>
+#include <log4cxx/spi/repositoryselector.h>
+
+namespace log4cxx
+{
+ class Logger;
+ typedef helpers::ObjectPtrT<Logger> LoggerPtr;
+ typedef std::vector<LoggerPtr> LoggerList;
+
+ namespace spi {
+ class LoggerFactory;
+ typedef helpers::ObjectPtrT<LoggerFactory> LoggerFactoryPtr;
+ }
+
+ /**
+ * Use the <code>LogManager</code> class to retreive Logger
+ * instances or to operate on the current
+ * {@link log4cxx::spi::LoggerRepository LoggerRepository}.
+ * When the <code>LogManager</code> class is loaded
+ * into memory the default initialization procedure is inititated.
+ */
+ class LOG4CXX_EXPORT LogManager
+ {
+ private:
+ static void * guard;
+ static spi::RepositorySelectorPtr& getRepositorySelector();
+
+ public:
+ /**
+ Sets <code>LoggerFactory</code> but only if the correct
+ <em>guard</em> is passed as parameter.
+
+ <p>Initally the guard is null. If the guard is
+ <code>null</code>, then invoking this method sets the logger
+ factory and the guard. Following invocations will throw a {@link
+ helpers::IllegalArgumentException IllegalArgumentException},
+ unless the previously set <code>guard</code> is passed as the second
+ parameter.
+
+ <p>This allows a high-level component to set the {@link
+ spi::RepositorySelector RepositorySelector} used by the
+ <code>LogManager</code>.
+ */
+
+ static void setRepositorySelector(spi::RepositorySelectorPtr selector,
+ void * guard);
+
+ static spi::LoggerRepositoryPtr& getLoggerRepository();
+
+ /**
+ Retrieve the appropriate root logger.
+ */
+ static LoggerPtr getRootLogger();
+
+ /**
+ Retrieve the appropriate Logger instance.
+ * @param name logger name in current encoding.
+ * @return logger.
+ */
+ static LoggerPtr getLogger(const std::string& name);
+ /**
+ Retrieve the appropriate Logger instance.
+ * @param name logger name in current encoding.
+ * @param factory logger factory.
+ * @return logger.
+ */
+ static LoggerPtr getLogger(const std::string& name,
+ const spi::LoggerFactoryPtr& factory);
+ /**
+ * Determines if logger name exists in the hierarchy.
+ * @param name logger name.
+ * @return true if logger exists.
+ */
+ static LoggerPtr exists(const std::string& name);
+#if LOG4CXX_WCHAR_T_API
+ /**
+ Retrieve the appropriate Logger instance.
+ * @param name logger name.
+ * @return logger.
+ */
+ static LoggerPtr getLogger(const std::wstring& name);
+ /**
+ Retrieve the appropriate Logger instance.
+ * @param name logger name.
+ * @param factory logger factory.
+ * @return logger.
+ */
+ static LoggerPtr getLogger(const std::wstring& name,
+ const spi::LoggerFactoryPtr& factory);
+ /**
+ * Determines if logger name exists in the hierarchy.
+ * @param name logger name.
+ * @return true if logger exists.
+ */
+ static LoggerPtr exists(const std::wstring& name);
+#endif
+#if LOG4CXX_UNICHAR_API
+ /**
+ Retrieve the appropriate Logger instance.
+ * @param name logger name.
+ * @return logger.
+ */
+ static LoggerPtr getLogger(const std::basic_string<UniChar>& name);
+ /**
+ Retrieve the appropriate Logger instance.
+ * @param name logger name.
+ * @param factory logger factory.
+ * @return logger.
+ */
+ static LoggerPtr getLogger(const std::basic_string<UniChar>& name,
+ const spi::LoggerFactoryPtr& factory);
+ /**
+ * Determines if logger name exists in the hierarchy.
+ * @param name logger name.
+ * @return true if logger exists.
+ */
+ static LoggerPtr exists(const std::basic_string<UniChar>& name);
+#endif
+#if LOG4CXX_CFSTRING_API
+ /**
+ Retrieve the appropriate Logger instance.
+ * @param name logger name.
+ * @return logger.
+ */
+ static LoggerPtr getLogger(const CFStringRef& name);
+ /**
+ Retrieve the appropriate Logger instance.
+ * @param name logger name.
+ * @param factory logger factory.
+ * @return logger.
+ */
+ static LoggerPtr getLogger(const CFStringRef& name,
+ const spi::LoggerFactoryPtr& factory);
+ /**
+ * Determines if logger name exists in the hierarchy.
+ * @param name logger name.
+ * @return true if logger exists.
+ */
+ static LoggerPtr exists(const CFStringRef& name);
+#endif
+
+
+ /**
+ Retrieve the appropriate Logger instance.
+ * @param name logger name.
+ * @return logger.
+ */
+ static LoggerPtr getLoggerLS(const LogString& name);
+ /**
+ Retrieve the appropriate Logger instance.
+ * @param name logger name.
+ * @param factory logger factory.
+ * @return logger.
+ */
+ static LoggerPtr getLoggerLS(const LogString& name,
+ const spi::LoggerFactoryPtr& factory);
+
+ /**
+ * Determines if logger name exists in the hierarchy.
+ * @param name logger name.
+ * @return true if logger exists.
+ */
+ static LoggerPtr existsLS(const LogString& name);
+
+ static LoggerList getCurrentLoggers();
+
+ /**
+ Safely close and remove all appenders in all loggers including
+ the root logger.
+ */
+ static void shutdown();
+
+ /**
+ Reset all values contained in this current {@link
+ spi::LoggerRepository LoggerRepository} to their default.
+ */
+ static void resetConfiguration();
+ }; // class LogManager
+} // namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+
+#endif //_LOG4CXX_LOG_MANAGER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logstring.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logstring.h
new file mode 100644
index 0000000000..3bbcdf2d2a
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logstring.h
@@ -0,0 +1,90 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_STRING_H
+#define _LOG4CXX_STRING_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <string>
+#include <log4cxx/log4cxx.h>
+
+#if LOG4CXX_LOGCHAR_IS_WCHAR && LOG4CXX_LOGCHAR_IS_UTF8 && LOG4CXX_LOGCHAR_IS_UNICHAR
+#error only one of LOG4CXX_LOGCHAR_IS_WCHAR, LOG4CXX_LOGCHAR_IS_UTF8 or LOG4CXX_LOGCHAR_IS_UNICHAR may be true
+#endif
+
+#if LOG4CXX_CFSTRING_API
+extern "C" {
+typedef const struct __CFString* CFStringRef;
+}
+#endif
+
+
+
+namespace log4cxx {
+
+#if LOG4CXX_LOGCHAR_IS_UNICHAR || LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API
+typedef unsigned short UniChar;
+#endif
+
+#if LOG4CXX_LOGCHAR_IS_WCHAR
+ typedef wchar_t logchar;
+#define LOG4CXX_STR(str) L ## str
+#endif
+
+#if LOG4CXX_LOGCHAR_IS_UTF8
+ typedef char logchar;
+#if LOG4CXX_CHARSET_EBCDIC
+#define LOG4CXX_STR(str) log4cxx::helpers::Transcoder::decode(str)
+#else
+#define LOG4CXX_STR(str) str
+#endif
+#endif
+
+#if LOG4CXX_LOGCHAR_IS_UNICHAR
+ typedef UniChar logchar;
+#define LOG4CXX_STR(str) log4cxx::helpers::Transcoder::decode(str)
+#endif
+
+ typedef std::basic_string<logchar> LogString;
+
+
+}
+
+
+#if !defined(LOG4CXX_EOL)
+#if defined(_WIN32)
+#define LOG4CXX_EOL LOG4CXX_STR("\x0D\x0A")
+#else
+#define LOG4CXX_EOL LOG4CXX_STR("\x0A")
+#endif
+#endif
+
+
+#if LOG4CXX_LOGCHAR_IS_UNICHAR || (LOG4CXX_LOGCHAR_IS_UTF8 || LOG4CXX_CHARSET_EBCDIC)
+#include <log4cxx/helpers/transcoder.h>
+#endif
+
+#if defined(_MSC_VER)
+#pragma warning (pop)
+#endif
+
+#endif //_LOG4CXX_STRING_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/mdc.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/mdc.h
new file mode 100644
index 0000000000..f9cd8753b1
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/mdc.h
@@ -0,0 +1,240 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_MDC_H
+#define _LOG4CXX_MDC_H
+
+#if defined(_MSC_VER)
+#pragma warning (push)
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+#include <log4cxx/log4cxx.h>
+#include <log4cxx/logstring.h>
+#include <map>
+
+namespace log4cxx
+{
+ /**
+ The MDC class is similar to the {@link log4cxx::NDC NDC} class except that it is
+ based on a map instead of a stack. It provides <em>mapped
+ diagnostic contexts</em>. A <em>Mapped Diagnostic Context</em>, or
+ MDC in short, is an instrument for distinguishing interleaved log
+ output from different sources. Log output is typically interleaved
+ when a server handles multiple clients near-simultaneously.
+
+ <p><b><em>The MDC is managed on a per thread basis</em></b>. A
+ child thread automatically inherits a <em>copy</em> of the mapped
+ diagnostic context of its parent.
+
+ */
+ class LOG4CXX_EXPORT MDC
+ {
+ public:
+ /** String to string stl map.
+ */
+ typedef std::map<LogString, LogString> Map;
+
+ /**
+ * Places a key/value pair in the MDC for the current thread
+ * which will be removed during the corresponding destructor. Both
+ * construction and destruction are expected to be on the same thread.
+ * @param key key
+ * @param value value.
+ */
+ MDC(const std::string& key, const std::string& value);
+ ~MDC();
+
+ /**
+ * Put a context value (the <code>o</code> parameter) as identified
+ * with the <code>key</code> parameter into the current thread's
+ * context map.
+ *
+ * <p>If the current thread does not have a context map it is
+ * created as a side effect.
+ * @param key key
+ * @param value value.
+ */
+ static void put(const std::string& key, const std::string& value);
+ /**
+ * Put a context value (the <code>o</code> parameter) as identified
+ * with the <code>key</code> parameter into the current thread's
+ * context map.
+ *
+ * <p>If the current thread does not have a context map it is
+ * created as a side effect.
+ * */
+ static void putLS(const LogString& key, const LogString& value);
+
+ /**
+ * Get the context identified by the <code>key</code> parameter.
+ *
+ * <p>This method has no side effects.
+ * @param key key.
+ * @return value for key, empty if not set.
+ * */
+ static std::string get(const std::string& key);
+ /**
+ * Gets the context identified by the <code>key</code> parameter.
+ * @param key context key.
+ * @param dest destination to which value is appended.
+ * @return true if key has associated value.
+ */
+ static bool get(const LogString& key, LogString& dest);
+
+ /**
+ * Remove the the context identified by the <code>key</code>
+ * parameter.
+ * @param key key.
+ * @return value if key had been set, empty if not.
+ */
+ static std::string remove(const std::string& key);
+#if LOG4CXX_WCHAR_T_API
+ /**
+ * Places a key/value pair in the MDC for the current thread
+ * which will be removed during the corresponding destructor. Both
+ * construction and destruction are expected to be on the same thread.
+ * @param key key
+ * @param value value.
+ */
+ MDC(const std::wstring& key, const std::wstring& value);
+ /**
+ * Put a context value (the <code>o</code> parameter) as identified
+ * with the <code>key</code> parameter into the current thread's
+ * context map.
+ *
+ * <p>If the current thread does not have a context map it is
+ * created as a side effect.
+ * @param key key
+ * @param value value.
+ */
+ static void put(const std::wstring& key, const std::wstring& value);
+ /**
+ * Get the context identified by the <code>key</code> parameter.
+ *
+ * <p>This method has no side effects.
+ * @param key key.
+ * @return value for key, empty if not set.
+ * */
+ static std::wstring get(const std::wstring& key);
+ /**
+ * Remove the the context identified by the <code>key</code>
+ * parameter.
+ * @param key key.
+ * @return value if key had been set, empty if not.
+ */
+ static std::wstring remove(const std::wstring& key);
+#endif
+#if LOG4CXX_UNICHAR_API
+ /**
+ * Places a key/value pair in the MDC for the current thread
+ * which will be removed during the corresponding destructor. Both
+ * construction and destruction are expected to be on the same thread.
+ * @param key key
+ * @param value value.
+ */
+ MDC(const std::basic_string<UniChar>& key, const std::basic_string<UniChar>& value);
+ /**
+ * Put a context value (the <code>o</code> parameter) as identified
+ * with the <code>key</code> parameter into the current thread's
+ * context map.
+ *
+ * <p>If the current thread does not have a context map it is
+ * created as a side effect.
+ * @param key key
+ * @param value value.
+ */
+ static void put(const std::basic_string<UniChar>& key, const std::basic_string<UniChar>& value);
+ /**
+ * Get the context identified by the <code>key</code> parameter.
+ *
+ * <p>This method has no side effects.
+ * @param key key.
+ * @return value for key, empty if not set.
+ * */
+ static std::basic_string<UniChar> get(const std::basic_string<UniChar>& key);
+ /**
+ * Remove the the context identified by the <code>key</code>
+ * parameter.
+ * @param key key.
+ * @return value if key had been set, empty if not.
+ */
+ static std::basic_string<UniChar> remove(const std::basic_string<UniChar>& key);
+#endif
+#if LOG4CXX_CFSTRING_API
+ /**
+ * Places a key/value pair in the MDC for the current thread
+ * which will be removed during the corresponding destructor. Both
+ * construction and destruction are expected to be on the same thread.
+ * @param key key
+ * @param value value.
+ */
+ MDC(const CFStringRef& key, const CFStringRef& value);
+ /**
+ * Put a context value (the <code>o</code> parameter) as identified
+ * with the <code>key</code> parameter into the current thread's
+ * context map.
+ *
+ * <p>If the current thread does not have a context map it is
+ * created as a side effect.
+ * @param key key
+ * @param value value.
+ */
+ static void put(const CFStringRef& key, const CFStringRef& value);
+ /**
+ * Get the context identified by the <code>key</code> parameter.
+ *
+ * <p>This method has no side effects.
+ * @param key key.
+ * @return value for key, empty if not set.
+ * */
+ static CFStringRef get(const CFStringRef& key);
+ /**
+ * Remove the the context identified by the <code>key</code>
+ * parameter.
+ * @param key key.
+ * @return value if key had been set, empty if not.
+ */
+ static CFStringRef remove(const CFStringRef& key);
+#endif
+ /**
+ * Remove the the context identified by the <code>key</code>
+ * parameter.
+ * @param key key.
+ * @param prevValue buffer to which previous value is appended.
+ * @return true if key existed in MDC.
+ */
+ static bool remove(const LogString& key, LogString& prevValue);
+
+ /**
+ * Clear all entries in the MDC.
+ */
+ static void clear();
+
+ private:
+ MDC(const MDC&);
+ MDC& operator=(const MDC&);
+ LogString key;
+ }; // class MDC;
+} // namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning (pop)
+#endif
+
+
+#endif // _LOG4CXX_MDC_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/ndc.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/ndc.h
new file mode 100644
index 0000000000..7cf7128c7b
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/ndc.h
@@ -0,0 +1,353 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_NDC_H
+#define _LOG4CXX_NDC_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+#include <log4cxx/log4cxx.h>
+#include <log4cxx/logstring.h>
+#include <stack>
+
+namespace log4cxx
+{
+ /**
+ the ndc class implements <i>nested diagnostic contexts</i> as
+ defined by neil harrison in the article "patterns for logging
+ diagnostic messages" part of the book "<i>pattern languages of
+ program design 3</i>" edited by martin et al.
+
+ <p>a nested diagnostic context, or ndc in short, is an instrument
+ to distinguish interleaved log output from different sources. log
+ output is typically interleaved when a server handles multiple
+ clients near-simultaneously.
+
+ <p>interleaved log output can still be meaningful if each log entry
+ from different contexts had a distinctive stamp. this is where ndcs
+ come into play.
+
+ <p><em><b>note that ndcs are managed on a per thread
+ basis</b></em>. ndc operations such as #push,
+ #pop, #clear and #getDepth
+ affect the ndc of the <em>current</em> thread only. ndcs of other
+ threads remain unaffected.
+
+ <p>for example, a servlet can build a per client request ndc
+ consisting the clients host name and other information contained in
+ the the request. <em>cookies</em> are another source of distinctive
+ information. to build an ndc one uses the #push
+ operation. simply put,
+
+ <p><ul>
+ <li>contexts can be nested.
+
+ <p><li>when entering a context, call <code>ndc.push</code>. as a
+ side effect, if there is no nested diagnostic context for the
+ current thread, this method will create it.
+
+ <p><li>when leaving a context, call <code>ndc.pop</code>.
+
+ <p><li><b>when exiting a thread make sure to call #remove
+ </b>.
+ </ul>
+
+ <p>there is no penalty for forgetting to match each
+ <code>push</code> operation with a corresponding <code>pop</code>,
+ except the obvious mismatch between the real application context
+ and the context set in the ndc.
+
+ <p>if configured to do so, PatternLayout and
+ TTCCLayout instances automatically retrieve the nested diagnostic
+ context for the current thread without any user intervention.
+ hence, even if a servlet is serving multiple clients
+ simultaneously, the logs emanating from the same code (belonging to
+ the same logger) can still be distinguished because each client
+ request will have a different ndc tag.
+
+ <p>heavy duty systems should call the #remove method when
+ leaving the run method of a thread. this ensures that the memory
+ used by the thread can be freed by the java garbage
+ collector. there is a mechanism to lazily remove references to dead
+ threads. in practice, this means that you can be a little sloppy
+ and sometimes forget to call #remove before exiting a
+ thread.
+
+ */
+ class LOG4CXX_EXPORT NDC
+ {
+ public:
+ /**
+ * Pair of Message and FullMessage.
+ */
+ typedef std::pair<LogString, LogString> DiagnosticContext;
+ typedef std::stack<DiagnosticContext> Stack;
+
+ /**
+ Creates a nested diagnostic context.
+ Since java performs no automatic cleanup of objects when a
+ scope is left, in log4j push() and pop() must be used
+ to manage the NDC. For convenience, log4cxx provides
+ an NDC constructor and destructor which simply call the push() and
+ pop() methods, allowing for automatic cleanup when the current
+ scope ends.
+
+ @param message The new diagnostic context information.
+ @see The #push method.
+ */
+ NDC(const std::string& message);
+
+ /**
+ Removes the topmost element from the NDC stack.
+
+ @see The #pop method.
+ */
+ ~NDC();
+
+ /**
+ Clear any nested diagnostic information if any. This method is
+ useful in cases where the same thread can be potentially used
+ over and over in different unrelated contexts.
+ */
+ static void clear();
+
+ /**
+ Clone the diagnostic context for the current thread.
+ <p>Internally a diagnostic context is represented as a stack. A
+ given thread can supply the stack (i.e. diagnostic context) to a
+ child thread so that the child can inherit the parent thread's
+ diagnostic context.
+ <p>The child thread uses the #inherit method to
+ inherit the parent's diagnostic context.
+ <p>If not passed to #inherit, returned stack should be deleted by caller.
+ @return Stack A clone of the current thread's diagnostic context, will not be null.
+ */
+ static Stack * cloneStack();
+
+ /**
+ Inherit the diagnostic context of another thread.
+ <p>The parent thread can obtain a reference to its diagnostic
+ context using the #cloneStack method. It should
+ communicate this information to its child so that it may inherit
+ the parent's diagnostic context.
+ <p>The parent's diagnostic context is cloned before being
+ inherited. In other words, once inherited, the two diagnostic
+ contexts can be managed independently.
+ @param stack The diagnostic context of the parent thread,
+ will be deleted during call. If NULL, NDC will not be modified.
+ */
+ static void inherit(Stack * stack);
+
+ /**
+ * Get the current value of the NDC of the
+ * currrent thread.
+ * @param dest destination to which to append content of NDC.
+ * @return true if NDC is set.
+ */
+ static bool get(LogString& dest);
+
+ /**
+ Get the current nesting depth of this diagnostic context.
+ */
+ static int getDepth();
+
+
+ /**
+ * Tests if the NDC is empty.
+ */
+ static bool empty();
+
+ /**
+ Pop top value off stack.
+ @return top value.
+ */
+ static LogString pop();
+ /**
+ Pop top value off stack.
+ @param buf to which top value is appended.
+ @return true if NDC contained at least one value.
+ */
+ static bool pop(std::string& buf);
+
+ /**
+ Looks at the last diagnostic context at the top of this NDC
+ without removing it.
+ <p>The returned value is the value that was pushed last. If no
+ context is available, then the empty string "" is returned.
+ @return String The innermost diagnostic context.
+ */
+ static LogString peek();
+ /**
+ Get top value without removing value.
+ @param buf to which top value is appended.
+ @return true if NDC contained at least one value.
+ */
+ static bool peek(std::string& buf);
+
+ /**
+ Push new diagnostic context information for the current thread.
+ <p>The contents of the <code>message</code> parameter is
+ determined solely by the client.
+ @param message The new diagnostic context information.
+ */
+ static void push(const std::string& message);
+ /**
+ Push new diagnostic context information for the current thread.
+ <p>The contents of the <code>message</code> parameter is
+ determined solely by the client.
+ @param message The new diagnostic context information.
+ */
+ static void pushLS(const LogString& message);
+
+ /**
+ Remove the diagnostic context for this thread.
+ <p>Each thread that created a diagnostic context by calling
+ #push should call this method before exiting. Otherwise,
+ the memory used by the <b>thread</b> cannot be reclaimed by the
+ VM.
+ <p>As this is such an important problem in heavy duty systems and
+ because it is difficult to always guarantee that the remove
+ method is called before exiting a thread, this method has been
+ augmented to lazily remove references to dead threads. In
+ practice, this means that you can be a little sloppy and
+ occasionally forget to call #remove before exiting a
+ thread. However, you must call <code>remove</code> sometime. If
+ you never call it, then your application is sure to run out of
+ memory.
+ */
+ static void remove();
+
+#if LOG4CXX_WCHAR_T_API
+ /**
+ Creates a nested diagnostic context.
+ Since java performs no automatic cleanup of objects when a
+ scope is left, in log4j push() and pop() must be used
+ to manage the NDC. For convenience, log4cxx provides
+ an NDC constructor and destructor which simply call the push() and
+ pop() methods, allowing for automatic cleanup when the current
+ scope ends.
+
+ @param message The new diagnostic context information.
+ @see The #push method.
+ */
+ NDC(const std::wstring& message);
+ /**
+ Push new diagnostic context information for the current thread.
+ <p>The contents of the <code>message</code> parameter is
+ determined solely by the client.
+ @param message The new diagnostic context information.
+ */
+ static void push(const std::wstring& message);
+ /**
+ * Appends the current NDC content to the provided string.
+ * @param dst destination.
+ * @return true if NDC value set.
+ */
+ static bool peek(std::wstring& dst);
+ /**
+ * Appends the current NDC content to the provided string and removes the value from the NDC.
+ * @param dst destination.
+ * @return true if NDC value set.
+ */
+ static bool pop(std::wstring& dst);
+#endif
+#if LOG4CXX_UNICHAR_API
+ /**
+ Creates a nested diagnostic context.
+ Since java performs no automatic cleanup of objects when a
+ scope is left, in log4j push() and pop() must be used
+ to manage the NDC. For convenience, log4cxx provides
+ an NDC constructor and destructor which simply call the push() and
+ pop() methods, allowing for automatic cleanup when the current
+ scope ends.
+
+ @param message The new diagnostic context information.
+ @see The #push method.
+ */
+ NDC(const std::basic_string<UniChar>& message);
+ /**
+ Push new diagnostic context information for the current thread.
+ <p>The contents of the <code>message</code> parameter is
+ determined solely by the client.
+ @param message The new diagnostic context information.
+ */
+ static void push(const std::basic_string<UniChar>& message);
+ /**
+ * Appends the current NDC content to the provided string.
+ * @param dst destination.
+ * @return true if NDC value set.
+ */
+ static bool peek(std::basic_string<UniChar>& dst);
+ /**
+ * Appends the current NDC content to the provided string and removes the value from the NDC.
+ * @param dst destination.
+ * @return true if NDC value set.
+ */
+ static bool pop(std::basic_string<UniChar>& dst);
+#endif
+#if LOG4CXX_CFSTRING_API
+ /**
+ Creates a nested diagnostic context.
+ Since java performs no automatic cleanup of objects when a
+ scope is left, in log4j push() and pop() must be used
+ to manage the NDC. For convenience, log4cxx provides
+ an NDC constructor and destructor which simply call the push() and
+ pop() methods, allowing for automatic cleanup when the current
+ scope ends.
+
+ @param message The new diagnostic context information.
+ @see The #push method.
+ */
+ NDC(const CFStringRef& message);
+ /**
+ Push new diagnostic context information for the current thread.
+ <p>The contents of the <code>message</code> parameter is
+ determined solely by the client.
+ @param message The new diagnostic context information.
+ */
+ static void push(const CFStringRef& message);
+ /**
+ * Gets the current NDC value.
+ * @param dst destination.
+ * @return true if NDC value set.
+ */
+ static bool peek(CFStringRef& dst);
+ /**
+ * Gets and removes the current NDC value.
+ * @param dst destination.
+ * @return true if NDC value set.
+ */
+ static bool pop(CFStringRef& dst);
+#endif
+
+ private:
+ NDC(const NDC&);
+ NDC& operator=(const NDC&);
+ static LogString& getMessage(DiagnosticContext& ctx);
+ static LogString& getFullMessage(DiagnosticContext& ctx);
+ }; // class NDC;
+} // namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning (pop)
+#endif
+
+
+#endif // _LOG4CXX_NDC_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/Makefile.am
new file mode 100644
index 0000000000..4a54041b1b
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/Makefile.am
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+netincdir = $(includedir)/log4cxx/net
+netinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/net/*.h
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/Makefile.in
new file mode 100644
index 0000000000..690070bf88
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/Makefile.in
@@ -0,0 +1,446 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = src/main/include/log4cxx/net
+DIST_COMMON = $(netinc_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \
+ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(netincdir)"
+netincHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(netinc_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+APR_LIBS = @APR_LIBS@
+APU_LIBS = @APU_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CFSTRING_API = @CFSTRING_API@
+CHARSET_EBCDIC = @CHARSET_EBCDIC@
+CHARSET_ISO88591 = @CHARSET_ISO88591@
+CHARSET_USASCII = @CHARSET_USASCII@
+CHARSET_UTF8 = @CHARSET_UTF8@
+CHAR_API = @CHAR_API@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_ODBC = @CPPFLAGS_ODBC@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOC_FALSE = @DOC_FALSE@
+DOC_TRUE = @DOC_TRUE@
+DOT = @DOT@
+DOXYGEN = @DOXYGEN@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HAS_FWIDE = @HAS_FWIDE@
+HAS_LIBESMTP = @HAS_LIBESMTP@
+HAS_MBSRTOWCS = @HAS_MBSRTOWCS@
+HAS_ODBC = @HAS_ODBC@
+HAS_STD_LOCALE = @HAS_STD_LOCALE@
+HAS_SYSLOG = @HAS_SYSLOG@
+HAS_WCHAR_T = @HAS_WCHAR_T@
+HAS_WCSTOMBS = @HAS_WCSTOMBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IODBC_CONFIG = @IODBC_CONFIG@
+LATEX_DOC_FALSE = @LATEX_DOC_FALSE@
+LATEX_DOC_TRUE = @LATEX_DOC_TRUE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBS_ODBC = @LIBS_ODBC@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@
+LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@
+LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@
+LTLIBOBJS = @LTLIBOBJS@
+LT_VERSION = @LT_VERSION@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+UNICHAR_API = @UNICHAR_API@
+VERSION = @VERSION@
+WCHAR_T_API = @WCHAR_T_API@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+base_dir = @base_dir@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+enable_dot = @enable_dot@
+enable_html_docs = @enable_html_docs@
+enable_latex_docs = @enable_latex_docs@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+manual_dest = @manual_dest@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+netincdir = $(includedir)/log4cxx/net
+netinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/net/*.h
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/net/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/main/include/log4cxx/net/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+install-netincHEADERS: $(netinc_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(netincdir)" || $(mkdir_p) "$(DESTDIR)$(netincdir)"
+ @list='$(netinc_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(netincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(netincdir)/$$f'"; \
+ $(netincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(netincdir)/$$f"; \
+ done
+
+uninstall-netincHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(netinc_HEADERS)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(netincdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(netincdir)/$$f"; \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/net
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(netincdir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-netincHEADERS
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-netincHEADERS
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool ctags distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-info-am install-man install-netincHEADERS \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-info-am \
+ uninstall-netincHEADERS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/smtpappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/smtpappender.h
new file mode 100644
index 0000000000..eb1dbb5934
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/smtpappender.h
@@ -0,0 +1,283 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_NET_SMTP_H
+#define _LOG4CXX_NET_SMTP_H
+
+
+#include <log4cxx/appenderskeleton.h>
+#include <log4cxx/helpers/cyclicbuffer.h>
+#include <log4cxx/spi/triggeringeventevaluator.h>
+
+namespace log4cxx
+{
+ namespace net
+ {
+ /**
+ Send an e-mail when a specific logging event occurs, typically on
+ errors or fatal errors.
+ <p>The number of logging events delivered in this e-mail depend on
+ the value of <b>BufferSize</b> option. The
+ <code>SMTPAppender</code> keeps only the last
+ <code>BufferSize</code> logging events in its cyclic buffer. This
+ keeps memory requirements at a reasonable level while still
+ delivering useful application context.
+ */
+ class LOG4CXX_EXPORT SMTPAppender : public AppenderSkeleton
+ {
+ private:
+
+ private:
+ SMTPAppender(const SMTPAppender&);
+ SMTPAppender& operator=(const SMTPAppender&);
+ static bool asciiCheck(const LogString& value, const LogString& label);
+ /**
+ This method determines if there is a sense in attempting to append.
+ <p>It checks whether there is a set output target and also if
+ there is a set layout. If these checks fail, then the boolean
+ value <code>false</code> is returned. */
+ bool checkEntryConditions();
+
+ LogString to;
+ LogString cc;
+ LogString bcc;
+ LogString from;
+ LogString subject;
+ LogString smtpHost;
+ LogString smtpUsername;
+ LogString smtpPassword;
+ int smtpPort;
+ int bufferSize; // 512
+ bool locationInfo;
+ helpers::CyclicBuffer cb;
+ spi::TriggeringEventEvaluatorPtr evaluator;
+
+ public:
+ DECLARE_LOG4CXX_OBJECT(SMTPAppender)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(SMTPAppender)
+ LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton)
+ END_LOG4CXX_CAST_MAP()
+
+ SMTPAppender();
+ /**
+ The default constructor will instantiate the appender with a
+ spi::TriggeringEventEvaluator that will trigger on events with
+ level ERROR or higher.*/
+ SMTPAppender(log4cxx::helpers::Pool& p);
+
+ /**
+ Use <code>evaluator</code> passed as parameter as the
+ spi::TriggeringEventEvaluator for this net::SMTPAppender.
+ */
+ SMTPAppender(spi::TriggeringEventEvaluatorPtr evaluator);
+
+ ~SMTPAppender();
+
+ /**
+ Set options
+ */
+ virtual void setOption(const LogString& option, const LogString& value);
+
+ /**
+ Activate the specified options, such as the smtp host, the
+ recipient, from, etc.
+ */
+ virtual void activateOptions(log4cxx::helpers::Pool& p);
+
+ /**
+ Perform SMTPAppender specific appending actions, mainly adding
+ the event to a cyclic buffer and checking if the event triggers
+ an e-mail to be sent. */
+ virtual void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p);
+
+
+ virtual void close();
+
+ /**
+ Returns value of the <b>To</b> option.
+ */
+ LogString getTo() const;
+
+ /**
+ Returns value of the <b>cc</b> option.
+ */
+ LogString getCc() const;
+
+ /**
+ Returns value of the <b>bcc</b> option.
+ */
+ LogString getBcc() const;
+
+
+ /**
+ The <code>SMTPAppender</code> requires a {@link
+ Layout layout}. */
+ virtual bool requiresLayout() const;
+
+ /**
+ Send the contents of the cyclic buffer as an e-mail message.
+ */
+ void sendBuffer(log4cxx::helpers::Pool& p);
+
+
+ /**
+ Returns value of the <b>EvaluatorClass</b> option.
+ */
+ LogString getEvaluatorClass();
+
+ /**
+ Returns value of the <b>From</b> option.
+ */
+ LogString getFrom() const;
+
+ /**
+ Returns value of the <b>Subject</b> option.
+ */
+ LogString getSubject() const;
+
+
+ /**
+ The <b>From</b> option takes a string value which should be a
+ e-mail address of the sender.
+ */
+ void setFrom(const LogString& from);
+
+ /**
+ The <b>Subject</b> option takes a string value which should be a
+ the subject of the e-mail message.
+ */
+ void setSubject(const LogString& subject);
+
+ /**
+ The <b>BufferSize</b> option takes a positive integer
+ representing the maximum number of logging events to collect in a
+ cyclic buffer. When the <code>BufferSize</code> is reached,
+ oldest events are deleted as new events are added to the
+ buffer. By default the size of the cyclic buffer is 512 events.
+ */
+ void setBufferSize(int bufferSize);
+
+ /**
+ The <b>SMTPHost</b> option takes a string value which should be a
+ the host name of the SMTP server that will send the e-mail message.
+ */
+ void setSMTPHost(const LogString& smtpHost);
+
+ /**
+ Returns value of the <b>SMTPHost</b> option.
+ */
+ LogString getSMTPHost() const;
+
+ /**
+ The <b>SMTPPort</b> option takes a string value which should be a
+ the port of the SMTP server that will send the e-mail message.
+ */
+ void setSMTPPort(int port);
+
+ /**
+ Returns value of the <b>SMTPHost</b> option.
+ */
+ int getSMTPPort() const;
+
+ /**
+ The <b>To</b> option takes a string value which should be a
+ comma separated list of e-mail address of the recipients.
+ */
+ void setTo(const LogString& to);
+
+ /**
+ The <b>Cc</b> option takes a string value which should be a
+ comma separated list of e-mail address of the cc'd recipients.
+ */
+ void setCc(const LogString& to);
+
+ /**
+ The <b>Bcc</b> option takes a string value which should be a
+ comma separated list of e-mail address of the bcc'd recipients.
+ */
+ void setBcc(const LogString& to);
+
+
+ /**
+ The <b>SMTPUsername</b> option takes a string value which should be a
+ the user name for the SMTP server.
+ */
+ void setSMTPUsername(const LogString& newVal);
+
+ /**
+ Returns value of the <b>SMTPUsername</b> option.
+ */
+ LogString getSMTPUsername() const;
+
+ /**
+ The <b>SMTPPassword</b> option takes a string value which should be a
+ the password for the SMTP server.
+ */
+ void setSMTPPassword(const LogString& newVal);
+
+ /**
+ Returns value of the <b>SMTPPassword</b> option.
+ */
+ LogString getSMTPPassword() const;
+
+ /**
+ Returns value of the <b>BufferSize</b> option.
+ */
+ inline int getBufferSize() const
+ { return bufferSize; }
+
+
+ /**
+ * Gets the current triggering evaluator.
+ * @return triggering evaluator.
+ */
+ log4cxx::spi::TriggeringEventEvaluatorPtr getEvaluator() const;
+
+ /**
+ * Sets the triggering evaluator.
+ * @param trigger triggering evaluator.
+ */
+ void setEvaluator(log4cxx::spi::TriggeringEventEvaluatorPtr& trigger);
+
+ /**
+ The <b>EvaluatorClass</b> option takes a string value
+ representing the name of the class implementing the
+ spi::TriggeringEventEvaluator interface. A corresponding object will
+ be instantiated and assigned as the triggering event evaluator
+ for the SMTPAppender.
+ */
+ void setEvaluatorClass(const LogString& value);
+
+ /**
+ The <b>LocationInfo</b> option is provided for compatibility with log4j
+ and has no effect in log4cxx.
+ */
+ void setLocationInfo(bool locationInfo);
+
+ /**
+ Returns value of the <b>LocationInfo</b> option.
+ */
+ bool getLocationInfo() const;
+ }; // class SMTPAppender
+
+ LOG4CXX_PTR_DEF(SMTPAppender);
+
+ } // namespace net
+} // namespace log4cxx
+
+#endif // _LOG4CXX_NET_SMTP_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/socketappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/socketappender.h
new file mode 100644
index 0000000000..b32ade641d
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/socketappender.h
@@ -0,0 +1,143 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_NET_SOCKET_APPENDER_H
+#define _LOG4CXX_NET_SOCKET_APPENDER_H
+
+#include <log4cxx/net/socketappenderskeleton.h>
+#include <log4cxx/helpers/objectoutputstream.h>
+
+namespace log4cxx
+{
+ namespace net
+ {
+
+ /**
+ Sends {@link log4cxx::spi::LoggingEvent LoggingEvent} objects to a remote a log server,
+ usually Apache Chainsaw.
+
+ <p>The SocketAppender has the following properties:
+
+ - If sent to Apache Chainsaw, remote logging
+ is non-intrusive as far as the log event is concerned. In other
+ words, the event will be logged with the same time stamp, {@link
+ NDC NDC}, location info as if it were logged locally by
+ the client.
+
+ - SocketAppenders do not use a layout. They ship a
+ serialized {@link log4cxx::spi::LoggingEvent LoggingEvent} object
+ to the server side.
+
+ - Remote logging uses the TCP protocol. Consequently, if
+ the server is reachable, then log events will eventually arrive
+ at the server.
+
+ - If the remote server is down, the logging requests are
+ simply dropped. However, if and when the server comes back up,
+ then event transmission is resumed transparently. This
+ transparent reconneciton is performed by a <em>connector</em>
+ thread which periodically attempts to connect to the server.
+
+ - Logging events are automatically <em>buffered</em> by the
+ native TCP implementation. This means that if the link to server
+ is slow but still faster than the rate of (log) event production
+ by the client, the client will not be affected by the slow
+ network connection. However, if the network connection is slower
+ then the rate of event production, then the client can only
+ progress at the network rate. In particular, if the network link
+ to the the server is down, the client will be blocked.
+ @n @n On the other hand, if the network link is up, but the server
+ is down, the client will not be blocked when making log requests
+ but the log events will be lost due to server unavailability.
+
+ - Even if a <code>SocketAppender</code> is no longer
+ attached to any logger, it will not be destroyed in
+ the presence of a connector thread. A connector thread exists
+ only if the connection to the server is down. To avoid this
+ destruction problem, you should #close the the
+ <code>SocketAppender</code> explicitly. See also next item.
+ @n @n Long lived applications which create/destroy many
+ <code>SocketAppender</code> instances should be aware of this
+ destruction problem. Most other applications can safely
+ ignore it.
+
+ - If the application hosting the <code>SocketAppender</code>
+ exits before the <code>SocketAppender</code> is closed either
+ explicitly or subsequent to destruction, then there might
+ be untransmitted data in the pipe which might be lost.
+ @n @n To avoid lost data, it is usually sufficient to
+ #close the <code>SocketAppender</code> either explicitly or by
+ calling the LogManager#shutdown method
+ before exiting the application.
+ */
+
+ class LOG4CXX_EXPORT SocketAppender : public SocketAppenderSkeleton
+ {
+ public:
+ /**
+ The default port number of remote logging server (4560).
+ */
+ static int DEFAULT_PORT;
+
+ /**
+ The default reconnection delay (30000 milliseconds or 30 seconds).
+ */
+ static int DEFAULT_RECONNECTION_DELAY;
+
+ DECLARE_LOG4CXX_OBJECT(SocketAppender)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(SocketAppender)
+ LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton)
+ END_LOG4CXX_CAST_MAP()
+
+ SocketAppender();
+ ~SocketAppender();
+
+ /**
+ Connects to remote server at <code>address</code> and <code>port</code>.
+ */
+ SocketAppender(helpers::InetAddressPtr& address, int port);
+
+ /**
+ Connects to remote server at <code>host</code> and <code>port</code>.
+ */
+ SocketAppender(const LogString& host, int port);
+
+
+ protected:
+ virtual void setSocket(log4cxx::helpers::SocketPtr& socket, log4cxx::helpers::Pool& p);
+
+ virtual void cleanUp(log4cxx::helpers::Pool& p);
+
+ virtual int getDefaultDelay() const;
+
+ virtual int getDefaultPort() const;
+
+ void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& pool);
+
+ private:
+ log4cxx::helpers::ObjectOutputStreamPtr oos;
+
+ }; // class SocketAppender
+
+ LOG4CXX_PTR_DEF(SocketAppender);
+
+ } // namespace net
+} // namespace log4cxx
+
+#endif // _LOG4CXX_NET_SOCKET_APPENDER_H
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/socketappenderskeleton.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/socketappenderskeleton.h
new file mode 100644
index 0000000000..3dcb8a9182
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/socketappenderskeleton.h
@@ -0,0 +1,179 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_NET_SOCKET_APPENDER_SKELETON_H
+#define _LOG4CXX_NET_SOCKET_APPENDER_SKELETON_H
+
+#include <log4cxx/appenderskeleton.h>
+#include <log4cxx/helpers/socket.h>
+#include <log4cxx/helpers/thread.h>
+#include <log4cxx/helpers/objectoutputstream.h>
+
+namespace log4cxx
+{
+
+ namespace net
+ {
+
+ /**
+ * Abstract base class for SocketAppender and XMLSocketAppender
+ */
+ class LOG4CXX_EXPORT SocketAppenderSkeleton : public AppenderSkeleton
+ {
+ private:
+ /**
+ host name
+ */
+ LogString remoteHost;
+
+ /**
+ IP address
+ */
+ helpers::InetAddressPtr address;
+
+ int port;
+ int reconnectionDelay;
+ bool locationInfo;
+
+ public:
+ SocketAppenderSkeleton(int defaultPort, int reconnectionDelay);
+ ~SocketAppenderSkeleton();
+
+ /**
+ Connects to remote server at <code>address</code> and <code>port</code>.
+ */
+ SocketAppenderSkeleton(helpers::InetAddressPtr address, int port, int reconnectionDelay);
+
+ /**
+ Connects to remote server at <code>host</code> and <code>port</code>.
+ */
+ SocketAppenderSkeleton(const LogString& host, int port, int reconnectionDelay);
+
+ /**
+ Connect to the specified <b>RemoteHost</b> and <b>Port</b>.
+ */
+ void activateOptions(log4cxx::helpers::Pool& p);
+
+ void close();
+
+
+ /**
+ * This appender does not use a layout. Hence, this method
+ * returns <code>false</code>.
+ *
+ */
+ bool requiresLayout() const
+ { return false; }
+
+ /**
+ * The <b>RemoteHost</b> option takes a string value which should be
+ * the host name of the server where a
+ * Apache Chainsaw or compatible is running.
+ * */
+ inline void setRemoteHost(const LogString& host)
+ { address = helpers::InetAddress::getByName(host);
+ remoteHost.assign(host); }
+
+ /**
+ Returns value of the <b>RemoteHost</b> option.
+ */
+ inline const LogString& getRemoteHost() const
+ { return remoteHost; }
+
+ /**
+ The <b>Port</b> option takes a positive integer representing
+ the port where the server is waiting for connections.
+ */
+ void setPort(int port1)
+ { this->port = port1; }
+
+ /**
+ Returns value of the <b>Port</b> option.
+ */
+ int getPort() const
+ { return port; }
+
+ /**
+ The <b>LocationInfo</b> option takes a boolean value. If true,
+ the information sent to the remote host will include location
+ information. By default no location information is sent to the server.
+ */
+ void setLocationInfo(bool locationInfo1)
+ { this->locationInfo = locationInfo1; }
+
+ /**
+ Returns value of the <b>LocationInfo</b> option.
+ */
+ bool getLocationInfo() const
+ { return locationInfo; }
+
+ /**
+ The <b>ReconnectionDelay</b> option takes a positive integer
+ representing the number of milliseconds to wait between each
+ failed connection attempt to the server. The default value of
+ this option is 30000 which corresponds to 30 seconds.
+
+ <p>Setting this option to zero turns off reconnection
+ capability.
+ */
+ void setReconnectionDelay(int reconnectionDelay1)
+ { this->reconnectionDelay = reconnectionDelay1; }
+
+ /**
+ Returns value of the <b>ReconnectionDelay</b> option.
+ */
+ int getReconnectionDelay() const
+ { return reconnectionDelay; }
+
+ void fireConnector();
+
+ void setOption(const LogString& option,
+ const LogString& value);
+
+ protected:
+
+ virtual void setSocket(log4cxx::helpers::SocketPtr& socket, log4cxx::helpers::Pool& p) = 0;
+
+ virtual void cleanUp(log4cxx::helpers::Pool& p) = 0;
+
+ virtual int getDefaultDelay() const = 0;
+
+ virtual int getDefaultPort() const = 0;
+
+ private:
+ void connect(log4cxx::helpers::Pool& p);
+ /**
+ The Connector will reconnect when the server becomes available
+ again. It does this by attempting to open a new connection every
+ <code>reconnectionDelay</code> milliseconds.
+
+ <p>It stops trying whenever a connection is established. It will
+ restart to try reconnect to the server when previpously open
+ connection is droppped.
+ */
+
+ helpers::Thread thread;
+ static void* LOG4CXX_THREAD_FUNC monitor(apr_thread_t* thread, void* data);
+ SocketAppenderSkeleton(const SocketAppenderSkeleton&);
+ SocketAppenderSkeleton& operator=(const SocketAppenderSkeleton&);
+
+ }; // class SocketAppenderSkeleton
+ } // namespace net
+} // namespace log4cxx
+
+#endif // _LOG4CXX_NET_SOCKET_APPENDER_SKELETON_H
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/sockethubappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/sockethubappender.h
new file mode 100644
index 0000000000..8994833456
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/sockethubappender.h
@@ -0,0 +1,197 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_NET_SOCKET_HUB_APPENDER_H
+#define _LOG4CXX_NET_SOCKET_HUB_APPENDER_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/appenderskeleton.h>
+#include <vector>
+#include <log4cxx/helpers/thread.h>
+#include <log4cxx/helpers/objectoutputstream.h>
+
+
+namespace log4cxx
+{
+ namespace helpers {
+ class ObjectOutputStream;
+ typedef ObjectPtrT<ObjectOutputStream> ObjectOutputStreamPtr;
+ }
+ namespace net
+ {
+ /**
+ Sends {@link log4cxx::spi::LoggingEvent LoggingEvent} objects to a set of remote log
+ servers, usually a SocketNode.
+
+ <p>Acts just like SocketAppender except that instead of
+ connecting to a given remote log server,
+ <code>SocketHubAppender</code> accepts connections from the remote
+ log servers as clients. It can accept more than one connection.
+ When a log event is received, the event is sent to the set of
+ currently connected remote log servers. Implemented this way it does
+ not require any update to the configuration file to send data to
+ another remote log server. The remote log server simply connects to
+ the host and port the <code>SocketHubAppender</code> is running on.
+
+ <p>The <code>SocketHubAppender</code> does not store events such
+ that the remote side will events that arrived after the
+ establishment of its connection. Once connected, events arrive in
+ order as guaranteed by the TCP protocol.
+
+ <p>This implementation borrows heavily from the SocketAppender.
+
+ <p>The SocketHubAppender has the following characteristics:
+
+ - If sent to a SocketNode, logging is non-intrusive as
+ far as the log event is concerned. In other words, the event will be
+ logged with the same time stamp, NDC,
+ location info as if it were logged locally.
+
+ - <code>SocketHubAppender</code> does not use a layout. It
+ ships a serialized spi::LoggingEvent object to the remote side.
+
+ - <code>SocketHubAppender</code> relies on the TCP
+ protocol. Consequently, if the remote side is reachable, then log
+ events will eventually arrive at remote client.
+
+ - If no remote clients are attached, the logging requests are
+ simply dropped.
+
+ - Logging events are automatically <em>buffered</em> by the
+ native TCP implementation. This means that if the link to remote
+ client is slow but still faster than the rate of (log) event
+ production, the application will not be affected by the slow network
+ connection. However, if the network connection is slower then the
+ rate of event production, then the local application can only
+ progress at the network rate. In particular, if the network link to
+ the the remote client is down, the application will be blocked.
+ @n @n On the other hand, if the network link is up, but the remote
+ client is down, the client will not be blocked when making log
+ requests but the log events will be lost due to client
+ unavailability.
+ @n @n The single remote client case extends to multiple clients
+ connections. The rate of logging will be determined by the slowest
+ link.
+
+ - If the application hosting the <code>SocketHubAppender</code>
+ exits before the <code>SocketHubAppender</code> is closed either
+ explicitly or subsequent to garbage collection, then there might
+ be untransmitted data in the pipe which might be lost. This is a
+ common problem on Windows based systems.
+ @n @n To avoid lost data, it is usually sufficient to #close
+ the <code>SocketHubAppender</code> either explicitly or by calling
+ the LogManager#shutdown method before
+ exiting the application.
+ */
+
+ class LOG4CXX_EXPORT SocketHubAppender : public AppenderSkeleton
+ {
+ private:
+ /**
+ The default port number of the ServerSocket will be created on.
+ */
+ static int DEFAULT_PORT;
+
+ int port;
+ LOG4CXX_LIST_DEF(ObjectOutputStreamList, log4cxx::helpers::ObjectOutputStreamPtr);
+ ObjectOutputStreamList streams;
+ bool locationInfo;
+
+ public:
+ DECLARE_LOG4CXX_OBJECT(SocketHubAppender)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(SocketHubAppender)
+ LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton)
+ END_LOG4CXX_CAST_MAP()
+
+ SocketHubAppender();
+ ~SocketHubAppender();
+
+ /**
+ Connects to remote server at <code>address</code> and <code>port</code>.
+ */
+ SocketHubAppender(int port) ;
+
+ /**
+ Set up the socket server on the specified port.
+ */
+ virtual void activateOptions(log4cxx::helpers::Pool& p);
+
+ /**
+ Set options
+ */
+ virtual void setOption(const LogString& option, const LogString& value);
+
+ virtual void close();
+
+ /**
+ Append an event to all of current connections. */
+ virtual void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p);
+
+ /**
+ The SocketHubAppender does not use a layout. Hence, this method returns
+ <code>false</code>. */
+ virtual bool requiresLayout() const
+ { return false; }
+
+ /**
+ The <b>Port</b> option takes a positive integer representing
+ the port where the server is waiting for connections. */
+ inline void setPort(int port1)
+ { this->port = port1; }
+
+ /**
+ Returns value of the <b>Port</b> option. */
+ inline int getPort() const
+ { return port; }
+
+ /**
+ The <b>LocationInfo</b> option takes a boolean value. If true,
+ the information sent to the remote host will include location
+ information. By default no location information is sent to the server. */
+ inline void setLocationInfo(bool locationInfo1)
+ { this->locationInfo = locationInfo1; }
+
+ /**
+ Returns value of the <b>LocationInfo</b> option. */
+ inline bool getLocationInfo() const
+ { return locationInfo; }
+
+ /**
+ Start the ServerMonitor thread. */
+ private:
+ void startServer();
+
+ helpers::Thread thread;
+ static void* LOG4CXX_THREAD_FUNC monitor(apr_thread_t* thread, void* data);
+
+ }; // class SocketHubAppender
+ LOG4CXX_PTR_DEF(SocketHubAppender);
+ } // namespace net
+} // namespace log4cxx
+
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+#endif // _LOG4CXX_NET_SOCKET_HUB_APPENDER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/syslogappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/syslogappender.h
new file mode 100644
index 0000000000..27f737b089
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/syslogappender.h
@@ -0,0 +1,141 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_NET_SYSLOG_APPENDER_H
+#define _LOG4CXX_NET_SYSLOG_APPENDER_H
+
+#include <log4cxx/appenderskeleton.h>
+#include <log4cxx/helpers/syslogwriter.h>
+
+namespace log4cxx
+{
+ namespace net
+ {
+ /** Use SyslogAppender to send log messages to a remote syslog daemon.*/
+ class LOG4CXX_EXPORT SyslogAppender : public AppenderSkeleton
+ {
+ public:
+ DECLARE_LOG4CXX_OBJECT(SyslogAppender)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(SyslogAppender)
+ LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton)
+ END_LOG4CXX_CAST_MAP()
+
+
+
+ SyslogAppender();
+ SyslogAppender(const LayoutPtr& layout, int syslogFacility);
+ SyslogAppender(const LayoutPtr& layout,
+ const LogString& syslogHost, int syslogFacility);
+ ~SyslogAppender();
+ /** Release any resources held by this SyslogAppender.*/
+ void close();
+
+ /**
+ Returns the specified syslog facility as a lower-case String,
+ e.g. "kern", "user", etc.
+ */
+ static LogString getFacilityString(int syslogFacility);
+
+ /**
+ Returns the integer value corresponding to the named syslog
+ facility, or -1 if it couldn't be recognized.
+ @param facilityName one of the strings KERN, USER, MAIL, DAEMON,
+ AUTH, SYSLOG, LPR, NEWS, UUCP, CRON, AUTHPRIV, FTP, LOCAL0,
+ LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7.
+ The matching is case-insensitive.
+ */
+ static int getFacility(const LogString &facilityName);
+
+ void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p);
+
+ /**
+ This method returns immediately as options are activated when they
+ are set.
+ */
+ void activateOptions(log4cxx::helpers::Pool& p);
+ void setOption(const LogString& option, const LogString& value);
+
+ /**
+ The SyslogAppender requires a layout. Hence, this method returns
+ <code>true</code>.
+ */
+ virtual bool requiresLayout() const
+ { return true; }
+
+ /**
+ The <b>SyslogHost</b> option is the name of the the syslog host
+ where log output should go.
+ <b>WARNING</b> If the SyslogHost is not set, then this appender
+ will fail.
+ */
+ void setSyslogHost(const LogString& syslogHost);
+
+ /**
+ Returns the value of the <b>SyslogHost</b> option.
+ */
+ inline const LogString& getSyslogHost() const
+ { return syslogHost; }
+
+ /**
+ Set the syslog facility. This is the <b>Facility</b> option.
+
+ <p>The <code>facilityName</code> parameter must be one of the
+ strings KERN, USER, MAIL, DAEMON, AUTH, SYSLOG, LPR, NEWS, UUCP,
+ CRON, AUTHPRIV, FTP, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4,
+ LOCAL5, LOCAL6, LOCAL7. Case is unimportant.
+ */
+ void setFacility(const LogString& facilityName);
+
+ /**
+ Returns the value of the <b>Facility</b> option.
+ */
+ inline LogString getFacility() const
+ { return getFacilityString(syslogFacility); }
+
+ /**
+ If the <b>FacilityPrinting</b> option is set to true, the printed
+ message will include the facility name of the application. It is
+ <em>false</em> by default.
+ */
+ inline void setFacilityPrinting(bool facilityPrinting1)
+ { this->facilityPrinting = facilityPrinting1; }
+
+ /**
+ Returns the value of the <b>FacilityPrinting</b> option.
+ */
+ inline bool getFacilityPrinting() const
+ { return facilityPrinting; }
+
+ protected:
+ void initSyslogFacilityStr();
+
+ int syslogFacility; // Have LOG_USER as default
+ LogString facilityStr;
+ bool facilityPrinting;
+ helpers::SyslogWriter * sw;
+ LogString syslogHost;
+ private:
+ SyslogAppender(const SyslogAppender&);
+ SyslogAppender& operator=(const SyslogAppender&);
+ }; // class SyslogAppender
+ LOG4CXX_PTR_DEF(SyslogAppender);
+ } // namespace net
+} // namespace log4cxx
+
+#endif // _LOG4CXX_NET_SYSLOG_APPENDER_H
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/telnetappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/telnetappender.h
new file mode 100644
index 0000000000..5cbe2b0be1
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/telnetappender.h
@@ -0,0 +1,158 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_NET_TELNET_APPENDER_H
+#define _LOG4CXX_NET_TELNET_APPENDER_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+
+#include <log4cxx/appenderskeleton.h>
+#include <log4cxx/helpers/socket.h>
+#include <log4cxx/helpers/serversocket.h>
+#include <log4cxx/helpers/thread.h>
+#include <vector>
+#include <log4cxx/helpers/charsetencoder.h>
+
+namespace log4cxx
+{
+ namespace helpers {
+ class ByteBuffer;
+ }
+ namespace net
+ {
+/**
+<p>The TelnetAppender is a log4cxx appender that specializes in
+writing to a read-only socket. The output is provided in a
+telnet-friendly way so that a log can be monitored over TCP/IP.
+Clients using telnet connect to the socket and receive log data.
+This is handy for remote monitoring, especially when monitoring a
+servlet.
+
+<p>Here is a list of the available configuration options:
+
+<table border=1>
+<tr>
+<td align=center><b>Name</b></td>
+<td align=center><b>Requirement</b></td>
+<td align=center><b>Description</b></td>
+<td align=center><b>Sample Value</b></td>
+</tr>
+
+<tr>
+<td>Port</td>
+<td>optional</td>
+<td>This parameter determines the port to use for announcing log events. The default port is 23 (telnet).</td>
+<td>5875</td>
+</table>
+*/
+ class LOG4CXX_EXPORT TelnetAppender : public AppenderSkeleton
+ {
+ class SocketHandler;
+ friend class SocketHandler;
+ private:
+ static const int DEFAULT_PORT;
+ static const int MAX_CONNECTIONS;
+ int port;
+
+ public:
+ DECLARE_LOG4CXX_OBJECT(TelnetAppender)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(TelnetAppender)
+ LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton)
+ END_LOG4CXX_CAST_MAP()
+
+ TelnetAppender();
+ ~TelnetAppender();
+
+ /**
+ This appender requires a layout to format the text to the
+ attached client(s). */
+ virtual bool requiresLayout() const
+ { return true; }
+
+ LogString getEncoding() const;
+ void setEncoding(const LogString& value);
+
+
+ /** all of the options have been set, create the socket handler and
+ wait for connections. */
+ void activateOptions(log4cxx::helpers::Pool& p);
+
+ /**
+ Set options
+ */
+ virtual void setOption(const LogString& option, const LogString& value);
+
+ /**
+ Returns value of the <b>Port</b> option.
+ */
+ int getPort() const
+ { return port; }
+
+ /**
+ The <b>Port</b> option takes a positive integer representing
+ the port where the server is waiting for connections.
+ */
+ void setPort(int port1)
+ { this->port = port1; }
+
+
+ /** shuts down the appender. */
+ void close();
+
+ protected:
+ /** Handles a log event. For this appender, that means writing the
+ message to each connected client. */
+ virtual void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p) ;
+
+ //---------------------------------------------------------- SocketHandler:
+
+ private:
+ // prevent copy and assignment statements
+ TelnetAppender(const TelnetAppender&);
+ TelnetAppender& operator=(const TelnetAppender&);
+
+ typedef log4cxx::helpers::SocketPtr Connection;
+ LOG4CXX_LIST_DEF(ConnectionList, Connection);
+
+ void write(log4cxx::helpers::ByteBuffer&);
+ void writeStatus(const log4cxx::helpers::SocketPtr& socket, const LogString& msg, log4cxx::helpers::Pool& p);
+ ConnectionList connections;
+ LogString encoding;
+ log4cxx::helpers::CharsetEncoderPtr encoder;
+ helpers::ServerSocket* serverSocket;
+ helpers::Thread sh;
+ size_t activeConnections;
+ static void* LOG4CXX_THREAD_FUNC acceptConnections(apr_thread_t* thread, void* data);
+ }; // class TelnetAppender
+
+ LOG4CXX_PTR_DEF(TelnetAppender);
+ } // namespace net
+} // namespace log4cxx
+
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+#endif // _LOG4CXX_NET_TELNET_APPENDER_H
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/xmlsocketappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/xmlsocketappender.h
new file mode 100644
index 0000000000..d99940fe51
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/xmlsocketappender.h
@@ -0,0 +1,150 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_NET_XML_SOCKET_APPENDER_H
+#define _LOG4CXX_NET_XML_SOCKET_APPENDER_H
+
+#include <log4cxx/net/socketappenderskeleton.h>
+#include <log4cxx/helpers/writer.h>
+
+namespace log4cxx
+{
+ namespace net
+ {
+
+ /**
+ Sends {@link log4cxx::spi::LoggingEvent LoggingEvent} objects in XML format
+ to a remote a log server, usually a XMLSocketNode.
+
+ <p>The XMLSocketAppender has the following properties:
+
+ - If sent to a XMLSocketNode, remote logging
+ is non-intrusive as far as the log event is concerned. In other
+ words, the event will be logged with the same time stamp, {@link
+ NDC NDC}, location info as if it were logged locally by
+ the client.
+
+ - XMLSocketAppenders use exclusively an XMLLayout. They ship an
+ XML stream representing a {@link spi::LoggingEvent LoggingEvent} object
+ to the server side.
+
+ - Remote logging uses the TCP protocol. Consequently, if
+ the server is reachable, then log events will eventually arrive
+ at the server.
+
+ - If the remote server is down, the logging requests are
+ simply dropped. However, if and when the server comes back up,
+ then event transmission is resumed transparently. This
+ transparent reconneciton is performed by a <em>connector</em>
+ thread which periodically attempts to connect to the server.
+
+ - Logging events are automatically <em>buffered</em> by the
+ native TCP implementation. This means that if the link to server
+ is slow but still faster than the rate of (log) event production
+ by the client, the client will not be affected by the slow
+ network connection. However, if the network connection is slower
+ then the rate of event production, then the client can only
+ progress at the network rate. In particular, if the network link
+ to the the server is down, the client will be blocked.
+ @n @n On the other hand, if the network link is up, but the server
+ is down, the client will not be blocked when making log requests
+ but the log events will be lost due to server unavailability.
+
+ - Even if an <code>XMLSocketAppender</code> is no longer
+ attached to any logger, it will not be destroyed in
+ the presence of a connector thread. A connector thread exists
+ only if the connection to the server is down. To avoid this
+ destruction problem, you should #close the the
+ <code>XMLSocketAppender</code> explicitly. See also next item.
+ @n @n Long lived applications which create/destroy many
+ <code>XMLSocketAppender</code> instances should be aware of this
+ destruction problem. Most other applications can safely
+ ignore it.
+
+ - If the application hosting the <code>XMLSocketAppender</code>
+ exits before the <code>XMLSocketAppender</code> is closed either
+ explicitly or subsequent to destruction, then there might
+ be untransmitted data in the pipe which might be lost.
+ @n @n To avoid lost data, it is usually sufficient to
+ #close the <code>XMLSocketAppender</code> either explicitly or by
+ calling the LogManager#shutdown method
+ before exiting the application.
+ */
+
+ class LOG4CXX_EXPORT XMLSocketAppender : public SocketAppenderSkeleton
+ {
+ public:
+ /**
+ The default port number of remote logging server (4560).
+ */
+ static int DEFAULT_PORT;
+
+ /**
+ The default reconnection delay (30000 milliseconds or 30 seconds).
+ */
+ static int DEFAULT_RECONNECTION_DELAY;
+
+ /**
+ An event XML stream cannot exceed 1024 bytes.
+ */
+ static const int MAX_EVENT_LEN;
+
+ DECLARE_LOG4CXX_OBJECT(XMLSocketAppender)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(XMLSocketAppender)
+ LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton)
+ END_LOG4CXX_CAST_MAP()
+
+ XMLSocketAppender();
+ ~XMLSocketAppender();
+
+ /**
+ Connects to remote server at <code>address</code> and <code>port</code>.
+ */
+ XMLSocketAppender(helpers::InetAddressPtr address, int port);
+
+ /**
+ Connects to remote server at <code>host</code> and <code>port</code>.
+ */
+ XMLSocketAppender(const LogString& host, int port);
+
+
+ protected:
+ virtual void setSocket(log4cxx::helpers::SocketPtr& socket, log4cxx::helpers::Pool& p);
+
+ virtual void cleanUp(log4cxx::helpers::Pool& p);
+
+ virtual int getDefaultDelay() const;
+
+ virtual int getDefaultPort() const;
+
+ void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& pool);
+
+ private:
+ log4cxx::helpers::WriterPtr writer;
+ // prevent copy and assignment statements
+ XMLSocketAppender(const XMLSocketAppender&);
+ XMLSocketAppender& operator=(const XMLSocketAppender&);
+ }; // class XMLSocketAppender
+
+ LOG4CXX_PTR_DEF(XMLSocketAppender);
+
+ } // namespace net
+} // namespace log4cxx
+
+#endif // _LOG4CXX_NET_XML_SOCKET_APPENDER_H
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/EventLogCategories.mc b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/EventLogCategories.mc
new file mode 100644
index 0000000000..e50874600c
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/EventLogCategories.mc
@@ -0,0 +1,42 @@
+;
+; Licensed to the Apache Software Foundation (ASF) under one
+; or more contributor license agreements. See the NOTICE file
+; distributed with this work for additional information
+; regarding copyright ownership. The ASF licenses this file
+; to you under the Apache License, Version 2.0 (the
+; "License"); you may not use this file except in compliance
+; with the License. You may obtain a copy of the License at
+;
+; http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing,
+; software distributed under the License is distributed on an
+; "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+; KIND, either express or implied. See the License for the
+; specific language governing permissions and limitations
+; under the License.
+;
+MessageId=0x0001
+Language=English
+Fatal
+.
+MessageId=0x0002
+Language=English
+Error
+.
+MessageId=0x0003
+Language=English
+Warn
+.
+MessageId=0x0004
+Language=English
+Info
+.
+MessageId=0x0005
+Language=English
+Debug
+.
+MessageId=0x1000
+Language=English
+%1
+.
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/Makefile.am
new file mode 100644
index 0000000000..c75bbbdf16
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/Makefile.am
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+ntincdir = $(includedir)/log4cxx/nt
+ntinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/nt/*.h
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/Makefile.in
new file mode 100644
index 0000000000..559a4b146c
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/Makefile.in
@@ -0,0 +1,445 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = src/main/include/log4cxx/nt
+DIST_COMMON = $(ntinc_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \
+ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(ntincdir)"
+ntincHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(ntinc_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+APR_LIBS = @APR_LIBS@
+APU_LIBS = @APU_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CFSTRING_API = @CFSTRING_API@
+CHARSET_EBCDIC = @CHARSET_EBCDIC@
+CHARSET_ISO88591 = @CHARSET_ISO88591@
+CHARSET_USASCII = @CHARSET_USASCII@
+CHARSET_UTF8 = @CHARSET_UTF8@
+CHAR_API = @CHAR_API@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_ODBC = @CPPFLAGS_ODBC@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOC_FALSE = @DOC_FALSE@
+DOC_TRUE = @DOC_TRUE@
+DOT = @DOT@
+DOXYGEN = @DOXYGEN@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HAS_FWIDE = @HAS_FWIDE@
+HAS_LIBESMTP = @HAS_LIBESMTP@
+HAS_MBSRTOWCS = @HAS_MBSRTOWCS@
+HAS_ODBC = @HAS_ODBC@
+HAS_STD_LOCALE = @HAS_STD_LOCALE@
+HAS_SYSLOG = @HAS_SYSLOG@
+HAS_WCHAR_T = @HAS_WCHAR_T@
+HAS_WCSTOMBS = @HAS_WCSTOMBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IODBC_CONFIG = @IODBC_CONFIG@
+LATEX_DOC_FALSE = @LATEX_DOC_FALSE@
+LATEX_DOC_TRUE = @LATEX_DOC_TRUE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBS_ODBC = @LIBS_ODBC@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@
+LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@
+LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@
+LTLIBOBJS = @LTLIBOBJS@
+LT_VERSION = @LT_VERSION@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+UNICHAR_API = @UNICHAR_API@
+VERSION = @VERSION@
+WCHAR_T_API = @WCHAR_T_API@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+base_dir = @base_dir@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+enable_dot = @enable_dot@
+enable_html_docs = @enable_html_docs@
+enable_latex_docs = @enable_latex_docs@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+manual_dest = @manual_dest@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+ntincdir = $(includedir)/log4cxx/nt
+ntinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/nt/*.h
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/nt/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/main/include/log4cxx/nt/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+install-ntincHEADERS: $(ntinc_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(ntincdir)" || $(mkdir_p) "$(DESTDIR)$(ntincdir)"
+ @list='$(ntinc_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(ntincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(ntincdir)/$$f'"; \
+ $(ntincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(ntincdir)/$$f"; \
+ done
+
+uninstall-ntincHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(ntinc_HEADERS)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(ntincdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(ntincdir)/$$f"; \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/nt
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(ntincdir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-ntincHEADERS
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-ntincHEADERS
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool ctags distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-info-am install-man install-ntincHEADERS install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-info-am uninstall-ntincHEADERS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/nteventlogappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/nteventlogappender.h
new file mode 100644
index 0000000000..4951bcc962
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/nteventlogappender.h
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_NT_EVENT_LOG_APPENDER_HEADER_
+#define _LOG4CXX_NT_EVENT_LOG_APPENDER_HEADER_
+
+#include <log4cxx/appenderskeleton.h>
+
+
+namespace log4cxx
+{
+ namespace nt
+ {
+ /**
+ * Appends log events to NT EventLog.
+ */
+ class LOG4CXX_EXPORT NTEventLogAppender : public AppenderSkeleton
+ {
+ public:
+ DECLARE_LOG4CXX_OBJECT(NTEventLogAppender)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(NTEventLogAppender)
+ LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton)
+ END_LOG4CXX_CAST_MAP()
+
+ NTEventLogAppender();
+ NTEventLogAppender(const LogString& server, const LogString& log,
+ const LogString& source, const LayoutPtr& layout);
+
+ virtual ~NTEventLogAppender();
+
+ virtual void activateOptions(log4cxx::helpers::Pool& p);
+ virtual void close();
+ virtual void setOption(const LogString& option, const LogString& value);
+
+ /**
+ * The SocketAppender does not use a layout. Hence, this method
+ * returns <code>false</code>.
+ *
+ */
+ bool requiresLayout() const
+ { return true; }
+
+ void setSource(const LogString& source)
+ { this->source.assign(source); }
+
+ const LogString& getSource() const
+ { return source; }
+
+ void setLog(const LogString& log)
+ { this->log.assign(log); }
+
+ const LogString& getLog() const
+ { return log; }
+
+ void setServer(const LogString& server)
+ { this->server.assign(server); }
+
+ const LogString& getServer() const
+ { return server; }
+
+
+ protected:
+ //
+ // these typedef are proxies for the real Win32 definitions
+ // and need to be cast to the global definitions before
+ // use with a Win32 API call
+ typedef void SID;
+ typedef void* HANDLE;
+
+ virtual void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p);
+ static unsigned short getEventType(const spi::LoggingEventPtr& event);
+ static unsigned short getEventCategory(const spi::LoggingEventPtr& event);
+ /*
+ * Add this source with appropriate configuration keys to the registry.
+ */
+ void addRegistryInfo();
+
+ // Data
+ LogString server;
+ LogString log;
+ LogString source;
+ HANDLE hEventLog;
+ SID * pCurrentUserSID;
+ static LogString getErrorString(const LogString& function);
+
+ private:
+ NTEventLogAppender(const NTEventLogAppender&);
+ NTEventLogAppender& operator=(const NTEventLogAppender&);
+ }; // class NTEventLogAppender
+
+ LOG4CXX_PTR_DEF(NTEventLogAppender);
+
+ } // namespace nt
+} // namespace log4cxx
+
+#endif //_LOG4CXX_NT_EVENT_LOG_APPENDER_HEADER_
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/outputdebugstringappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/outputdebugstringappender.h
new file mode 100644
index 0000000000..b9cc7d9688
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/outputdebugstringappender.h
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_NT_OUTPUTDEBUGSTRING_APPENDER_HEADER_
+#define _LOG4CXX_NT_OUTPUTDEBUGSTRING_APPENDER_HEADER_
+
+#include <log4cxx/appenderskeleton.h>
+
+namespace log4cxx
+{
+ namespace nt
+ {
+ class LOG4CXX_EXPORT OutputDebugStringAppender : public AppenderSkeleton
+ {
+ public:
+ DECLARE_LOG4CXX_OBJECT(OutputDebugStringAppender)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(OutputDebugStringAppender)
+ LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton)
+ END_LOG4CXX_CAST_MAP()
+
+ OutputDebugStringAppender();
+
+ bool requiresLayout() const
+ { return true; }
+
+ virtual void close() {}
+
+ virtual void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p);
+ };
+ }
+}
+
+#endif //_LOG4CXX_NT_OUTPUTDEBUGSTRING_APPENDER_HEADER_
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/Makefile.am
new file mode 100644
index 0000000000..217009648a
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/Makefile.am
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+patternincdir = $(includedir)/log4cxx/pattern
+patterninc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/pattern/*.h
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/Makefile.in
new file mode 100644
index 0000000000..eef1218b1c
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/Makefile.in
@@ -0,0 +1,446 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = src/main/include/log4cxx/pattern
+DIST_COMMON = $(patterninc_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \
+ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(patternincdir)"
+patternincHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(patterninc_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+APR_LIBS = @APR_LIBS@
+APU_LIBS = @APU_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CFSTRING_API = @CFSTRING_API@
+CHARSET_EBCDIC = @CHARSET_EBCDIC@
+CHARSET_ISO88591 = @CHARSET_ISO88591@
+CHARSET_USASCII = @CHARSET_USASCII@
+CHARSET_UTF8 = @CHARSET_UTF8@
+CHAR_API = @CHAR_API@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_ODBC = @CPPFLAGS_ODBC@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOC_FALSE = @DOC_FALSE@
+DOC_TRUE = @DOC_TRUE@
+DOT = @DOT@
+DOXYGEN = @DOXYGEN@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HAS_FWIDE = @HAS_FWIDE@
+HAS_LIBESMTP = @HAS_LIBESMTP@
+HAS_MBSRTOWCS = @HAS_MBSRTOWCS@
+HAS_ODBC = @HAS_ODBC@
+HAS_STD_LOCALE = @HAS_STD_LOCALE@
+HAS_SYSLOG = @HAS_SYSLOG@
+HAS_WCHAR_T = @HAS_WCHAR_T@
+HAS_WCSTOMBS = @HAS_WCSTOMBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IODBC_CONFIG = @IODBC_CONFIG@
+LATEX_DOC_FALSE = @LATEX_DOC_FALSE@
+LATEX_DOC_TRUE = @LATEX_DOC_TRUE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBS_ODBC = @LIBS_ODBC@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@
+LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@
+LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@
+LTLIBOBJS = @LTLIBOBJS@
+LT_VERSION = @LT_VERSION@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+UNICHAR_API = @UNICHAR_API@
+VERSION = @VERSION@
+WCHAR_T_API = @WCHAR_T_API@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+base_dir = @base_dir@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+enable_dot = @enable_dot@
+enable_html_docs = @enable_html_docs@
+enable_latex_docs = @enable_latex_docs@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+manual_dest = @manual_dest@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+patternincdir = $(includedir)/log4cxx/pattern
+patterninc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/pattern/*.h
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/pattern/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/main/include/log4cxx/pattern/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+install-patternincHEADERS: $(patterninc_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(patternincdir)" || $(mkdir_p) "$(DESTDIR)$(patternincdir)"
+ @list='$(patterninc_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(patternincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(patternincdir)/$$f'"; \
+ $(patternincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(patternincdir)/$$f"; \
+ done
+
+uninstall-patternincHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(patterninc_HEADERS)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(patternincdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(patternincdir)/$$f"; \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/pattern
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(patternincdir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-patternincHEADERS
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-patternincHEADERS
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool ctags distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-info-am install-man install-patternincHEADERS \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-info-am \
+ uninstall-patternincHEADERS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/classnamepatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/classnamepatternconverter.h
new file mode 100644
index 0000000000..dd750b8584
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/classnamepatternconverter.h
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_CLASSNAME_PATTERN_CONVERTER_H
+#define _LOG4CXX_PATTERN_CLASSNAME_PATTERN_CONVERTER_H
+
+
+#include <log4cxx/pattern/namepatternconverter.h>
+
+namespace log4cxx {
+ namespace pattern {
+
+
+/**
+ * Formats the class name of the site of the logging request.
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT ClassNamePatternConverter : public NamePatternConverter {
+ /**
+ * Private constructor.
+ * @param options options, may be null.
+ * @param logger logger for diagnostic messages, may be null.
+ */
+ ClassNamePatternConverter(
+ const std::vector<LogString>& options);
+
+public:
+ DECLARE_LOG4CXX_PATTERN(ClassNamePatternConverter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(ClassNamePatternConverter)
+ LOG4CXX_CAST_ENTRY_CHAIN(NamePatternConverter)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Gets an instance of ClassNamePatternConverter.
+ * @param options options, may be null.
+ * @return instance of pattern converter.
+ */
+ static PatternConverterPtr newInstance(
+ const std::vector<LogString>& options);
+
+ void format(const log4cxx::spi::LoggingEventPtr&event,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+};
+
+ }
+}
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/datepatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/datepatternconverter.h
new file mode 100644
index 0000000000..e556ef3de3
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/datepatternconverter.h
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_DATE_PATTERN_CONVERTER
+#define _LOG4CXX_PATTERN_DATE_PATTERN_CONVERTER
+
+#include <log4cxx/pattern/loggingeventpatternconverter.h>
+#include <log4cxx/helpers/cacheddateformat.h>
+#include <log4cxx/helpers/date.h>
+#include <vector>
+
+namespace log4cxx {
+ namespace pattern {
+
+
+/**
+ * Convert and format the event's date in a StringBuffer.
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT DatePatternConverter : public LoggingEventPatternConverter {
+ /**
+ * Date format.
+ */
+ log4cxx::helpers::DateFormatPtr df;
+
+ /**
+ * Private constructor.
+ * @param options options, may be null.
+ * @param logger logger for diagnostic messages, may be null.
+ */
+ DatePatternConverter(const OptionsList& options);
+
+ /**
+ * Obtains an instance of pattern converter.
+ * @param options options, may be null.
+ * @return instance of pattern converter.
+ */
+ static log4cxx::helpers::DateFormatPtr getDateFormat(const OptionsList& options);
+ public:
+ DECLARE_LOG4CXX_PATTERN(DatePatternConverter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(DatePatternConverter)
+ LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
+ END_LOG4CXX_CAST_MAP()
+
+
+ static PatternConverterPtr newInstance(
+ const std::vector<LogString>& options);
+ void format(const log4cxx::spi::LoggingEventPtr& event,
+ LogString& output,
+ log4cxx::helpers::Pool& p) const;
+ void format(const log4cxx::helpers::ObjectPtr& obj,
+ LogString& output,
+ log4cxx::helpers::Pool& p) const;
+
+ void format(const log4cxx::helpers::DatePtr& date,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+};
+
+LOG4CXX_PTR_DEF(DatePatternConverter);
+
+ }
+}
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/filedatepatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/filedatepatternconverter.h
new file mode 100644
index 0000000000..9e15239421
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/filedatepatternconverter.h
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_FILE_DATE_PATTERN_CONVERTER
+#define _LOG4CXX_PATTERN_FILE_DATE_PATTERN_CONVERTER
+
+#include <log4cxx/pattern/patternconverter.h>
+
+namespace log4cxx { namespace pattern {
+
+
+/**
+ * Formats an date by delegating to DatePatternConverter. The default
+ * date pattern for a %d specifier in a file name is different than
+ * the %d pattern in pattern layout.
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT FileDatePatternConverter {
+ /**
+ * Private constructor.
+ */
+ FileDatePatternConverter();
+
+public:
+ /**
+ * Obtains an instance of pattern converter.
+ * @param options options, may be null.
+ * @return instance of pattern converter.
+ */
+ static PatternConverterPtr newInstance(
+ const std::vector<LogString>& options);
+};
+}
+}
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/filelocationpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/filelocationpatternconverter.h
new file mode 100644
index 0000000000..9c053b32c6
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/filelocationpatternconverter.h
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_FILE_LOCATION_PATTERN_CONVERTER
+#define _LOG4CXX_PATTERN_FILE_LOCATION_PATTERN_CONVERTER
+
+#include <log4cxx/pattern/loggingeventpatternconverter.h>
+
+namespace log4cxx {
+ namespace pattern {
+
+
+/**
+ * Return the event's line location information in a StringBuffer.
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT FileLocationPatternConverter
+ : public LoggingEventPatternConverter {
+ /**
+ * Private constructor.
+ */
+ FileLocationPatternConverter();
+
+public:
+ DECLARE_LOG4CXX_PATTERN(FileLocationPatternConverter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(FileLocationPatternConverter)
+ LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Obtains an instance of pattern converter.
+ * @param options options, may be null.
+ * @return instance of pattern converter.
+ */
+ static PatternConverterPtr newInstance(
+ const std::vector<LogString>& options);
+
+ void format(const log4cxx::spi::LoggingEventPtr& event,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+};
+
+ }
+}
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/formattinginfo.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/formattinginfo.h
new file mode 100644
index 0000000000..c3eac5a887
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/formattinginfo.h
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPER_FORMATTING_INFO_H
+#define _LOG4CXX_HELPER_FORMATTING_INFO_H
+
+
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/logstring.h>
+
+namespace log4cxx {
+ namespace pattern {
+
+
+class FormattingInfo;
+typedef helpers::ObjectPtrT<FormattingInfo> FormattingInfoPtr;
+
+
+/**
+ * Modifies the output of a pattern converter for a specified minimum
+ * and maximum width and alignment.
+ *
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT FormattingInfo : public virtual log4cxx::helpers::ObjectImpl {
+
+ /**
+ * Minimum length.
+ */
+ const int minLength;
+
+ /**
+ * Maximum length.
+ */
+ const int maxLength;
+
+ /**
+ * Alignment.
+ */
+ const bool leftAlign;
+
+public:
+DECLARE_ABSTRACT_LOG4CXX_OBJECT(FormattingInfo)
+BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(FormattingInfo)
+END_LOG4CXX_CAST_MAP()
+
+
+ /**
+ * Creates new instance.
+ * @param leftAlign left align if true.
+ * @param minLength minimum length.
+ * @param maxLength maximum length.
+ */
+FormattingInfo(
+ const bool leftAlign, const int minLength, const int maxLength);
+
+ /**
+ * Gets default instance.
+ * @return default instance.
+ */
+static FormattingInfoPtr getDefault();
+
+ /**
+ * Determine if left aligned.
+ * @return true if left aligned.
+ */
+inline bool isLeftAligned() const {
+ return leftAlign;
+}
+
+ /**
+ * Get minimum length.
+ * @return minimum length.
+ */
+inline int getMinLength() const {
+ return minLength;
+}
+
+ /**
+ * Get maximum length.
+ * @return maximum length.
+ */
+inline int getMaxLength() const {
+ return maxLength;
+}
+
+ /**
+ * Adjust the content of the buffer based on the specified lengths and alignment.
+ *
+ * @param fieldStart start of field in buffer.
+ * @param buffer buffer to be modified.
+ */
+void format(const int fieldStart, LogString& buffer) const;
+};
+LOG4CXX_PTR_DEF(FormattingInfo);
+ }
+}
+
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/fulllocationpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/fulllocationpatternconverter.h
new file mode 100644
index 0000000000..bbd7c67856
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/fulllocationpatternconverter.h
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_FULL_LOCATION_PATTERN_CONVERTER
+#define _LOG4CXX_PATTERN_FULL_LOCATION_PATTERN_CONVERTER
+
+#include <log4cxx/pattern/loggingeventpatternconverter.h>
+
+namespace log4cxx {
+namespace pattern {
+
+
+/**
+ * Format the event's line location information.
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT FullLocationPatternConverter
+ : public LoggingEventPatternConverter {
+ /**
+ * Private constructor.
+ */
+ FullLocationPatternConverter();
+
+public:
+ DECLARE_LOG4CXX_PATTERN(FullLocationPatternConverter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(FullLocationPatternConverter)
+ LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Obtains an instance of pattern converter.
+ * @param options options, may be null.
+ * @return instance of pattern converter.
+ */
+ static PatternConverterPtr newInstance(
+ const std::vector<LogString>& options);
+
+ void format(const log4cxx::spi::LoggingEventPtr& event,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+};
+
+}
+}
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/integerpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/integerpatternconverter.h
new file mode 100644
index 0000000000..0667809b01
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/integerpatternconverter.h
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_INTEGER_PATTERN_CONVERTER
+#define _LOG4CXX_PATTERN_INTEGER_PATTERN_CONVERTER
+
+#include <log4cxx/pattern/patternconverter.h>
+
+namespace log4cxx { namespace pattern {
+
+
+/**
+ * Formats an integer.
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT IntegerPatternConverter : public PatternConverter {
+
+ /**
+ * Private constructor.
+ */
+ IntegerPatternConverter();
+
+public:
+ DECLARE_LOG4CXX_PATTERN(IntegerPatternConverter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(IntegerPatternConverter)
+ LOG4CXX_CAST_ENTRY_CHAIN(PatternConverter)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Obtains an instance of pattern converter.
+ * @param options options, may be null.
+ * @return instance of pattern converter.
+ */
+ static PatternConverterPtr newInstance(
+ const std::vector<LogString>& options);
+
+ void format(const log4cxx::helpers::ObjectPtr& obj,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+};
+
+LOG4CXX_PTR_DEF(IntegerPatternConverter);
+
+}
+}
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/levelpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/levelpatternconverter.h
new file mode 100644
index 0000000000..f0f0039384
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/levelpatternconverter.h
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_LEVEL_PATTERN_CONVERTER
+#define _LOG4CXX_PATTERN_LEVEL_PATTERN_CONVERTER
+
+#include <log4cxx/pattern/loggingeventpatternconverter.h>
+
+namespace log4cxx { namespace pattern {
+
+
+/**
+ * Return the event's level in a StringBuffer.
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT LevelPatternConverter : public LoggingEventPatternConverter {
+ /**
+ * Private constructor.
+ */
+ LevelPatternConverter();
+
+public:
+ DECLARE_LOG4CXX_PATTERN(LevelPatternConverter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(LevelPatternConverter)
+ LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Obtains an instance of pattern converter.
+ * @param options options, may be null.
+ * @return instance of pattern converter.
+ */
+ static PatternConverterPtr newInstance(
+ const std::vector<LogString>& options);
+
+ void format(const log4cxx::spi::LoggingEventPtr& event,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+
+ LogString getStyleClass(const log4cxx::helpers::ObjectPtr& e) const;
+};
+}
+}
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/linelocationpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/linelocationpatternconverter.h
new file mode 100644
index 0000000000..b34d828e0c
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/linelocationpatternconverter.h
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_LINE_LOCATION_PATTERN_CONVERTER
+#define _LOG4CXX_PATTERN_LINE_LOCATION_PATTERN_CONVERTER
+
+#include <log4cxx/pattern/loggingeventpatternconverter.h>
+
+namespace log4cxx {
+namespace pattern {
+
+
+/**
+ * Format the event's line location information.
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT LineLocationPatternConverter
+ : public LoggingEventPatternConverter {
+ /**
+ * Private constructor.
+ */
+ LineLocationPatternConverter();
+
+public:
+ DECLARE_LOG4CXX_PATTERN(LineLocationPatternConverter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(LineLocationPatternConverter)
+ LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Obtains an instance of pattern converter.
+ * @param options options, may be null.
+ * @return instance of pattern converter.
+ */
+ static PatternConverterPtr newInstance(
+ const std::vector<LogString>& options);
+
+ void format(const log4cxx::spi::LoggingEventPtr& event,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+};
+
+}
+}
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/lineseparatorpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/lineseparatorpatternconverter.h
new file mode 100644
index 0000000000..2d0a519741
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/lineseparatorpatternconverter.h
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_LINE_SEPARATOR_PATTERN_CONVERTER
+#define _LOG4CXX_PATTERN_LINE_SEPARATOR_PATTERN_CONVERTER
+
+#include <log4cxx/pattern/loggingeventpatternconverter.h>
+
+namespace log4cxx {
+namespace pattern {
+
+
+/**
+ * Formats a line separator.
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT LineSeparatorPatternConverter
+ : public LoggingEventPatternConverter {
+
+ /**
+ * Private constructor.
+ */
+ LineSeparatorPatternConverter();
+
+public:
+DECLARE_LOG4CXX_PATTERN(LineSeparatorPatternConverter)
+BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(LineSeparatorPatternConverter)
+ LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
+END_LOG4CXX_CAST_MAP()
+
+
+ /**
+ * Obtains an instance of pattern converter.
+ * @param options options, may be null.
+ * @return instance of pattern converter.
+ */
+ static PatternConverterPtr newInstance(
+ const std::vector<LogString>& options);
+
+ void format(const log4cxx::spi::LoggingEventPtr& event,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+
+ void format(const log4cxx::helpers::ObjectPtr& obj,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+};
+
+}
+}
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/literalpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/literalpatternconverter.h
new file mode 100644
index 0000000000..cbcba5121c
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/literalpatternconverter.h
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_LITERAL_PATTERN_CONVERTER_H
+#define _LOG4CXX_PATTERN_LITERAL_PATTERN_CONVERTER_H
+
+#include <log4cxx/pattern/loggingeventpatternconverter.h>
+
+namespace log4cxx {
+ namespace pattern {
+
+/**
+ * Formats a string literal.
+ *
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT LiteralPatternConverter : public LoggingEventPatternConverter {
+ /**
+ * String literal.
+ */
+ const LogString literal;
+
+ /**
+ * Create a new instance.
+ * @param literal string literal.
+ */
+ LiteralPatternConverter(const LogString& literal);
+
+
+public:
+ DECLARE_LOG4CXX_PATTERN(LiteralPatternConverter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(LiteralPatternConverter)
+ LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
+ END_LOG4CXX_CAST_MAP()
+
+ static PatternConverterPtr newInstance(const LogString& literal);
+
+ void format(const log4cxx::spi::LoggingEventPtr& event,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+
+ void format(const log4cxx::helpers::ObjectPtr& obj,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+};
+
+ }
+}
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/loggerpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/loggerpatternconverter.h
new file mode 100644
index 0000000000..a7d0093d68
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/loggerpatternconverter.h
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ #ifndef _LOG4CXX_PATTERN_LOGGER_PATTERN_CONVERTER_H
+ #define _LOG4CXX_PATTERN_LOGGER_PATTERN_CONVERTER_H
+
+
+#include <log4cxx/pattern/namepatternconverter.h>
+
+namespace log4cxx {
+ namespace pattern {
+
+
+/**
+ * Formats a logger name.
+ *
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT LoggerPatternConverter : public NamePatternConverter {
+
+ /**
+ * Private constructor.
+ * @param options options, may be null.
+ * @param logger logger for diagnostic messages, may be null.
+ */
+ LoggerPatternConverter(const std::vector<LogString>& options);
+
+public:
+ DECLARE_LOG4CXX_PATTERN(LoggerPatternConverter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(LoggerPatternConverter)
+ LOG4CXX_CAST_ENTRY_CHAIN(NamePatternConverter)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Obtains an instance of pattern converter.
+ * @param options options, may be null.
+ * @return instance of pattern converter.
+ */
+ static PatternConverterPtr newInstance(
+ const std::vector<LogString>& options);
+
+ void format(const log4cxx::spi::LoggingEventPtr& event,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+};
+
+ }
+}
+
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/loggingeventpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/loggingeventpatternconverter.h
new file mode 100644
index 0000000000..7118808c15
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/loggingeventpatternconverter.h
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_LOGGING_EVENT_PATTERN_CONVERTER_H
+#define _LOG4CXX_PATTERN_LOGGING_EVENT_PATTERN_CONVERTER_H
+
+#include <log4cxx/pattern/patternconverter.h>
+#include <log4cxx/spi/loggingevent.h>
+
+namespace log4cxx {
+
+ namespace pattern {
+ /**
+ * LoggingEventPatternConverter is a base class for pattern converters
+ * that can format information from instances of LoggingEvent.
+ *
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT LoggingEventPatternConverter : public PatternConverter {
+protected:
+ /**
+ * Constructs an instance of LoggingEventPatternConverter.
+ * @param name name of converter.
+ * @param style CSS style for output.
+ */
+ LoggingEventPatternConverter(
+ const LogString& name, const LogString& style);
+
+public:
+DECLARE_LOG4CXX_PATTERN(LoggingEventPatternConverter)
+BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(LoggingEventPatternConverter)
+ LOG4CXX_CAST_ENTRY_CHAIN(PatternConverter)
+END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Formats an event into a string buffer.
+ * @param event event to format, may not be null.
+ * @param toAppendTo string buffer to which the formatted event will be appended. May not be null.
+ * @param p pool for memory allocations needing during format.
+ */
+ virtual void format(
+ const log4cxx::spi::LoggingEventPtr& event,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const = 0;
+
+ void format(const log4cxx::helpers::ObjectPtr& obj,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+
+ /**
+ * Normally pattern converters are not meant to handle Exceptions although
+ * few pattern converters might.
+ *
+ * By examining the return values for this method, the containing layout will
+ * determine whether it handles throwables or not.
+
+ * @return true if this PatternConverter handles throwables
+ */
+ virtual bool handlesThrowable() const;
+};
+
+LOG4CXX_PTR_DEF(LoggingEventPatternConverter);
+
+ }
+}
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/messagepatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/messagepatternconverter.h
new file mode 100644
index 0000000000..04cd028073
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/messagepatternconverter.h
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_MESSAGE_PATTERN_CONVERTER
+#define _LOG4CXX_PATTERN_MESSAGE_PATTERN_CONVERTER
+
+#include <log4cxx/pattern/loggingeventpatternconverter.h>
+
+namespace log4cxx { namespace pattern {
+
+
+/**
+ * Formats the message of an logging event.
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT MessagePatternConverter : public LoggingEventPatternConverter {
+
+ /**
+ * Private constructor.
+ */
+ MessagePatternConverter();
+
+public:
+DECLARE_LOG4CXX_PATTERN(MessagePatternConverter)
+BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(MessagePatternConverter)
+ LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
+END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Obtains an instance of pattern converter.
+ * @param options options, may be null.
+ * @return instance of pattern converter.
+ */
+ static PatternConverterPtr newInstance(
+ const std::vector<LogString>& options);
+
+ void format(const log4cxx::spi::LoggingEventPtr& event,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+};
+}
+}
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/methodlocationpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/methodlocationpatternconverter.h
new file mode 100644
index 0000000000..da710c42f9
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/methodlocationpatternconverter.h
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_METHOD_LOCATION_PATTERN_CONVERTER
+#define _LOG4CXX_PATTERN_METHOD_LOCATION_PATTERN_CONVERTER
+
+#include <log4cxx/pattern/loggingeventpatternconverter.h>
+
+namespace log4cxx { namespace pattern {
+
+
+/**
+ * Return the event's line location information in a StringBuffer.
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT MethodLocationPatternConverter
+ : public LoggingEventPatternConverter {
+
+ /**
+ * Private constructor.
+ */
+ MethodLocationPatternConverter();
+
+public:
+DECLARE_LOG4CXX_PATTERN(MethodLocationPatternConverter)
+BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(MethodLocationPatternConverter)
+ LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
+END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Obtains an instance of MethodLocationPatternConverter.
+ * @param options options, may be null.
+ * @return instance of MethodLocationPatternConverter.
+ */
+ static PatternConverterPtr newInstance(
+ const std::vector<LogString>& options);
+
+ void format(const log4cxx::spi::LoggingEventPtr& event,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+};
+}
+}
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/nameabbreviator.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/nameabbreviator.h
new file mode 100644
index 0000000000..8eedaab079
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/nameabbreviator.h
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_NAME_ABBREVIATOR
+#define _LOG4CXX_PATTERN_NAME_ABBREVIATOR
+
+#include <log4cxx/logstring.h>
+#include <log4cxx/helpers/objectptr.h>
+#include <log4cxx/helpers/objectimpl.h>
+
+namespace log4cxx {
+ namespace pattern {
+
+ class NameAbbreviator;
+ LOG4CXX_PTR_DEF(NameAbbreviator);
+
+/**
+ * NameAbbreviator generates abbreviated logger and class names.
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT NameAbbreviator : public log4cxx::helpers::ObjectImpl {
+public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(NameAbbreviator)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(NameAbbreviator)
+ END_LOG4CXX_CAST_MAP()
+
+protected:
+ NameAbbreviator();
+
+public:
+ virtual ~NameAbbreviator();
+
+ /**
+ * Gets an abbreviator.
+ *
+ * For example, "%logger{2}" will output only 2 elements of the logger name,
+ * "%logger{1.}" will output only the first character of the non-final elements in the name,
+ * "%logger(1~.2~} will output the first character of the first element, two characters of
+ * the second and subsequent elements and will use a tilde to indicate abbreviated characters.
+ *
+ * @param pattern abbreviation pattern.
+ * @return abbreviator, will not be null.
+ */
+ static NameAbbreviatorPtr getAbbreviator(const LogString& pattern);
+
+ /**
+ * Gets default abbreviator.
+ *
+ * @return default abbreviator.
+ */
+ static NameAbbreviatorPtr getDefaultAbbreviator();
+
+ /**
+ * Abbreviates a name in a StringBuffer.
+ *
+ * @param nameStart starting position of name in buf.
+ * @param buf buffer, may not be null.
+ */
+ virtual void abbreviate(LogString::size_type nameStart, LogString& buf) const = 0;
+
+};
+ }
+}
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/namepatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/namepatternconverter.h
new file mode 100644
index 0000000000..68c7e56622
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/namepatternconverter.h
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_NAMED_PATTERN_CONVERTER_H
+#define _LOG4CXX_PATTERN_NAMED_PATTERN_CONVERTER_H
+
+#include <log4cxx/pattern/loggingeventpatternconverter.h>
+#include <log4cxx/pattern/nameabbreviator.h>
+
+#include <vector>
+
+namespace log4cxx {
+ namespace pattern {
+
+/**
+ *
+ * Base class for other pattern converters which can return only parts of their name.
+ *
+ */
+class LOG4CXX_EXPORT NamePatternConverter : public LoggingEventPatternConverter {
+ /**
+ * Abbreviator.
+ */
+ const NameAbbreviatorPtr abbreviator;
+
+public:
+DECLARE_LOG4CXX_PATTERN(NamePatternConverter)
+BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(NamePatternConverter)
+ LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
+END_LOG4CXX_CAST_MAP()
+
+
+protected:
+ /**
+ * Constructor.
+ * @param name name of converter.
+ * @param style style name for associated output.
+ * @param options options, may be null, first element will be interpreted as an abbreviation pattern.
+ */
+ NamePatternConverter(
+ const LogString& name,
+ const LogString& style,
+ const std::vector<LogString>& options);
+
+ /**
+ * Abbreviate name in string buffer.
+ * @param nameStart starting position of name to abbreviate.
+ * @param buf string buffer containing name.
+ */
+ void abbreviate(int nameStart, LogString& buf) const;
+
+private:
+ NameAbbreviatorPtr getAbbreviator(const std::vector<LogString>& options);
+};
+
+ }
+}
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/ndcpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/ndcpatternconverter.h
new file mode 100644
index 0000000000..a380a6201b
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/ndcpatternconverter.h
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_NDC_PATTERN_CONVERTER
+#define _LOG4CXX_PATTERN_NDC_PATTERN_CONVERTER
+
+#include <log4cxx/pattern/loggingeventpatternconverter.h>
+
+namespace log4cxx { namespace pattern {
+
+
+/**
+ * Return the event's NDC in a StringBuffer.
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT NDCPatternConverter : public LoggingEventPatternConverter {
+
+ /**
+ * Private constructor.
+ */
+ NDCPatternConverter();
+
+public:
+DECLARE_LOG4CXX_PATTERN(NDCPatternConverter)
+BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(NDCPatternConverter)
+ LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
+END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Obtains an instance of NDCPatternConverter.
+ * @param options options, may be null.
+ * @return instance of NDCPatternConverter.
+ */
+ static PatternConverterPtr newInstance(
+ const std::vector<LogString>& options);
+
+ void format(const log4cxx::spi::LoggingEventPtr& event,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+};
+}
+}
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/patternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/patternconverter.h
new file mode 100644
index 0000000000..f5ad14208b
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/patternconverter.h
@@ -0,0 +1,124 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_PATTERN_CONVERTER_H
+#define _LOG4CXX_PATTERN_PATTERN_CONVERTER_H
+
+
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/logstring.h>
+#include <vector>
+
+#ifdef _MSC_VER
+// disable identifier too wide for debugging warning
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+#define DECLARE_LOG4CXX_PATTERN(cls) DECLARE_ABSTRACT_LOG4CXX_OBJECT(cls)
+
+namespace log4cxx {
+ namespace pattern {
+
+ typedef std::vector<LogString> OptionsList;
+
+/**
+
+ <p>PatternConverter is an abstract class that provides the
+ formatting functionality that derived classes need.
+
+ <p>Conversion specifiers in a conversion patterns are parsed to
+ individual PatternConverters. Each of which is responsible for
+ converting an object in a converter specific manner.
+
+ */
+class LOG4CXX_EXPORT PatternConverter : public virtual log4cxx::helpers::ObjectImpl {
+
+ /**
+ * Converter name.
+ */
+ const LogString name;
+
+ /**
+ * Converter style name.
+ */
+ const LogString style;
+
+
+protected:
+ /**
+ * Create a new pattern converter.
+ * @param name name for pattern converter.
+ * @param style CSS style for formatted output.
+ */
+ PatternConverter(const LogString& name,
+ const LogString& style);
+
+ virtual ~PatternConverter();
+
+public:
+ DECLARE_LOG4CXX_PATTERN(PatternConverter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(PatternConverter)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Formats an object into a string buffer.
+ * @param obj event to format, may not be null.
+ * @param toAppendTo string buffer to which the formatted event will be appended. May not be null.
+ * @param p pool for any allocations necessary during formatting.
+ */
+ virtual void format(const log4cxx::helpers::ObjectPtr& obj,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const = 0;
+
+ /**
+ * This method returns the name of the conversion pattern.
+ *
+ * The name can be useful to certain Layouts such as HTMLLayout.
+ *
+ * @return the name of the conversion pattern
+ */
+ LogString getName() const;
+
+ /**
+ * This method returns the CSS style class that should be applied to
+ * the LoggingEvent passed as parameter, which can be null.
+ *
+ * This information is currently used only by HTMLLayout.
+ *
+ * @param e null values are accepted
+ * @return the name of the conversion pattern
+ */
+ virtual LogString getStyleClass(const log4cxx::helpers::ObjectPtr& e) const;
+
+protected:
+/**
+* Appends content in the locale code page to a LogString.
+* @param toAppendTo string to which content is appended.
+* @param src content.
+*/
+ static void append(LogString& toAppendTo, const std::string& src);
+};
+
+
+LOG4CXX_PTR_DEF(PatternConverter);
+
+ }
+}
+
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/patternparser.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/patternparser.h
new file mode 100644
index 0000000000..2a5113a5c4
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/patternparser.h
@@ -0,0 +1,171 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef _LOG4CXX_HELPER_PATTERN_CONVERTER_H
+#define _LOG4CXX_HELPER_PATTERN_CONVERTER_H
+
+#if defined(_MSC_VER)
+#pragma warning (push)
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+
+#include <map>
+#include <vector>
+#include <log4cxx/helpers/class.h>
+#include <log4cxx/pattern/patternconverter.h>
+#include <log4cxx/pattern/formattinginfo.h>
+
+namespace log4cxx {
+ namespace pattern {
+
+typedef PatternConverterPtr (*PatternConstructor)(const std::vector<LogString>& options);
+typedef std::map<LogString, PatternConstructor> PatternMap;
+
+
+// Contributors: Nelson Minar <(nelson@monkey.org>
+// Igor E. Poteryaev <jah@mail.ru>
+// Reinhard Deschler <reinhard.deschler@web.de>
+
+/**
+ * Most of the work of the {@link log4cxx::PatternLayout PatternLayout} class
+ * is delegated to the PatternParser class.
+ * <p>It is this class that parses conversion patterns and creates
+ * a chained list of {@link PatternConverter PatternConverters}.
+ *
+ *
+*/
+class LOG4CXX_EXPORT PatternParser {
+ /**
+ * Escape character for format specifier.
+ */
+ static const logchar ESCAPE_CHAR;
+
+ enum {
+ LITERAL_STATE = 0,
+ CONVERTER_STATE = 1,
+ DOT_STATE = 3,
+ MIN_STATE = 4,
+ MAX_STATE = 5
+ };
+
+ /**
+ * Private constructor.
+ */
+ PatternParser();
+
+private:
+ /** Extract the converter identifier found at position i.
+ *
+ * After this function returns, the variable i will point to the
+ * first char after the end of the converter identifier.
+ *
+ * If i points to a char which is not a character acceptable at the
+ * start of a unicode identifier, the value null is returned.
+ *
+ * @param lastChar last processed character.
+ * @param pattern format string.
+ * @param i current index into pattern format.
+ * @param convBuf buffer to receive conversion specifier.
+ * @param currentLiteral literal to be output in case format specifier in unrecognized.
+ * @return position in pattern after converter.
+ */
+ static int extractConverter(
+ logchar lastChar, const LogString& pattern,
+ LogString::size_type i, LogString& convBuf,
+ LogString& currentLiteral);
+
+ /**
+ * Extract options.
+ * @param pattern conversion pattern.
+ * @param i start of options.
+ * @param options array to receive extracted options
+ * @return position in pattern after options.
+ */
+ static int extractOptions(const LogString& pattern, LogString::size_type i,
+ std::vector<LogString>& options);
+
+public:
+ /**
+ * Parse a format specifier.
+ * @param pattern pattern to parse.
+ * @param patternConverters list to receive pattern converters.
+ * @param formattingInfos list to receive field specifiers corresponding to pattern converters.
+ * @param rules map of stock pattern converters keyed by format specifier.
+ */
+ static void parse(
+ const LogString& pattern,
+ std::vector<PatternConverterPtr>& patternConverters,
+ std::vector<FormattingInfoPtr>& formattingInfos,
+ const PatternMap& rules);
+
+private:
+ /**
+ * Creates a new PatternConverter.
+ *
+ *
+ * @param converterId converterId.
+ * @param currentLiteral literal to be used if converter is unrecognized or following converter
+ * if converterId contains extra characters.
+ * @param rules map of stock pattern converters keyed by format specifier.
+ * @param options converter options.
+ * @return converter or null.
+ */
+ static PatternConverterPtr createConverter(
+ const LogString& converterId,
+ LogString& currentLiteral,
+ const PatternMap& rules,
+ std::vector<LogString>& options);
+
+ /**
+ * Processes a format specifier sequence.
+ *
+ * @param c initial character of format specifier.
+ * @param pattern conversion pattern
+ * @param i current position in conversion pattern.
+ * @param currentLiteral current literal.
+ * @param formattingInfo current field specifier.
+ * @param rules map of stock pattern converters keyed by format specifier.
+ * @param patternConverters list to receive parsed pattern converter.
+ * @param formattingInfos list to receive corresponding field specifier.
+ * @return position after format specifier sequence.
+ */
+ static int finalizeConverter(
+ logchar c, const LogString& pattern, int i,
+ LogString& currentLiteral, const FormattingInfoPtr& formattingInfo,
+ const PatternMap& rules,
+ std::vector<PatternConverterPtr>& patternConverters,
+ std::vector<FormattingInfoPtr>& formattingInfos);
+
+ static bool isUnicodeIdentifierStart(logchar c);
+ static bool isUnicodeIdentifierPart(logchar c);
+
+
+};
+
+}
+}
+
+
+#if defined(_MSC_VER)
+#pragma warning (pop)
+#endif
+
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/propertiespatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/propertiespatternconverter.h
new file mode 100644
index 0000000000..bbe81c1cee
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/propertiespatternconverter.h
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_PROPERTIES_PATTERN_CONVERTER
+#define _LOG4CXX_PATTERN_PROPERTIES_PATTERN_CONVERTER
+
+#include <log4cxx/pattern/loggingeventpatternconverter.h>
+
+namespace log4cxx { namespace pattern {
+
+
+/**
+ * Able to handle the contents of the LoggingEvent's Property bundle and either
+ * output the entire contents of the properties in a similar format to the
+ * java.util.Hashtable.toString(), or to output the value of a specific key
+ * within the property bundle
+ * when this pattern converter has the option set.
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT PropertiesPatternConverter
+ : public LoggingEventPatternConverter {
+ /**
+ * Name of property to output.
+ */
+ const LogString option;
+
+ /**
+ * Private constructor.
+ * @param options options, may be null.
+ * @param logger logger for diagnostic messages, may be null.
+ */
+ PropertiesPatternConverter(const LogString& name, const LogString& option);
+
+ public:
+ DECLARE_LOG4CXX_PATTERN(PropertiesPatternConverter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(PropertiesPatternConverter)
+ LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Obtains an instance of PropertiesPatternConverter.
+ * @param options options, may be null or first element contains name of property to format.
+ * @return instance of PropertiesPatternConverter.
+ */
+ static PatternConverterPtr newInstance(
+ const std::vector<LogString>& options);
+ void format(const log4cxx::spi::LoggingEventPtr& event,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+};
+}
+}
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/relativetimepatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/relativetimepatternconverter.h
new file mode 100644
index 0000000000..326b501ae4
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/relativetimepatternconverter.h
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_RELATIVE_TIME_PATTERN_CONVERTER
+#define _LOG4CXX_PATTERN_RELATIVE_TIME_PATTERN_CONVERTER
+
+#include <log4cxx/pattern/loggingeventpatternconverter.h>
+
+namespace log4cxx { namespace pattern {
+
+
+/**
+ * Format the relative time in milliseconds.
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT RelativeTimePatternConverter : public LoggingEventPatternConverter {
+public:
+DECLARE_LOG4CXX_PATTERN(RelativeTimePatternConverter)
+BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(RelativeTimePatternConverter)
+ LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
+END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Private constructor.
+ */
+ RelativeTimePatternConverter();
+
+ /**
+ * Obtains an instance of RelativeTimePatternConverter.
+ * @param options options, currently ignored, may be null.
+ * @return instance of RelativeTimePatternConverter.
+ */
+ static PatternConverterPtr newInstance(
+ const std::vector<LogString>& options);
+
+ void format(const log4cxx::spi::LoggingEventPtr& event,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+};
+}
+}
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/threadpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/threadpatternconverter.h
new file mode 100644
index 0000000000..f0baff9e1a
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/threadpatternconverter.h
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_THREAD_PATTERN_CONVERTER
+#define _LOG4CXX_PATTERN_THREAD_PATTERN_CONVERTER
+
+#include <log4cxx/pattern/loggingeventpatternconverter.h>
+
+namespace log4cxx { namespace pattern {
+
+
+/**
+ * Formats the event thread name.
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT ThreadPatternConverter : public LoggingEventPatternConverter {
+ /**
+ * Private constructor.
+ */
+ ThreadPatternConverter();
+
+public:
+DECLARE_LOG4CXX_PATTERN(ThreadPatternConverter)
+BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(ThreadPatternConverter)
+ LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
+END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Obtains an instance of ThreadPatternConverter.
+ * @param options options, currently ignored, may be null.
+ * @return instance of ThreadPatternConverter.
+ */
+ static PatternConverterPtr newInstance(
+ const std::vector<LogString>& options);
+
+ void format(const log4cxx::spi::LoggingEventPtr& event,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+};
+}
+}
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/throwableinformationpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/throwableinformationpatternconverter.h
new file mode 100644
index 0000000000..aa8e5238ea
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/throwableinformationpatternconverter.h
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_THROWABLE_INFORMATION_PATTERN_CONVERTER
+#define _LOG4CXX_PATTERN_THROWABLE_INFORMATION_PATTERN_CONVERTER
+
+#include <log4cxx/pattern/loggingeventpatternconverter.h>
+
+namespace log4cxx { namespace pattern {
+
+
+/**
+ * Outputs the ThrowableInformation portion of the LoggingiEvent as a full stacktrace
+ * unless this converter's option is 'short', where it just outputs the first line of the trace.
+ *
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT ThrowableInformationPatternConverter
+ : public LoggingEventPatternConverter {
+ /**
+ * If "short", only first line of throwable report will be formatted.
+ */
+ const bool shortReport;
+
+ /**
+ * Private constructor.
+ */
+ ThrowableInformationPatternConverter(bool shortReport);
+
+public:
+DECLARE_LOG4CXX_PATTERN(ThrowableInformationPatternConverter)
+BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(ThrowableInformationPatternConverter)
+ LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
+END_LOG4CXX_CAST_MAP()
+
+
+ /**
+ * Gets an instance of the class.
+ * @param options pattern options, may be null. If first element is "short",
+ * only the first line of the throwable will be formatted.
+ * @return instance of class.
+ */
+ static PatternConverterPtr newInstance(
+ const std::vector<LogString>& options);
+ void format(const log4cxx::spi::LoggingEventPtr& event,
+ LogString& toAppendTo,
+ log4cxx::helpers::Pool& p) const;
+
+ /**
+ * This converter obviously handles throwables.
+ * @return true.
+ */
+ bool handlesThrowable() const;
+};
+}
+}
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/patternlayout.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/patternlayout.h
new file mode 100644
index 0000000000..55d6eb5b91
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/patternlayout.h
@@ -0,0 +1,409 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PATTERN_LAYOUT_H
+#define _LOG4CXX_PATTERN_LAYOUT_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+
+#include <log4cxx/layout.h>
+#include <log4cxx/pattern/loggingeventpatternconverter.h>
+#include <log4cxx/pattern/formattinginfo.h>
+#include <log4cxx/pattern/patternparser.h>
+
+namespace log4cxx
+{
+
+ /**
+
+ A flexible layout configurable with pattern string.
+
+ <p>The goal of this class is to #format a {@link
+ spi::LoggingEvent LoggingEvent} and return the results as a string.
+ The results depend on the <em>conversion pattern</em>.
+
+ <p>The conversion pattern is closely related to the conversion
+ pattern of the printf function in C. A conversion pattern is
+ composed of literal text and format control expressions called
+ <em>conversion specifiers</em>.
+
+ <p><i>You are free to insert any literal text within the conversion
+ pattern.</i>
+
+ <p>Each conversion specifier starts with a percent sign (\%) and is
+ followed by optional <em>format modifiers</em> and a <em>conversion
+ character</em>. The conversion character specifies the type of
+ data, e.g. logger, level, date, thread name. The format
+ modifiers control such things as field width, padding, left and
+ right justification. The following is a simple example.
+
+ <p>Let the conversion pattern be <b>"\%-5p [\%t]: \%m\%n"</b> and assume
+ that the log4cxx environment was set to use a PatternLayout. Then the
+ statements
+ <pre>
+ LoggerPtr root = Logger::getRoot();
+ root->debug("Message 1");
+ root->warn("Message 2");
+ </pre>
+ would yield the output
+ <pre>
+ DEBUG [main]: Message 1
+ WARN [main]: Message 2
+ </pre>
+
+ <p>Note that there is no explicit separator between text and
+ conversion specifiers. The pattern parser knows when it has reached
+ the end of a conversion specifier when it reads a conversion
+ character. In the example above the conversion specifier
+ <b>\%-5p</b> means the level of the logging event should be left
+ justified to a width of five characters.
+
+ The recognized conversion characters are
+
+ <p>
+ <table border="1" CELLPADDING="8">
+ <tr>
+ <td align=center><b>Conversion Character</b></td>
+ <td align=center><b>Effect</b></td>
+ </tr>
+
+ <tr>
+ <td align=center><b>c</b></td>
+
+ <td>Used to output the logger of the logging event. The
+ logger conversion specifier can be optionally followed by
+ <em>precision specifier</em>, that is a decimal constant in
+ brackets.
+
+ <p>If a precision specifier is given, then only the corresponding
+ number of right most components of the logger name will be
+ printed. By default the logger name is printed in full.
+
+ <p>For example, for the logger name "a.b.c" the pattern
+ <b>\%c{2}</b> will output "b.c".
+
+ </td>
+ </tr>
+
+ <tr> <td align=center><b>d</b></td> <td>Used to output the date of
+ the logging event. The date conversion specifier may be
+ followed by a set of braces containing a
+ date and time pattern string compatible with java.text.SimpleDateFormat,
+ <em>ABSOLUTE</em>, <em>DATE</em> or <em>ISO8601</em>.
+ For example, <b>%d{HH:mm:ss,SSS}</b>,
+ <b>%d{dd&nbsp;MMM&nbsp;yyyy&nbsp;HH:mm:ss,SSS}</b> or
+ <b>%d{DATE}</b>. If no date format specifier is given then
+ ISO8601 format is assumed.
+ </td>
+ </tr>
+
+ <tr>
+ <td align=center><b>F</b></td>
+
+ <td>Used to output the file name where the logging request was
+ issued.
+
+ </tr>
+
+ <tr>
+ <td align=center><b>l</b></td>
+
+ <td>Used to output location information of the caller which generated
+ the logging event.
+
+ </td>
+ </tr>
+
+ <tr>
+ <td align=center><b>L</b></td>
+
+ <td>Used to output the line number from where the logging request
+ was issued.
+ </tr>
+
+
+ <tr>
+ <td align=center><b>m</b></td>
+ <td>Used to output the application supplied message associated with
+ the logging event.</td>
+ </tr>
+
+ <tr>
+ <td align=center><b>n</b></td>
+
+ <td>Outputs the platform dependent line separator character or
+ characters.
+
+ <p>This conversion character offers practically the same
+ performance as using non-portable line separator strings such as
+ "\n", or "\r\n". Thus, it is the preferred way of specifying a
+ line separator.
+
+
+ </tr>
+
+ <tr>
+ <td align=center><b>p</b></td>
+ <td>Used to output the level of the logging event.</td>
+ </tr>
+
+ <tr>
+
+ <td align=center><b>r</b></td>
+
+ <td>Used to output the number of milliseconds elapsed since the start
+ of the application until the creation of the logging event.</td>
+ </tr>
+
+
+ <tr>
+ <td align=center><b>t</b></td>
+
+ <td>Used to output the name of the thread that generated the
+ logging event.</td>
+
+ </tr>
+
+ <tr>
+
+ <td align=center><b>x</b></td>
+
+ <td>Used to output the NDC (nested diagnostic context) associated
+ with the thread that generated the logging event.
+ </td>
+ </tr>
+
+
+ <tr>
+ <td align=center><b>X</b></td>
+
+ <td>
+
+ <p>Used to output the MDC (mapped diagnostic context) associated
+ with the thread that generated the logging event. The <b>X</b>
+ conversion character <em>must</em> be followed by the key for the
+ map placed between braces, as in <b>\%X{clientNumber}</b> where
+ <code>clientNumber</code> is the key. The value in the MDC
+ corresponding to the key will be output.</p>
+
+ <p>See MDC class for more details.
+ </p>
+
+ </td>
+ </tr>
+
+ <tr>
+
+ <td align=center><b>\%</b></td>
+
+ <td>The sequence \%\% outputs a single percent sign.
+ </td>
+ </tr>
+
+ </table>
+
+ <p>By default the relevant information is output as is. However,
+ with the aid of format modifiers it is possible to change the
+ minimum field width, the maximum field width and justification.
+
+ <p>The optional format modifier is placed between the percent sign
+ and the conversion character.
+
+ <p>The first optional format modifier is the <em>left justification
+ flag</em> which is just the minus (-) character. Then comes the
+ optional <em>minimum field width</em> modifier. This is a decimal
+ constant that represents the minimum number of characters to
+ output. If the data item requires fewer characters, it is padded on
+ either the left or the right until the minimum width is
+ reached. The default is to pad on the left (right justify) but you
+ can specify right padding with the left justification flag. The
+ padding character is space. If the data item is larger than the
+ minimum field width, the field is expanded to accommodate the
+ data. The value is never truncated.
+
+ <p>This behavior can be changed using the <em>maximum field
+ width</em> modifier which is designated by a period followed by a
+ decimal constant. If the data item is longer than the maximum
+ field, then the extra characters are removed from the
+ <em>beginning</em> of the data item and not from the end. For
+ example, it the maximum field width is eight and the data item is
+ ten characters long, then the first two characters of the data item
+ are dropped. This behavior deviates from the printf function in C
+ where truncation is done from the end.
+
+ <p>Below are various format modifier examples for the logger
+ conversion specifier.
+
+ <p>
+ <TABLE BORDER=1 CELLPADDING=8>
+ <tr>
+ <td align=center><b>Format modifier</b></td>
+ <td align=center><b>left justify</b></td>
+ <td align=center><b>minimum width</b></td>
+ <td align=center><b>maximum width</b></td>
+ <td align=center><b>comment</b></td>
+ </tr>
+
+ <tr>
+ <td align=center>\%20c</td>
+ <td align=center>false</td>
+ <td align=center>20</td>
+ <td align=center>none</td>
+
+ <td>Left pad with spaces if the logger name is less than 20
+ characters long.
+
+ <tr> <td align=center>\%-20c</td> <td align=center>true</td> <td
+ align=center>20</td> <td align=center>none</td> <td>Right pad with
+ spaces if the logger name is less than 20 characters long.
+
+ <tr>
+ <td align=center>\%.30c</td>
+ <td align=center>NA</td>
+ <td align=center>none</td>
+ <td align=center>30</td>
+
+ <td>Truncate from the beginning if the logger name is longer than 30
+ characters.
+
+ <tr>
+ <td align=center>\%20.30c</td>
+ <td align=center>false</td>
+ <td align=center>20</td>
+ <td align=center>30</td>
+
+ <td>Left pad with spaces if the logger name is shorter than 20
+ characters. However, if logger name is longer than 30 characters,
+ then truncate from the beginning.
+
+ <tr>
+ <td align=center>\%-20.30c</td>
+ <td align=center>true</td>
+ <td align=center>20</td>
+ <td align=center>30</td>
+
+ <td>Right pad with spaces if the logger name is shorter than 20
+ characters. However, if logger name is longer than 30 characters,
+ then truncate from the beginning.
+
+ </table>
+
+ <p>Below are some examples of conversion patterns.
+
+ <p><b>\%r [\%t] \%-5p \%c \%x - \%m\n</b>
+ <p>This is essentially the TTCC layout.
+
+ <p><b>\%-6r [\%15.15t] \%-5p \%30.30c \%x - \%m\n</b>
+
+ <p>Similar to the TTCC layout except that the relative time is
+ right padded if less than 6 digits, thread name is right padded if
+ less than 15 characters and truncated if longer and the logger
+ name is left padded if shorter than 30 characters and truncated if
+ longer.
+
+ <p>The above text is largely inspired from Peter A. Darnell and
+ Philip E. Margolis' highly recommended book "C -- a Software
+ Engineering Approach", ISBN 0-387-97389-3.
+ */
+ class LOG4CXX_EXPORT PatternLayout : public Layout
+ {
+ /**
+ * Conversion pattern.
+ */
+ LogString conversionPattern;
+
+ /**
+ * Pattern converters.
+ */
+ LOG4CXX_LIST_DEF(LoggingEventPatternConverterList, log4cxx::pattern::LoggingEventPatternConverterPtr);
+ LoggingEventPatternConverterList patternConverters;
+
+ /**
+ * Field widths and alignment corresponding to pattern converters.
+ */
+ LOG4CXX_LIST_DEF(FormattingInfoList, log4cxx::pattern::FormattingInfoPtr);
+ FormattingInfoList patternFields;
+
+
+ public:
+ DECLARE_LOG4CXX_OBJECT(PatternLayout)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(PatternLayout)
+ LOG4CXX_CAST_ENTRY_CHAIN(Layout)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ Does nothing
+ */
+ PatternLayout();
+
+ /**
+ Constructs a PatternLayout using the supplied conversion pattern.
+ */
+ PatternLayout(const LogString& pattern);
+
+ /**
+ Set the <b>ConversionPattern</b> option. This is the string which
+ controls formatting and consists of a mix of literal content and
+ conversion specifiers.
+ */
+ void setConversionPattern(const LogString& conversionPattern);
+
+ /**
+ Returns the value of the <b>ConversionPattern</b> option.
+ */
+ inline LogString getConversionPattern() const
+ { return conversionPattern; }
+
+ /**
+ Call createPatternParser
+ */
+ virtual void activateOptions(log4cxx::helpers::Pool& p);
+
+ virtual void setOption(const LogString& option, const LogString& value);
+
+ /**
+ The PatternLayout does not handle the throwable contained within
+ {@link spi::LoggingEvent LoggingEvents}. Thus, it returns
+ <code>true</code>.
+ */
+ virtual bool ignoresThrowable() const
+ { return true; }
+
+ /**
+ Produces a formatted string as specified by the conversion pattern.
+ */
+ virtual void format(LogString& output,
+ const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& pool) const;
+
+ protected:
+ virtual log4cxx::pattern::PatternMap getFormatSpecifiers();
+ };
+ LOG4CXX_PTR_DEF(PatternLayout);
+} // namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+
+#endif //_LOG4CXX_PATTERN_LAYOUT_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/portability.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/portability.h
new file mode 100644
index 0000000000..ea24f5d153
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/portability.h
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PORTABILITY_H
+#define _LOG4CXX_PORTABILITY_H
+
+//
+// Obsolete file
+//
+
+#endif //_LOG4CXX_PORTABILITY_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/Makefile.am
new file mode 100644
index 0000000000..3a896ea3e6
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/Makefile.am
@@ -0,0 +1,23 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+privateincdir = $(includedir)/log4cxx/private
+privateinc_HEADERS= $(top_builddir)/src/main/include/log4cxx/private/*.h log4cxx_private.h
+DISTCLEANFILES = log4cxx_private.h
+EXTRA_DIST = log4cxx_private.hw
+
+dist-hook:
+ -rm -f $(distdir)/log4cxx_private.h
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/Makefile.in
new file mode 100644
index 0000000000..153e4d923c
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/Makefile.in
@@ -0,0 +1,457 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = src/main/include/log4cxx/private
+DIST_COMMON = $(privateinc_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in $(srcdir)/log4cxx_private.h.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \
+ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES = log4cxx_private.h
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(privateincdir)"
+privateincHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(privateinc_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+APR_LIBS = @APR_LIBS@
+APU_LIBS = @APU_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CFSTRING_API = @CFSTRING_API@
+CHARSET_EBCDIC = @CHARSET_EBCDIC@
+CHARSET_ISO88591 = @CHARSET_ISO88591@
+CHARSET_USASCII = @CHARSET_USASCII@
+CHARSET_UTF8 = @CHARSET_UTF8@
+CHAR_API = @CHAR_API@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_ODBC = @CPPFLAGS_ODBC@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOC_FALSE = @DOC_FALSE@
+DOC_TRUE = @DOC_TRUE@
+DOT = @DOT@
+DOXYGEN = @DOXYGEN@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HAS_FWIDE = @HAS_FWIDE@
+HAS_LIBESMTP = @HAS_LIBESMTP@
+HAS_MBSRTOWCS = @HAS_MBSRTOWCS@
+HAS_ODBC = @HAS_ODBC@
+HAS_STD_LOCALE = @HAS_STD_LOCALE@
+HAS_SYSLOG = @HAS_SYSLOG@
+HAS_WCHAR_T = @HAS_WCHAR_T@
+HAS_WCSTOMBS = @HAS_WCSTOMBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IODBC_CONFIG = @IODBC_CONFIG@
+LATEX_DOC_FALSE = @LATEX_DOC_FALSE@
+LATEX_DOC_TRUE = @LATEX_DOC_TRUE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBS_ODBC = @LIBS_ODBC@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@
+LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@
+LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@
+LTLIBOBJS = @LTLIBOBJS@
+LT_VERSION = @LT_VERSION@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+UNICHAR_API = @UNICHAR_API@
+VERSION = @VERSION@
+WCHAR_T_API = @WCHAR_T_API@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+base_dir = @base_dir@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+enable_dot = @enable_dot@
+enable_html_docs = @enable_html_docs@
+enable_latex_docs = @enable_latex_docs@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+manual_dest = @manual_dest@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+privateincdir = $(includedir)/log4cxx/private
+privateinc_HEADERS = $(top_builddir)/src/main/include/log4cxx/private/*.h log4cxx_private.h
+DISTCLEANFILES = log4cxx_private.h
+EXTRA_DIST = log4cxx_private.hw
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/private/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/main/include/log4cxx/private/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+log4cxx_private.h: $(top_builddir)/config.status $(srcdir)/log4cxx_private.h.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+install-privateincHEADERS: $(privateinc_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(privateincdir)" || $(mkdir_p) "$(DESTDIR)$(privateincdir)"
+ @list='$(privateinc_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(privateincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(privateincdir)/$$f'"; \
+ $(privateincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(privateincdir)/$$f"; \
+ done
+
+uninstall-privateincHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(privateinc_HEADERS)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(privateincdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(privateincdir)/$$f"; \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ $(mkdir_p) $(distdir)/$(top_builddir)/src/main/include/log4cxx/private
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-hook
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(privateincdir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-privateincHEADERS
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-privateincHEADERS
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool ctags dist-hook distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-info-am install-man install-privateincHEADERS \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-info-am \
+ uninstall-privateincHEADERS
+
+
+dist-hook:
+ -rm -f $(distdir)/log4cxx_private.h
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/log4cxx_private.h.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/log4cxx_private.h.in
new file mode 100644
index 0000000000..e21f4d807d
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/log4cxx_private.h.in
@@ -0,0 +1,56 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef LOG4CXX_PRIVATE_LOG4CXX_H
+#define LOG4CXX_PRIVATE_LOG4CXX_H
+
+/* GENERATED FILE WARNING! DO NOT EDIT log4cxx_private.h
+ *
+ * You must modify log4cxx_private.h.in instead.
+ *
+ */
+
+#include <log4cxx/log4cxx.h>
+
+#if !defined(LOG4CXX) && !defined(LOG4CXX_TEST)
+#error "log4cxx/private/log4cxx_private.h should only be used within log4cxx implementation or tests"
+#endif
+
+#define LOG4CXX_RETURN_AFTER_THROW 0
+
+#define LOG4CXX_HAS_STD_LOCALE @HAS_STD_LOCALE@
+#define LOG4CXX_FORCE_WIDE_CONSOLE 0
+#define LOG4CXX_FORCE_BYTE_CONSOLE 0
+#define LOG4CXX_MEMSET_IOS_BASE 0
+#define LOG4CXX_HAVE_ODBC @HAS_ODBC@
+#define LOG4CXX_HAS_MBSRTOWCS @HAS_MBSRTOWCS@
+#define LOG4CXX_HAS_WCSTOMBS @HAS_WCSTOMBS@
+#define LOG4CXX_HAS_FWIDE @HAS_FWIDE@
+
+#define LOG4CXX_CHARSET_UTF8 @CHARSET_UTF8@
+#define LOG4CXX_CHARSET_ISO88591 @CHARSET_ISO88591@
+#define LOG4CXX_CHARSET_USASCII @CHARSET_USASCII@
+#define LOG4CXX_CHARSET_EBCDIC @CHARSET_EBCDIC@
+
+#define LOG4CXX_HAVE_LIBESMTP @HAS_LIBESMTP@
+#define LOG4CXX_HAVE_SYSLOG @HAS_SYSLOG@
+
+#define LOG4CXX_WIN32_THREAD_FMTSPEC "0x%.8x"
+#define LOG4CXX_APR_THREAD_FMTSPEC "0x%pt"
+
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/log4cxx_private.hw b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/log4cxx_private.hw
new file mode 100644
index 0000000000..e7c84174c4
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/log4cxx_private.hw
@@ -0,0 +1,84 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef LOG4CXX_PRIVATE_LOG4CXX_H
+#define LOG4CXX_PRIVATE_LOG4CXX_H
+
+
+/* GENERATED FILE WARNING! DO NOT EDIT log4cxx.h
+ *
+ * You must modify log4cxx.hw instead.
+ *
+ *
+ * This is the Win32 specific version of log4cxx.h.
+ */
+
+#include <log4cxx/log4cxx.h>
+
+#if !defined(LOG4CXX) && !defined(LOG4CXX_TEST)
+#error "log4cxx/private/log4cxx.h should only be used within log4cxx and tests implementation"
+#endif
+
+
+#if !defined(__BORLANDC__)
+#define LOG4CXX_RETURN_AFTER_THROW 1
+#else
+#define LOG4CXX_RETURN_AFTER_THROW 0
+#endif
+
+#if defined(_WIN32_WCE)
+#define LOG4CXX_HAS_STD_LOCALE 0
+#else
+#define LOG4CXX_HAS_STD_LOCALE 1
+#endif
+
+#define LOG4CXX_FORCE_WIDE_CONSOLE 1
+#define LOG4CXX_FORCE_BYTE_CONSOLE 0
+
+
+#if defined(_MSC_VER)
+#define LOG4CXX_MEMSET_IOS_BASE 1
+#endif
+
+#if !defined(_WIN32_WCE)
+#define LOG4CXX_HAVE_ODBC 1
+#if defined(__BORLANDC__)
+#define LOG4CXX_HAS_MBSRTOWCS 0
+#else
+#define LOG4CXX_HAS_MBSRTOWCS 1
+#endif
+#else
+#define LOG4CXX_HAVE_ODBC 0
+#define LOG4CXX_HAS_MBSRTOWCS 0
+#endif
+
+#define LOG4CXX_HAS_FWIDE 1
+#define LOG4CXX_HAS_WCSTOMBS 1
+
+#define LOG4CXX_CHARSET_UTF8 0
+#define LOG4CXX_CHARSET_ISO88591 0
+#define LOG4CXX_CHARSET_USASCII 0
+#define LOG4CXX_CHARSET_EBCDIC 0
+
+
+#define LOG4CXX_HAVE_LIBESMTP 0
+#define LOG4CXX_HAVE_SYSLOG 0
+
+#define LOG4CXX_WIN32_THREAD_FMTSPEC "0x%.8x"
+#define LOG4CXX_APR_THREAD_FMTSPEC "0x%pt"
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/propertyconfigurator.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/propertyconfigurator.h
new file mode 100644
index 0000000000..0271e2d826
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/propertyconfigurator.h
@@ -0,0 +1,395 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PROPERTY_CONFIGURATOR_H
+#define _LOG4CXX_PROPERTY_CONFIGURATOR_H
+
+#if defined(_MSC_VER)
+#pragma warning (push)
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/helpers/objectptr.h>
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/logstring.h>
+#include <log4cxx/spi/configurator.h>
+#include <map>
+
+#include <log4cxx/file.h>
+
+namespace log4cxx
+{
+ class Logger;
+ typedef helpers::ObjectPtrT<Logger> LoggerPtr;
+
+ class Appender;
+ typedef helpers::ObjectPtrT<Appender> AppenderPtr;
+
+ namespace helpers
+ {
+ class Properties;
+ }
+
+
+ namespace spi {
+ class LoggerFactory;
+ }
+
+/**
+Allows the configuration of log4cxx from an external file. See
+<b>{@link #doConfigure(const File&, log4cxx::spi::LoggerRepositoryPtr&)}</b>
+for the expected format.
+
+<p>It is sometimes useful to see how log4cxx is reading configuration
+files. You can enable log4cxx internal logging by defining the
+<b>log4j.debug</b> variable.
+
+<P>At class initialization time class,
+the file <b>log4j.properties</b> will be searched in the current directory.
+If the file can be found, then it will
+be fed to the
+{@link PropertyConfigurator#configure(const File& configFilename)}
+method.
+
+<p>The <code>PropertyConfigurator</code> does not handle the
+advanced configuration features supported by the {@link
+xml::DOMConfigurator DOMConfigurator} such as
+support for {@link spi::Filter Filters}, custom
+{@link spi::ErrorHandler ErrorHandlers}, nested
+appenders such as the {@link AsyncAppender
+AsyncAppender}, etc.
+
+<p>All option <em>values</em> admit variable substitution. The
+syntax of variable substitution is similar to that of Unix
+shells. The string between an opening <b>&quot;${&quot;</b> and
+closing <b>&quot;}&quot;</b> is interpreted as a key. The value of
+the substituted variable can be defined as a system property or in
+the configuration file itself. The value of the key is first
+searched in the system properties, and if not found there, it is
+then searched in the configuration file being parsed. The
+corresponding value replaces the ${variableName} sequence. For
+example, if <code>java.home</code> system property is set to
+<code>/home/xyz</code>, then every occurrence of the sequence
+<code>${java.home}</code> will be interpreted as
+<code>/home/xyz</code>.
+*/
+ class LOG4CXX_EXPORT PropertyConfigurator :
+ virtual public spi::Configurator,
+ virtual public helpers::ObjectImpl
+ {
+ protected:
+
+ /**
+ Used internally to keep track of configured appenders.
+ */
+ std::map<LogString, AppenderPtr>* registry;
+
+ /**
+ Used to create new instances of logger
+ */
+ helpers::ObjectPtrT<spi::LoggerFactory> loggerFactory;
+
+ public:
+ DECLARE_LOG4CXX_OBJECT(PropertyConfigurator)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(spi::Configurator)
+ END_LOG4CXX_CAST_MAP()
+
+ PropertyConfigurator();
+ virtual ~PropertyConfigurator();
+ void addRef() const;
+ void releaseRef() const;
+
+/**
+Read configuration from a file. <b>The existing configuration is
+not cleared nor reset.</b> If you require a different behavior,
+then call {@link LogManager#resetConfiguration
+resetConfiguration} method before calling
+<code>doConfigure</code>.
+
+<p>The configuration file consists of statements in the format
+<code>key=value</code>. The syntax of different configuration
+elements are discussed below.
+
+<h3>Repository-wide threshold</h3>
+
+<p>The repository-wide threshold filters logging requests by level
+regardless of logger. The syntax is:
+
+<pre>
+log4j.threshold=[level]
+</pre>
+
+<p>The level value can consist of the string values OFF, FATAL,
+ERROR, WARN, INFO, DEBUG, ALL or a <em>custom level</em> value. A
+custom level value can be specified in the form
+level#classname. By default the repository-wide threshold is set
+to the lowest possible value, namely the level <code>ALL</code>.
+</p>
+
+
+<h3>Appender configuration</h3>
+
+<p>Appender configuration syntax is:
+<pre>
+# For appender named <i>appenderName</i>, set its class.
+# Note: The appender name can contain dots.
+log4j.appender.appenderName=fully.qualified.name.of.appender.class
+
+# Set appender specific options.
+log4j.appender.appenderName.option1=value1
+...
+log4j.appender.appenderName.optionN=valueN
+</pre>
+
+For each named appender you can configure its {@link Layout Layout}. The
+syntax for configuring an appender's layout is:
+<pre>
+log4j.appender.appenderName.layout=fully.qualified.name.of.layout.class
+log4j.appender.appenderName.layout.option1=value1
+....
+log4j.appender.appenderName.layout.optionN=valueN
+</pre>
+
+<h3>Configuring loggers</h3>
+
+<p>The syntax for configuring the root logger is:
+<pre>
+log4j.rootLogger=[level], appenderName, appenderName, ...
+</pre>
+
+<p>This syntax means that an optional <em>level</em> can be
+supplied followed by appender names separated by commas.
+
+<p>The level value can consist of the string values OFF, FATAL,
+ERROR, WARN, INFO, DEBUG, ALL or a <em>custom level</em> value. A
+custom level value can be specified in the form
+<code>level#classname</code>.
+
+<p>If a level value is specified, then the root level is set
+to the corresponding level. If no level value is specified,
+then the root level remains untouched.
+
+<p>The root logger can be assigned multiple appenders.
+
+<p>Each <i>appenderName</i> (separated by commas) will be added to
+the root logger. The named appender is defined using the
+appender syntax defined above.
+
+<p>For non-root categories the syntax is almost the same:
+<pre>
+log4j.logger.logger_name=[level|INHERITED|NULL], appenderName, appenderName,
+...
+</pre>
+
+<p>The meaning of the optional level value is discussed above
+in relation to the root logger. In addition however, the value
+INHERITED can be specified meaning that the named logger should
+inherit its level from the logger hierarchy.
+
+<p>If no level value is supplied, then the level of the
+named logger remains untouched.
+
+<p>By default categories inherit their level from the
+hierarchy. However, if you set the level of a logger and later
+decide that that logger should inherit its level, then you should
+specify INHERITED as the value for the level value. NULL is a
+synonym for INHERITED.
+
+<p>Similar to the root logger syntax, each <i>appenderName</i>
+(separated by commas) will be attached to the named logger.
+
+<p>See the <a href="Introduction.html#additivity">appender
+additivity rule</a> in the user manual for the meaning of the
+<code>additivity</code> flag.
+
+<h3>Logger Factories</h3>
+
+The usage of custom logger factories is discouraged and no longer
+documented.
+
+<h3>Example</h3>
+
+<p>An example configuration is given below. Other configuration
+file examples are given in the <code>examples</code> folder.
+
+<pre>
+
+# Set options for appender named "A1".
+# Appender "A1" will be a SyslogAppender
+log4j.appender.A1=SyslogAppender
+
+# The syslog daemon resides on www.abc.net
+log4j.appender.A1.SyslogHost=www.abc.net
+
+# A1's layout is a PatternLayout, using the conversion pattern
+# <b>%r %-5p %c{2} %M.%L %x - %m\n</b>. Thus, the log output will
+# include # the relative time since the start of the application in
+# milliseconds, followed by the level of the log request,
+# followed by the two rightmost components of the logger name,
+# followed by the callers method name, followed by the line number,
+# the nested disgnostic context and finally the message itself.
+# Refer to the documentation of PatternLayout for further information
+# on the syntax of the ConversionPattern key.
+log4j.appender.A1.layout=PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %c{2} %M.%L %x - %m\n
+
+# Set options for appender named "A2"
+# A2 should be a RollingFileAppender, with maximum file size of 10 MB
+# using at most one backup file. A2's layout is TTCC, using the
+# ISO8061 date format with context printing enabled.
+log4j.appender.A2=RollingFileAppender
+log4j.appender.A2.MaxFileSize=10MB
+log4j.appender.A2.MaxBackupIndex=1
+log4j.appender.A2.layout=TTCCLayout
+log4j.appender.A2.layout.ContextPrinting=enabled
+log4j.appender.A2.layout.DateFormat=ISO8601
+
+# Root logger set to DEBUG using the A2 appender defined above.
+log4j.rootLogger=DEBUG, A2
+
+# Logger definitions:
+# The SECURITY logger inherits is level from root. However, it's output
+# will go to A1 appender defined above. It's additivity is non-cumulative.
+log4j.logger.SECURITY=INHERIT, A1
+log4j.additivity.SECURITY=false
+
+# Only warnings or above will be logged for the logger "SECURITY.access".
+# Output will go to A1.
+log4j.logger.SECURITY.access=WARN
+
+
+# The logger "class.of.the.day" inherits its level from the
+# logger hierarchy. Output will go to the appender's of the root
+# logger, A2 in this case.
+log4j.logger.class.of.the.day=INHERIT
+</pre>
+
+<p>Refer to the <b>setOption</b> method in each Appender and
+Layout for class specific options.
+
+<p>Use the <code>#</code> or <code>!</code> characters at the
+beginning of a line for comments.
+
+<p>
+@param configFileName The name of the configuration file where the
+configuration information is stored.
+@param hierarchy The hierarchy to operation upon.
+*/
+ void doConfigure(const File& configFileName,
+ spi::LoggerRepositoryPtr& hierarchy);
+
+ /**
+ Read configuration options from file <code>configFilename</code>.
+ */
+ static void configure(const File& configFilename);
+
+ /**
+ Like {@link #configureAndWatch(const File& configFilename, long delay)}
+ except that the
+ default delay as defined by helpers::FileWatchdog#DEFAULT_DELAY
+ is used.
+ @param configFilename A file in key=value format.
+ */
+ static void configureAndWatch(const File& configFilename);
+
+ /**
+ Read the configuration file <code>configFilename</code> if it
+ exists. Moreover, a thread will be created that will periodically
+ check if <code>configFilename</code> has been created or
+ modified. The period is determined by the <code>delay</code>
+ argument. If a change or file creation is detected, then
+ <code>configFilename</code> is read to configure log4j.
+
+ @param configFilename A file in key=value format.
+ @param delay The delay in milliseconds to wait between each check.
+ */
+ static void configureAndWatch(const File& configFilename,
+ long delay);
+
+ /**
+ Read configuration options from <code>properties</code>.
+ See #doConfigure(const File&, log4cxx::spi::LoggerRepositoryPtr&)
+ for the expected format.
+ */
+ static void configure(helpers::Properties& properties);
+
+ /**
+ Read configuration options from <code>properties</code>.
+ See #doConfigure(const File&, log4cxx::spi::LoggerRepositoryPtr&)
+ for the expected format.
+ */
+ void doConfigure(helpers::Properties& properties,
+ spi::LoggerRepositoryPtr& hierarchy);
+
+// --------------------------------------------------------------------------
+// Internal stuff
+// --------------------------------------------------------------------------
+protected:
+ /**
+ Check the provided <code>Properties</code> object for a
+ #loggerFactory
+ entry specified by LOGGER_FACTORY_KEY. If such an entry
+ exists, an attempt is made to create an instance using the default
+ constructor. This instance is used for subsequent Logger creations
+ within this configurator.
+ @see #parseCatsAndRenderers
+ */
+ void configureLoggerFactory(helpers::Properties& props);
+
+ void configureRootLogger(helpers::Properties& props,
+ spi::LoggerRepositoryPtr& hierarchy);
+
+ /**
+ Parse non-root elements, such non-root categories and renderers.
+ */
+ void parseCatsAndRenderers(helpers::Properties& props,
+ spi::LoggerRepositoryPtr& hierarchy);
+
+ /**
+ Parse the additivity option for a non-root logger.
+ */
+ void parseAdditivityForLogger(helpers::Properties& props,
+ LoggerPtr& cat, const LogString& loggerName);
+
+ /**
+ This method must work for the root logger as well.
+ */
+ void parseLogger(
+ helpers::Properties& props, LoggerPtr& logger,
+ const LogString& optionKey, const LogString& loggerName,
+ const LogString& value);
+
+ AppenderPtr parseAppender(
+ helpers::Properties& props, const LogString& appenderName);
+
+ void registryPut(const AppenderPtr& appender);
+ AppenderPtr registryGet(const LogString& name);
+
+private:
+ PropertyConfigurator(const PropertyConfigurator&);
+ PropertyConfigurator& operator=(const PropertyConfigurator&);
+ }; // class PropertyConfigurator
+} // namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning (pop)
+#endif
+
+
+#endif //_LOG4CXX_PROPERTY_CONFIGURATOR_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/provisionnode.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/provisionnode.h
new file mode 100644
index 0000000000..5d1c31f7be
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/provisionnode.h
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_PROVISION_NODE_H
+#define _LOG4CXX_PROVISION_NODE_H
+
+#include <vector>
+#include <log4cxx/helpers/objectptr.h>
+#include <log4cxx/logger.h>
+
+namespace log4cxx
+{
+ class Logger;
+ typedef helpers::ObjectPtrT<Logger> LoggerPtr;
+
+
+ typedef std::vector<LoggerPtr> ProvisionNode;
+
+} // namespace log4cxx
+
+#endif //_LOG4CXX_PROVISION_NODE_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/Makefile.am
new file mode 100644
index 0000000000..8b10b189b5
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/Makefile.am
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+rollingincdir = $(includedir)/log4cxx/rolling
+rollinginc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/rolling/*.h
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/Makefile.in
new file mode 100644
index 0000000000..554d6ccdd3
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/Makefile.in
@@ -0,0 +1,446 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = src/main/include/log4cxx/rolling
+DIST_COMMON = $(rollinginc_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \
+ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(rollingincdir)"
+rollingincHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(rollinginc_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+APR_LIBS = @APR_LIBS@
+APU_LIBS = @APU_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CFSTRING_API = @CFSTRING_API@
+CHARSET_EBCDIC = @CHARSET_EBCDIC@
+CHARSET_ISO88591 = @CHARSET_ISO88591@
+CHARSET_USASCII = @CHARSET_USASCII@
+CHARSET_UTF8 = @CHARSET_UTF8@
+CHAR_API = @CHAR_API@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_ODBC = @CPPFLAGS_ODBC@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOC_FALSE = @DOC_FALSE@
+DOC_TRUE = @DOC_TRUE@
+DOT = @DOT@
+DOXYGEN = @DOXYGEN@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HAS_FWIDE = @HAS_FWIDE@
+HAS_LIBESMTP = @HAS_LIBESMTP@
+HAS_MBSRTOWCS = @HAS_MBSRTOWCS@
+HAS_ODBC = @HAS_ODBC@
+HAS_STD_LOCALE = @HAS_STD_LOCALE@
+HAS_SYSLOG = @HAS_SYSLOG@
+HAS_WCHAR_T = @HAS_WCHAR_T@
+HAS_WCSTOMBS = @HAS_WCSTOMBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IODBC_CONFIG = @IODBC_CONFIG@
+LATEX_DOC_FALSE = @LATEX_DOC_FALSE@
+LATEX_DOC_TRUE = @LATEX_DOC_TRUE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBS_ODBC = @LIBS_ODBC@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@
+LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@
+LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@
+LTLIBOBJS = @LTLIBOBJS@
+LT_VERSION = @LT_VERSION@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+UNICHAR_API = @UNICHAR_API@
+VERSION = @VERSION@
+WCHAR_T_API = @WCHAR_T_API@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+base_dir = @base_dir@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+enable_dot = @enable_dot@
+enable_html_docs = @enable_html_docs@
+enable_latex_docs = @enable_latex_docs@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+manual_dest = @manual_dest@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+rollingincdir = $(includedir)/log4cxx/rolling
+rollinginc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/rolling/*.h
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/rolling/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/main/include/log4cxx/rolling/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+install-rollingincHEADERS: $(rollinginc_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(rollingincdir)" || $(mkdir_p) "$(DESTDIR)$(rollingincdir)"
+ @list='$(rollinginc_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(rollingincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(rollingincdir)/$$f'"; \
+ $(rollingincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(rollingincdir)/$$f"; \
+ done
+
+uninstall-rollingincHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(rollinginc_HEADERS)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(rollingincdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(rollingincdir)/$$f"; \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/rolling
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(rollingincdir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-rollingincHEADERS
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-rollingincHEADERS
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool ctags distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-info-am install-man install-rollingincHEADERS \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-info-am \
+ uninstall-rollingincHEADERS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/action.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/action.h
new file mode 100644
index 0000000000..00595ff47f
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/action.h
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_LOG4CXX_ROLLING_ACTION_H)
+#define _LOG4CXX_ROLLING_ACTION_H
+
+#include <log4cxx/portability.h>
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/helpers/mutex.h>
+#include <log4cxx/helpers/pool.h>
+
+namespace log4cxx {
+ namespace rolling {
+
+
+ /**
+ * A file system action performed as part of a rollover event.
+ */
+ class Action : public virtual log4cxx::helpers::ObjectImpl {
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(Action)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(Action)
+ END_LOG4CXX_CAST_MAP()
+ /**
+ * Is action complete.
+ */
+ bool complete;
+
+ /**
+ * Is action interrupted.
+ */
+ bool interrupted;
+
+ log4cxx::helpers::Pool pool;
+ log4cxx::helpers::Mutex mutex;
+
+
+ protected:
+ /**
+ * Constructor.
+ */
+ Action();
+ virtual ~Action();
+
+ public:
+ /**
+ * Perform action.
+ *
+ * @return true if successful.
+ */
+ virtual bool execute(log4cxx::helpers::Pool& pool) const = 0;
+
+ void run(log4cxx::helpers::Pool& pool);
+
+ void close();
+
+ /**
+ * Tests if the action is complete.
+ * @return true if action is complete.
+ */
+ bool isComplete() const;
+
+ void reportException(const std::exception&);
+
+
+ };
+
+ LOG4CXX_PTR_DEF(Action);
+
+ }
+}
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/filerenameaction.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/filerenameaction.h
new file mode 100644
index 0000000000..46a284a27d
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/filerenameaction.h
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_LOG4CXX_ROLLING_FILE_RENAME_ACTION_H)
+#define _LOG4CXX_ROLLING_FILE_RENAME_ACTION_H
+
+#include <log4cxx/rolling/action.h>
+#include <log4cxx/file.h>
+
+namespace log4cxx {
+ namespace rolling {
+
+
+ class FileRenameAction : public Action {
+ const File source;
+ const File destination;
+ bool renameEmptyFile;
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(FileRenameAction)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(FileRenameAction)
+ LOG4CXX_CAST_ENTRY_CHAIN(Action)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Constructor.
+ */
+ FileRenameAction(const File& toRename,
+ const File& renameTo,
+ bool renameEmptyFile);
+
+ /**
+ * Perform action.
+ *
+ * @return true if successful.
+ */
+ virtual bool execute(log4cxx::helpers::Pool& pool) const;
+ };
+
+ LOG4CXX_PTR_DEF(FileRenameAction);
+
+ }
+}
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/filterbasedtriggeringpolicy.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/filterbasedtriggeringpolicy.h
new file mode 100644
index 0000000000..efe58258b0
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/filterbasedtriggeringpolicy.h
@@ -0,0 +1,118 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ #if !defined(_LOG4CXX_ROLLING_FILTER_BASED_TRIGGERING_POLICY_H)
+ #define _LOG4CXX_ROLLING_FILTER_BASED_TRIGGERING_POLICY_H
+
+#include <log4cxx/rolling/triggeringpolicy.h>
+#include <log4cxx/spi/filter.h>
+
+ namespace log4cxx {
+
+ class File;
+
+ namespace helpers {
+ class Pool;
+ }
+
+
+ namespace rolling {
+
+
+/**
+ * FilterBasedTriggeringPolicy determines if rolling should be triggered
+ * by evaluating the current message against a set of filters. Unless a
+ * filter rejects a message, a rolling event will be triggered.
+ *
+ *
+ *
+ *
+ */
+class LOG4CXX_EXPORT FilterBasedTriggeringPolicy : public TriggeringPolicy {
+
+ DECLARE_LOG4CXX_OBJECT(FilterBasedTriggeringPolicy)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(FilterBasedTriggeringPolicy)
+ LOG4CXX_CAST_ENTRY_CHAIN(TriggeringPolicy)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * The first filter in the filter chain. Set to <code>null</code> initially.
+ */
+ log4cxx::spi::FilterPtr headFilter;
+
+ /**
+ * The last filter in the filter chain.
+ */
+ log4cxx::spi::FilterPtr tailFilter;
+
+public:
+ /**
+ * Creates a new FilterBasedTriggeringPolicy.
+ */
+ FilterBasedTriggeringPolicy();
+ virtual ~FilterBasedTriggeringPolicy();
+
+/**
+ * Determines if a rollover may be appropriate at this time. If
+ * true is returned, RolloverPolicy.rollover will be called but it
+ * can determine that a rollover is not warranted.
+ *
+ * @param appender A reference to the appender.
+ * @param event A reference to the currently event.
+ * @param filename The filename for the currently active log file.
+ * @param fileLength Length of the file in bytes.
+ * @return true if a rollover should occur.
+ */
+virtual bool isTriggeringEvent(
+ Appender* appender,
+ const log4cxx::spi::LoggingEventPtr& event,
+ const LogString& filename,
+ size_t fileLength);
+
+ /**
+ * Add a filter to end of the filter list.
+ * @param newFilter filter to add to end of list.
+ */
+ void addFilter(const log4cxx::spi::FilterPtr& newFilter);
+
+ /**
+ * Clear the filters chain.
+ *
+ */
+ void clearFilters();
+
+ /**
+ * Returns the head Filter.
+ *
+ */
+ log4cxx::spi::FilterPtr& getFilter();
+
+ /**
+ * Prepares the instance for use.
+ */
+ void activateOptions(log4cxx::helpers::Pool&);
+
+ void setOption(const LogString& option, const LogString& value);
+ };
+
+ LOG4CXX_PTR_DEF(FilterBasedTriggeringPolicy);
+
+}
+ }
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/fixedwindowrollingpolicy.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/fixedwindowrollingpolicy.h
new file mode 100644
index 0000000000..1cb6b484c9
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/fixedwindowrollingpolicy.h
@@ -0,0 +1,141 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_LOG4CXX_ROLLING_FIXED_WINDOW_ROLLING_POLICY_H)
+#define _LOG4CXX_ROLLING_FIXED_WINDOW_ROLLING_POLICY_H
+
+#include <log4cxx/rolling/rollingpolicybase.h>
+
+
+
+
+namespace log4cxx {
+
+ namespace helpers {
+ class Pool;
+ }
+
+ namespace rolling {
+
+
+/**
+ * When rolling over, <code>FixedWindowRollingPolicy</code> renames files
+ * according to a fixed window algorithm as described below.
+ *
+ * <p>The <b>ActiveFileName</b> property, which is required, represents the name
+ * of the file where current logging output will be written.
+ * The <b>FileNamePattern</b> option represents the file name pattern for the
+ * archived (rolled over) log files. If present, the <b>FileNamePattern</b>
+ * option must include an integer token, that is the string "%i" somwhere
+ * within the pattern.
+ *
+ * <p>Let <em>max</em> and <em>min</em> represent the values of respectively
+ * the <b>MaxIndex</b> and <b>MinIndex</b> options. Let "foo.log" be the value
+ * of the <b>ActiveFile</b> option and "foo.%i.log" the value of
+ * <b>FileNamePattern</b>. Then, when rolling over, the file
+ * <code>foo.<em>max</em>.log</code> will be deleted, the file
+ * <code>foo.<em>max-1</em>.log</code> will be renamed as
+ * <code>foo.<em>max</em>.log</code>, the file <code>foo.<em>max-2</em>.log</code>
+ * renamed as <code>foo.<em>max-1</em>.log</code>, and so on,
+ * the file <code>foo.<em>min+1</em>.log</code> renamed as
+ * <code>foo.<em>min+2</em>.log</code>. Lastly, the active file <code>foo.log</code>
+ * will be renamed as <code>foo.<em>min</em>.log</code> and a new active file name
+ * <code>foo.log</code> will be created.
+ *
+ * <p>Given that this rollover algorithm requires as many file renaming
+ * operations as the window size, large window sizes are discouraged. The
+ * current implementation will automatically reduce the window size to 12 when
+ * larger values are specified by the user.
+ *
+ *
+ *
+ *
+ * */
+ class LOG4CXX_EXPORT FixedWindowRollingPolicy : public RollingPolicyBase {
+ DECLARE_LOG4CXX_OBJECT(FixedWindowRollingPolicy)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(FixedWindowRollingPolicy)
+ LOG4CXX_CAST_ENTRY_CHAIN(RollingPolicyBase)
+ END_LOG4CXX_CAST_MAP()
+
+ int minIndex;
+ int maxIndex;
+ bool explicitActiveFile;
+
+ /**
+ * It's almost always a bad idea to have a large window size, say over 12.
+ */
+ enum { MAX_WINDOW_SIZE = 12 };
+
+ bool purge(int purgeStart, int maxIndex, log4cxx::helpers::Pool& p) const;
+
+ public:
+
+ FixedWindowRollingPolicy();
+
+ void activateOptions(log4cxx::helpers::Pool& p);
+ void setOption(const LogString& option,
+ const LogString& value);
+
+ void rollover();
+
+ int getMaxIndex() const;
+
+ int getMinIndex() const;
+
+ void setMaxIndex(int newVal);
+ void setMinIndex(int newVal);
+
+
+/**
+* Initialize the policy and return any initial actions for rolling file appender.
+*
+* @param file current value of RollingFileAppender::getFile().
+* @param append current value of RollingFileAppender::getAppend().
+* @param p pool used for any required memory allocations.
+* @return Description of the initialization, may be null to indicate
+* no initialization needed.
+* @throws SecurityException if denied access to log files.
+*/
+virtual RolloverDescriptionPtr initialize(
+const LogString& file, const bool append, log4cxx::helpers::Pool& p);
+
+/**
+* Prepare for a rollover. This method is called prior to
+* closing the active log file, performs any necessary
+* preliminary actions and describes actions needed
+* after close of current log file.
+*
+* @param activeFile file name for current active log file.
+* @param p pool used for any required memory allocations.
+* @return Description of pending rollover, may be null to indicate no rollover
+* at this time.
+* @throws SecurityException if denied access to log files.
+*/
+virtual RolloverDescriptionPtr rollover(const LogString& activeFile, log4cxx::helpers::Pool& p);
+
+protected:
+ log4cxx::pattern::PatternMap getFormatSpecifiers() const;
+
+ };
+
+ LOG4CXX_PTR_DEF(FixedWindowRollingPolicy);
+
+ }
+}
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/gzcompressaction.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/gzcompressaction.h
new file mode 100644
index 0000000000..d94d4e8fb6
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/gzcompressaction.h
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_LOG4CXX_ROLLING_GZ_COMPRESS_ACTION_H)
+#define _LOG4CXX_ROLLING_GZ_COMPRESS_ACTION_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+#include <log4cxx/rolling/action.h>
+#include <log4cxx/file.h>
+
+namespace log4cxx {
+ namespace rolling {
+
+
+ class GZCompressAction : public Action {
+ const File source;
+ const File destination;
+ bool deleteSource;
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(GZCompressAction)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(GZCompressAction)
+ LOG4CXX_CAST_ENTRY_CHAIN(Action)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Constructor.
+ */
+ GZCompressAction(const File& source,
+ const File& destination,
+ bool deleteSource);
+
+ /**
+ * Perform action.
+ *
+ * @return true if successful.
+ */
+ virtual bool execute(log4cxx::helpers::Pool& pool) const;
+
+ private:
+ GZCompressAction(const GZCompressAction&);
+ GZCompressAction& operator=(const GZCompressAction&);
+ };
+
+ LOG4CXX_PTR_DEF(GZCompressAction);
+
+ }
+}
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/manualtriggeringpolicy.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/manualtriggeringpolicy.h
new file mode 100644
index 0000000000..5461183ca5
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/manualtriggeringpolicy.h
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_LOG4CXX_ROLLING_MANUAL_TRIGGERING_POLICY_H)
+#define _LOG4CXX_ROLLING_MANUAL_TRIGGERING_POLICY_H
+
+#include <log4cxx/rolling/triggeringpolicy.h>
+
+namespace log4cxx {
+
+ class File;
+
+ namespace helpers {
+ class Pool;
+ }
+
+ namespace rolling {
+
+ /**
+ * ManualTriggeringPolicy only rolls over on explicit calls to
+ * RollingFileAppender.rollover().
+ *
+ *
+ *
+ */
+ class LOG4CXX_EXPORT ManualTriggeringPolicy : public TriggeringPolicy {
+ DECLARE_LOG4CXX_OBJECT(ManualTriggeringPolicy)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(ManualTriggeringPolicy)
+ LOG4CXX_CAST_ENTRY_CHAIN(TriggeringPolicy)
+ END_LOG4CXX_CAST_MAP()
+
+ public:
+ ManualTriggeringPolicy();
+ /**
+ * Determines if a rollover may be appropriate at this time. If
+ * true is returned, RolloverPolicy.rollover will be called but it
+ * can determine that a rollover is not warranted.
+ *
+ * @param appender A reference to the appender.
+ * @param event A reference to the currently event.
+ * @param filename The filename for the currently active log file.
+ * @param fileLength Length of the file in bytes.
+ * @return true if a rollover should occur.
+ */
+ virtual bool isTriggeringEvent(
+ Appender* appender,
+ const log4cxx::spi::LoggingEventPtr& event,
+ const LogString& filename,
+ size_t fileLength);
+
+ void activateOptions(log4cxx::helpers::Pool&);
+ void setOption(const LogString& option, const LogString& value);
+ };
+ }
+}
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingfileappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingfileappender.h
new file mode 100644
index 0000000000..ec044fb20f
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingfileappender.h
@@ -0,0 +1,105 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_LOG4CXX_ROLLING_ROLLING_FILE_APPENDER_H)
+#define _LOG4CXX_ROLLING_ROLLING_FILE_APPENDER_H
+
+#include <log4cxx/rolling/rollingfileappenderskeleton.h>
+
+
+namespace log4cxx {
+ namespace rolling {
+
+
+ /**
+ * <code>RollingFileAppender</code> extends {@link log4cxx::FileAppender} to backup the log files
+ * depending on {@link log4cxx::rolling::RollingPolicy RollingPolicy} and {@link log4cxx::rolling::TriggeringPolicy TriggeringPolicy}.
+ * <p>
+ * To be of any use, a <code>RollingFileAppender</code> instance must have both
+ * a <code>RollingPolicy</code> and a <code>TriggeringPolicy</code> set up.
+ * However, if its <code>RollingPolicy</code> also implements the
+ * <code>TriggeringPolicy</code> interface, then only the former needs to be
+ * set up. For example, {@link log4cxx::rolling::TimeBasedRollingPolicy TimeBasedRollingPolicy} acts both as a
+ * <code>RollingPolicy</code> and a <code>TriggeringPolicy</code>.
+ *
+ * <p><code>RollingFileAppender</code> can be configured programattically or
+ * using {@link log4cxx::xml::DOMConfigurator}. Here is a sample
+ * configration file:
+
+ <pre>&lt;?xml version="1.0" encoding="UTF-8" ?>
+ &lt;!DOCTYPE log4j:configuration>
+
+ &lt;log4j:configuration debug="true">
+
+ &lt;appender name="ROLL" class="org.apache.log4j.rolling.RollingFileAppender">
+ <b>&lt;rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
+ &lt;param name="FileNamePattern" value="/wombat/foo.%d{yyyy-MM}.gz"/>
+ &lt;/rollingPolicy></b>
+
+ &lt;layout class="org.apache.log4j.PatternLayout">
+ &lt;param name="ConversionPattern" value="%c{1} - %m%n"/>
+ &lt;/layout>
+ &lt;/appender>
+
+ &lt;root">
+ &lt;appender-ref ref="ROLL"/>
+ &lt;/root>
+
+ &lt;/log4j:configuration>
+ </pre>
+
+ *<p>This configuration file specifies a monthly rollover schedule including
+ * automatic compression of the archived files. See
+ * {@link TimeBasedRollingPolicy} for more details.
+ *
+ *
+ *
+ *
+ * */
+ class LOG4CXX_EXPORT RollingFileAppender : public RollingFileAppenderSkeleton {
+ DECLARE_LOG4CXX_OBJECT(RollingFileAppender)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(RollingFileAppender)
+ LOG4CXX_CAST_ENTRY_CHAIN(RollingFileAppenderSkeleton)
+ END_LOG4CXX_CAST_MAP()
+
+ public:
+ RollingFileAppender();
+
+ using RollingFileAppenderSkeleton::getRollingPolicy;
+
+ using RollingFileAppenderSkeleton::getTriggeringPolicy;
+
+ /**
+ * Sets the rolling policy. In case the 'policy' argument also implements
+ * {@link TriggeringPolicy}, then the triggering policy for this appender
+ * is automatically set to be the policy argument.
+ * @param policy
+ */
+ using RollingFileAppenderSkeleton::setRollingPolicy;
+
+ using RollingFileAppenderSkeleton::setTriggeringPolicy;
+
+ };
+
+ LOG4CXX_PTR_DEF(RollingFileAppender);
+
+ }
+}
+
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingfileappenderskeleton.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingfileappenderskeleton.h
new file mode 100644
index 0000000000..f1b73b4122
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingfileappenderskeleton.h
@@ -0,0 +1,152 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_LOG4CXX_ROLLING_ROLLING_FILE_APPENDER_SKELETON_H)
+#define _LOG4CXX_ROLLING_ROLLING_FILE_APPENDER_SKELETON_H
+
+#include <log4cxx/portability.h>
+#include <log4cxx/spi/optionhandler.h>
+#include <log4cxx/fileappender.h>
+#include <log4cxx/rolling/triggeringpolicy.h>
+#include <log4cxx/rolling/rollingpolicy.h>
+#include <log4cxx/rolling/action.h>
+
+namespace log4cxx {
+ namespace rolling {
+
+
+ /**
+ * Base class for log4cxx::rolling::RollingFileAppender and log4cxx::RollingFileAppender
+ * (analogues of org.apache.log4j.rolling.RFA from extras companion and
+ * org.apache.log4j.RFA from log4j 1.2, respectively).
+ *
+ * */
+ class LOG4CXX_EXPORT RollingFileAppenderSkeleton : public FileAppender {
+ DECLARE_LOG4CXX_OBJECT(RollingFileAppenderSkeleton)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(RollingFileAppenderSkeleton)
+ LOG4CXX_CAST_ENTRY_CHAIN(FileAppender)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Triggering policy.
+ */
+ TriggeringPolicyPtr triggeringPolicy;
+
+ /**
+ * Rolling policy.
+ */
+ RollingPolicyPtr rollingPolicy;
+
+ /**
+ * Length of current active log file.
+ */
+ size_t fileLength;
+
+ public:
+ /**
+ * The default constructor simply calls its {@link
+ * FileAppender#FileAppender parents constructor}.
+ * */
+ RollingFileAppenderSkeleton();
+
+ void activateOptions(log4cxx::helpers::Pool&);
+
+
+ /**
+ Implements the usual roll over behaviour.
+
+ <p>If <code>MaxBackupIndex</code> is positive, then files
+ {<code>File.1</code>, ..., <code>File.MaxBackupIndex -1</code>}
+ are renamed to {<code>File.2</code>, ...,
+ <code>File.MaxBackupIndex</code>}. Moreover, <code>File</code> is
+ renamed <code>File.1</code> and closed. A new <code>File</code> is
+ created to receive further log output.
+
+ <p>If <code>MaxBackupIndex</code> is equal to zero, then the
+ <code>File</code> is truncated with no backup files created.
+
+ */
+ bool rollover(log4cxx::helpers::Pool& p);
+
+ protected:
+
+ /**
+ Actual writing occurs here.
+ */
+ virtual void subAppend(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p);
+
+ protected:
+
+ RollingPolicyPtr getRollingPolicy() const;
+
+ TriggeringPolicyPtr getTriggeringPolicy() const;
+
+ /**
+ * Sets the rolling policy. In case the 'policy' argument also implements
+ * {@link TriggeringPolicy}, then the triggering policy for this appender
+ * is automatically set to be the policy argument.
+ * @param policy
+ */
+ void setRollingPolicy(const RollingPolicyPtr& policy);
+
+ void setTriggeringPolicy(const TriggeringPolicyPtr& policy);
+
+ public:
+ /**
+ * Close appender. Waits for any asynchronous file compression actions to be completed.
+ */
+ void close();
+
+ protected:
+ /**
+ Returns an OutputStreamWriter when passed an OutputStream. The
+ encoding used will depend on the value of the
+ <code>encoding</code> property. If the encoding value is
+ specified incorrectly the writer will be opened using the default
+ system encoding (an error message will be printed to the loglog.
+ @param os output stream, may not be null.
+ @return new writer.
+ */
+ log4cxx::helpers::WriterPtr createWriter(log4cxx::helpers::OutputStreamPtr& os);
+
+ public:
+
+
+
+ /**
+ * Get byte length of current active log file.
+ * @return byte length of current active log file.
+ */
+ size_t getFileLength() const;
+
+ /**
+ * Increments estimated byte length of current active log file.
+ * @param increment additional bytes written to log file.
+ */
+ void incrementFileLength(size_t increment);
+
+ };
+
+
+ LOG4CXX_PTR_DEF(RollingFileAppenderSkeleton);
+
+ }
+}
+
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingpolicy.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingpolicy.h
new file mode 100644
index 0000000000..4598d940b9
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingpolicy.h
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_LOG4CXX_ROLLING_ROLLING_POLICY_H)
+#define _LOG4CXX_ROLLING_ROLLING_POLICY_H
+
+#include <log4cxx/portability.h>
+#include <log4cxx/spi/optionhandler.h>
+#include <log4cxx/rolling/rolloverdescription.h>
+#include <log4cxx/file.h>
+
+namespace log4cxx {
+ namespace rolling {
+
+
+ /**
+ * A <code>RollingPolicy</code> is responsible for performing the
+ * rolling over of the active log file. The <code>RollingPolicy</code>
+ * is also responsible for providing the <em>active log file</em>,
+ * that is the live file where logging output will be directed.
+ *
+ *
+ *
+ *
+ */
+ class LOG4CXX_EXPORT RollingPolicy :
+ public virtual spi::OptionHandler {
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(RollingPolicy)
+
+ public:
+ virtual ~RollingPolicy() {}
+ /**
+ * Initialize the policy and return any initial actions for rolling file appender.
+ *
+ * @param file current value of RollingFileAppender.getFile().
+ * @param append current value of RollingFileAppender.getAppend().
+ * @param p pool for memory allocations during call.
+ * @return Description of the initialization, may be null to indicate
+ * no initialization needed.
+ * @throws SecurityException if denied access to log files.
+ */
+ virtual RolloverDescriptionPtr initialize(
+ const LogString& file,
+ const bool append,
+ log4cxx::helpers::Pool& p) = 0;
+
+ /**
+ * Prepare for a rollover. This method is called prior to
+ * closing the active log file, performs any necessary
+ * preliminary actions and describes actions needed
+ * after close of current log file.
+ *
+ * @param activeFile file name for current active log file.
+ * @param p pool for memory allocations during call.
+ * @return Description of pending rollover, may be null to indicate no rollover
+ * at this time.
+ * @throws SecurityException if denied access to log files.
+ */
+ virtual RolloverDescriptionPtr rollover(const LogString& activeFile,
+ log4cxx::helpers::Pool& p) = 0;
+ };
+
+ LOG4CXX_PTR_DEF(RollingPolicy);
+
+ }
+}
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingpolicybase.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingpolicybase.h
new file mode 100644
index 0000000000..154b17d99b
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingpolicybase.h
@@ -0,0 +1,128 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_LOG4CXX_ROLLING_ROLLING_POLICY_BASE_H)
+#define _LOG4CXX_ROLLING_ROLLING_POLICY_BASE_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/helpers/object.h>
+#include <log4cxx/logger.h>
+#include <log4cxx/logmanager.h>
+#include <log4cxx/rolling/rollingpolicy.h>
+#include <log4cxx/pattern/patternconverter.h>
+#include <log4cxx/pattern/formattinginfo.h>
+#include <log4cxx/pattern/patternparser.h>
+
+namespace log4cxx {
+ namespace rolling {
+
+ /**
+ * Implements methods common to most, it not all, rolling
+ * policies.
+ *
+ *
+ *
+ */
+ class LOG4CXX_EXPORT RollingPolicyBase :
+ public virtual RollingPolicy,
+ public virtual helpers::ObjectImpl {
+ protected:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(RollingPolicyBase)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(RollingPolicy)
+ LOG4CXX_CAST_ENTRY(spi::OptionHandler)
+ END_LOG4CXX_CAST_MAP()
+
+
+ private:
+ /**
+ * File name pattern converters.
+ */
+ LOG4CXX_LIST_DEF(PatternConverterList, log4cxx::pattern::PatternConverterPtr);
+ PatternConverterList patternConverters;
+
+ /**
+ * File name field specifiers.
+ */
+ LOG4CXX_LIST_DEF(FormattingInfoList, log4cxx::pattern::FormattingInfoPtr);
+ FormattingInfoList patternFields;
+
+ /**
+ * File name pattern.
+ */
+ LogString fileNamePatternStr;
+
+
+ public:
+ RollingPolicyBase();
+ virtual ~RollingPolicyBase();
+ void addRef() const;
+ void releaseRef() const;
+ virtual void activateOptions(log4cxx::helpers::Pool& p) = 0;
+ virtual log4cxx::pattern::PatternMap getFormatSpecifiers() const = 0;
+
+ virtual void setOption(const LogString& option,
+ const LogString& value);
+
+ /**
+ * Set file name pattern.
+ * @param fnp file name pattern.
+ */
+ void setFileNamePattern(const LogString& fnp);
+
+ /**
+ * Get file name pattern.
+ * @return file name pattern.
+ */
+ LogString getFileNamePattern() const;
+
+
+ protected:
+ /**
+ * Parse file name pattern.
+ */
+ void parseFileNamePattern();
+
+ /**
+ * Format file name.
+ *
+ * @param obj object to be evaluted in formatting, may not be null.
+ * @param buf string buffer to which formatted file name is appended, may not be null.
+ * @param p memory pool.
+ */
+ void formatFileName(log4cxx::helpers::ObjectPtr& obj,
+ LogString& buf, log4cxx::helpers::Pool& p) const;
+
+ log4cxx::pattern::PatternConverterPtr getIntegerPatternConverter() const;
+ log4cxx::pattern::PatternConverterPtr getDatePatternConverter() const;
+
+
+ };
+ }
+}
+
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rolloverdescription.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rolloverdescription.h
new file mode 100644
index 0000000000..4e01fca33d
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rolloverdescription.h
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_LOG4CXX_ROLLING_ROLLOVER_DESCRIPTION_H)
+#define _LOG4CXX_ROLLING_ROLLOVER_DESCRIPTION_H
+
+#include <log4cxx/portability.h>
+#include <log4cxx/rolling/action.h>
+
+namespace log4cxx {
+ namespace rolling {
+
+
+ class RolloverDescription : public log4cxx::helpers::ObjectImpl {
+ DECLARE_LOG4CXX_OBJECT(RolloverDescription)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(RolloverDescription)
+ END_LOG4CXX_CAST_MAP()
+ /**
+ * Active log file name after rollover.
+ */
+ LogString activeFileName;
+
+ /**
+ * Should active file be opened for appending.
+ */
+ bool append;
+
+ /**
+ * Action to be completed after close of current active log file
+ * before returning control to caller.
+ */
+ ActionPtr synchronous;
+
+ /**
+ * Action to be completed after close of current active log file
+ * and before next rollover attempt, may be executed asynchronously.
+ */
+ ActionPtr asynchronous;
+
+ public:
+ RolloverDescription();
+ /**
+ * Create new instance.
+ * @param activeFileName active log file name after rollover, may not be null.
+ * @param append true if active log file after rollover should be opened for appending.
+ * @param synchronous action to be completed after close of current active log file, may be null.
+ * @param asynchronous action to be completed after close of current active log file and
+ * before next rollover attempt.
+ */
+ RolloverDescription(
+ const LogString& activeFileName,
+ const bool append,
+ const ActionPtr& synchronous,
+ const ActionPtr& asynchronous);
+
+ /**
+ * Active log file name after rollover.
+ * @return active log file name after rollover.
+ */
+ LogString getActiveFileName() const;
+
+ bool getAppend() const;
+
+ /**
+ * Action to be completed after close of current active log file
+ * before returning control to caller.
+ *
+ * @return action, may be null.
+ */
+ ActionPtr getSynchronous() const;
+
+ /**
+ * Action to be completed after close of current active log file
+ * and before next rollover attempt, may be executed asynchronously.
+ *
+ * @return action, may be null.
+ */
+ ActionPtr getAsynchronous() const;
+ };
+
+ LOG4CXX_PTR_DEF(RolloverDescription);
+
+ }
+}
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/sizebasedtriggeringpolicy.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/sizebasedtriggeringpolicy.h
new file mode 100644
index 0000000000..87ddffbac7
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/sizebasedtriggeringpolicy.h
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_LOG4CXX_ROLLING_SIZE_BASED_TRIGGERING_POLICY_H)
+#define _LOG4CXX_ROLLING_SIZE_BASED_TRIGGERING_POLICY_H
+
+#include <log4cxx/rolling/triggeringpolicy.h>
+
+namespace log4cxx {
+
+ class File;
+
+ namespace helpers {
+ class Pool;
+ }
+
+ namespace rolling {
+
+ /**
+ * SizeBasedTriggeringPolicy looks at size of the file being
+ * currently written to.
+ *
+ *
+ *
+ */
+ class LOG4CXX_EXPORT SizeBasedTriggeringPolicy : public TriggeringPolicy {
+ DECLARE_LOG4CXX_OBJECT(SizeBasedTriggeringPolicy)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(SizeBasedTriggeringPolicy)
+ LOG4CXX_CAST_ENTRY_CHAIN(TriggeringPolicy)
+ END_LOG4CXX_CAST_MAP()
+
+ protected:
+ size_t maxFileSize;
+
+ public:
+ SizeBasedTriggeringPolicy();
+ /**
+ * Determines if a rollover may be appropriate at this time. If
+ * true is returned, RolloverPolicy.rollover will be called but it
+ * can determine that a rollover is not warranted.
+ *
+ * @param appender A reference to the appender.
+ * @param event A reference to the currently event.
+ * @param filename The filename for the currently active log file.
+ * @param fileLength Length of the file in bytes.
+ * @return true if a rollover should occur.
+ */
+ virtual bool isTriggeringEvent(
+ Appender* appender,
+ const log4cxx::spi::LoggingEventPtr& event,
+ const LogString& filename,
+ size_t fileLength);
+
+ size_t getMaxFileSize();
+
+ void setMaxFileSize(size_t l);
+
+ void activateOptions(log4cxx::helpers::Pool&);
+ void setOption(const LogString& option, const LogString& value);
+ };
+
+ LOG4CXX_PTR_DEF(SizeBasedTriggeringPolicy);
+
+ }
+}
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/timebasedrollingpolicy.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/timebasedrollingpolicy.h
new file mode 100644
index 0000000000..d20745e508
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/timebasedrollingpolicy.h
@@ -0,0 +1,227 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#if !defined(_LOG4CXX_ROLLING_TIME_BASED_ROLLING_POLICY_H)
+#define _LOG4CXX_ROLLING_TIME_BASED_ROLLING_POLICY_H
+
+#include <log4cxx/portability.h>
+#include <log4cxx/rolling/rollingpolicybase.h>
+#include <log4cxx/rolling/triggeringpolicy.h>
+
+namespace log4cxx {
+
+ namespace rolling {
+
+
+
+ /**
+ * <code>TimeBasedRollingPolicy</code> is both easy to configure and quite
+ * powerful.
+ *
+ * <p>In order to use <code>TimeBasedRollingPolicy</code>, the
+ * <b>FileNamePattern</b> option must be set. It basically specifies the name of the
+ * rolled log files. The value <code>FileNamePattern</code> should consist of
+ * the name of the file, plus a suitably placed <code>%d</code> conversion
+ * specifier. The <code>%d</code> conversion specifier may contain a date and
+ * time pattern as specified by the {@link log4cxx::helpers::SimpleDateFormat} class. If
+ * the date and time pattern is ommitted, then the default pattern of
+ * "yyyy-MM-dd" is assumed. The following examples should clarify the point.
+ *
+ * <p>
+ * <table cellspacing="5px" border="1">
+ * <tr>
+ * <th><code>FileNamePattern</code> value</th>
+ * <th>Rollover schedule</th>
+ * <th>Example</th>
+ * </tr>
+ * <tr>
+ * <td nowrap="true"><code>/wombat/folder/foo.%d</code></td>
+ * <td>Daily rollover (at midnight). Due to the omission of the optional
+ * time and date pattern for the %d token specifier, the default pattern
+ * of "yyyy-MM-dd" is assumed, which corresponds to daily rollover.
+ * </td>
+ * <td>During November 23rd, 2004, logging output will go to
+ * the file <code>/wombat/foo.2004-11-23</code>. At midnight and for
+ * the rest of the 24th, logging output will be directed to
+ * <code>/wombat/foo.2004-11-24</code>.
+ * </td>
+ * </tr>
+ * <tr>
+ * <td nowrap="true"><code>/wombat/foo.%d{yyyy-MM}.log</code></td>
+ * <td>Rollover at the beginning of each month.</td>
+ * <td>During the month of October 2004, logging output will go to
+ * <code>/wombat/foo.2004-10.log</code>. After midnight of October 31st
+ * and for the rest of November, logging output will be directed to
+ * <code>/wombat/foo.2004-11.log</code>.
+ * </td>
+ * </tr>
+ * </table>
+ * <h2>Automatic file compression</h2>
+ * <code>TimeBasedRollingPolicy</code> supports automatic file compression.
+ * This feature is enabled if the value of the <b>FileNamePattern</b> option
+ * ends with <code>.gz</code> or <code>.zip</code>.
+ * <p>
+ * <table cellspacing="5px" border="1">
+ * <tr>
+ * <th><code>FileNamePattern</code> value</th>
+ * <th>Rollover schedule</th>
+ * <th>Example</th>
+ * </tr>
+ * <tr>
+ * <td nowrap="true"><code>/wombat/foo.%d.gz</code></td>
+ * <td>Daily rollover (at midnight) with automatic GZIP compression of the
+ * arcived files.</td>
+ * <td>During November 23rd, 2004, logging output will go to
+ * the file <code>/wombat/foo.2004-11-23</code>. However, at midnight that
+ * file will be compressed to become <code>/wombat/foo.2004-11-23.gz</code>.
+ * For the 24th of November, logging output will be directed to
+ * <code>/wombat/folder/foo.2004-11-24</code> until its rolled over at the
+ * beginning of the next day.
+ * </td>
+ * </tr>
+ * </table>
+ *
+ * <h2>Decoupling the location of the active log file and the archived log files</h2>
+ * <p>The <em>active file</em> is defined as the log file for the current period
+ * whereas <em>archived files</em> are thos files which have been rolled over
+ * in previous periods.
+ *
+ * <p>By setting the <b>ActiveFileName</b> option you can decouple the location
+ * of the active log file and the location of the archived log files.
+ * <p>
+ * <table cellspacing="5px" border="1">
+ * <tr>
+ * <th><code>FileNamePattern</code> value</th>
+ * <th>ActiveFileName</th>
+ * <th>Rollover schedule</th>
+ * <th>Example</th>
+ * </tr>
+ * <tr>
+ * <td nowrap="true"><code>/wombat/foo.log.%d</code></td>
+ * <td nowrap="true"><code>/wombat/foo.log</code></td>
+ * <td>Daily rollover.</td>
+ *
+ * <td>During November 23rd, 2004, logging output will go to
+ * the file <code>/wombat/foo.log</code>. However, at midnight that file
+ * will archived as <code>/wombat/foo.log.2004-11-23</code>. For the 24th
+ * of November, logging output will be directed to
+ * <code>/wombat/folder/foo.log</code> until its archived as
+ * <code>/wombat/foo.log.2004-11-24</code> at the beginning of the next
+ * day.
+ * </td>
+ * </tr>
+ * </table>
+ * <p>
+ * If configuring programatically, do not forget to call {@link #activateOptions}
+ * method before using this policy. Moreover, {@link #activateOptions} of
+ * <code> TimeBasedRollingPolicy</code> must be called <em>before</em> calling
+ * the {@link #activateOptions} method of the owning
+ * <code>RollingFileAppender</code>.
+ *
+ *
+ *
+ */
+ class LOG4CXX_EXPORT TimeBasedRollingPolicy : public RollingPolicyBase,
+ public TriggeringPolicy {
+ DECLARE_LOG4CXX_OBJECT(TimeBasedRollingPolicy)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(TimeBasedRollingPolicy)
+ LOG4CXX_CAST_ENTRY_CHAIN(RollingPolicyBase)
+ LOG4CXX_CAST_ENTRY_CHAIN(TriggeringPolicy)
+ END_LOG4CXX_CAST_MAP()
+
+ private:
+ /**
+ * Time for next determination if time for rollover.
+ */
+ log4cxx_time_t nextCheck;
+
+ /**
+ * File name at last rollover.
+ */
+ LogString lastFileName;
+
+ /**
+ * Length of any file type suffix (.gz, .zip).
+ */
+ int suffixLength;
+
+ public:
+ TimeBasedRollingPolicy();
+ void addRef() const;
+ void releaseRef() const;
+ void activateOptions(log4cxx::helpers::Pool& );
+ /**
+ * Initialize the policy and return any initial actions for rolling file appender.
+ *
+ * @param file current value of RollingFileAppender.getFile().
+ * @param append current value of RollingFileAppender.getAppend().
+ * @param pool pool for any required allocations.
+ * @return Description of the initialization, may be null to indicate
+ * no initialization needed.
+ * @throws SecurityException if denied access to log files.
+ */
+ RolloverDescriptionPtr initialize(
+ const LogString& file,
+ const bool append,
+ log4cxx::helpers::Pool& pool);
+
+ /**
+ * Prepare for a rollover. This method is called prior to
+ * closing the active log file, performs any necessary
+ * preliminary actions and describes actions needed
+ * after close of current log file.
+ *
+ * @param activeFile file name for current active log file.
+ * @param pool pool for any required allocations.
+ * @return Description of pending rollover, may be null to indicate no rollover
+ * at this time.
+ * @throws SecurityException if denied access to log files.
+ */
+ RolloverDescriptionPtr rollover(const LogString& activeFile,
+ log4cxx::helpers::Pool& pool);
+
+/**
+ * Determines if a rollover may be appropriate at this time. If
+ * true is returned, RolloverPolicy.rollover will be called but it
+ * can determine that a rollover is not warranted.
+ *
+ * @param appender A reference to the appender.
+ * @param event A reference to the currently event.
+ * @param filename The filename for the currently active log file.
+ * @param fileLength Length of the file in bytes.
+ * @return true if a rollover should occur.
+ */
+virtual bool isTriggeringEvent(
+ Appender* appender,
+ const log4cxx::spi::LoggingEventPtr& event,
+ const LogString& filename,
+ size_t fileLength);
+
+ protected:
+ log4cxx::pattern::PatternMap getFormatSpecifiers() const;
+
+ };
+
+ LOG4CXX_PTR_DEF(TimeBasedRollingPolicy);
+
+ }
+}
+
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/triggeringpolicy.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/triggeringpolicy.h
new file mode 100644
index 0000000000..6a71632da4
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/triggeringpolicy.h
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#if !defined(_LOG4CXX_ROLLING_TRIGGER_POLICY_H)
+#define _LOG4CXX_ROLLING_TRIGGER_POLICY_H
+
+
+#include <log4cxx/spi/optionhandler.h>
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/spi/loggingevent.h>
+#include <log4cxx/appender.h>
+
+namespace log4cxx {
+ class File;
+
+ namespace rolling {
+
+ /**
+ * A <code>TriggeringPolicy</code> controls the conditions under which rollover
+ * occurs. Such conditions include time of day, file size, an
+ * external event or a combination thereof.
+ *
+ *
+ *
+ * */
+
+ class LOG4CXX_EXPORT TriggeringPolicy :
+ public virtual spi::OptionHandler,
+ public virtual helpers::ObjectImpl {
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(TriggeringPolicy)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(TriggeringPolicy)
+ LOG4CXX_CAST_ENTRY(spi::OptionHandler)
+ END_LOG4CXX_CAST_MAP()
+ public:
+ virtual ~TriggeringPolicy();
+ void addRef() const;
+ void releaseRef() const;
+
+ /**
+ * Determines if a rollover may be appropriate at this time. If
+ * true is returned, RolloverPolicy.rollover will be called but it
+ * can determine that a rollover is not warranted.
+ *
+ * @param appender A reference to the appender.
+ * @param event A reference to the currently event.
+ * @param filename The filename for the currently active log file.
+ * @param fileLength Length of the file in bytes.
+ * @return true if a rollover should occur.
+ */
+ virtual bool isTriggeringEvent(
+ Appender* appender,
+ const log4cxx::spi::LoggingEventPtr& event,
+ const LogString& filename,
+ size_t fileLength) = 0;
+
+ };
+
+ LOG4CXX_PTR_DEF(TriggeringPolicy);
+
+
+ }
+}
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/zipcompressaction.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/zipcompressaction.h
new file mode 100644
index 0000000000..66a19c6288
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/zipcompressaction.h
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_LOG4CXX_ROLLING_ZIP_COMPRESS_ACTION_H)
+#define _LOG4CXX_ROLLING_ZIP_COMPRESS_ACTION_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/rolling/action.h>
+#include <log4cxx/file.h>
+
+namespace log4cxx {
+ namespace rolling {
+
+
+ class ZipCompressAction : public Action {
+ const File source;
+ const File destination;
+ bool deleteSource;
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(ZipCompressAction)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(ZipCompressAction)
+ LOG4CXX_CAST_ENTRY_CHAIN(Action)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Constructor.
+ */
+ ZipCompressAction(const File& source,
+ const File& destination,
+ bool deleteSource);
+
+ /**
+ * Perform action.
+ *
+ * @return true if successful.
+ */
+ virtual bool execute(log4cxx::helpers::Pool& pool) const;
+
+ private:
+ ZipCompressAction(const ZipCompressAction&);
+ ZipCompressAction& operator=(const ZipCompressAction&);
+ };
+
+ LOG4CXX_PTR_DEF(ZipCompressAction);
+
+ }
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+}
+#endif
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rollingfileappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rollingfileappender.h
new file mode 100644
index 0000000000..f8d519fb3e
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rollingfileappender.h
@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef _LOG4CXX_ROLLING_FILE_APPENDER_H
+#define _LOG4CXX_ROLLING_FILE_APPENDER_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+#include <log4cxx/rolling/rollingfileappenderskeleton.h>
+
+namespace log4cxx
+{
+
+ /** RollingFileAppender extends FileAppender to backup the log files when they reach a certain size. */
+ class LOG4CXX_EXPORT RollingFileAppender : public log4cxx::rolling::RollingFileAppenderSkeleton
+ {
+ private:
+ /** The default maximum file size is 10MB. */
+ long maxFileSize;
+
+ /** There is one backup file by default. */
+ int maxBackupIndex;
+
+ public:
+ //
+ // Use custom class to use non-default name to avoid
+ // conflict with log4cxx::rolling::RollingFileAppender
+ DECLARE_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS( RollingFileAppender, ClassRollingFileAppender )
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY( RollingFileAppender )
+ LOG4CXX_CAST_ENTRY_CHAIN( FileAppender )
+ END_LOG4CXX_CAST_MAP()
+ /** The default constructor simply calls its {@link FileAppender#FileAppender parents constructor}. */
+ RollingFileAppender();
+
+ /**
+ Instantiate a RollingFileAppender and open the file designated by
+ <code>filename</code>. The opened filename will become the ouput destination for this appender.
+
+ <p>If the <code>append</code> parameter is true, the file will be appended to. Otherwise, the file desginated by
+ <code>filename</code> will be truncated before being opened.
+ */
+ RollingFileAppender( const LayoutPtr & layout, const LogString & fileName, bool append );
+
+ /**
+ Instantiate a FileAppender and open the file designated by
+ <code>filename</code>. The opened filename will become the output destination for this appender.
+ <p>The file will be appended to.
+ */
+ RollingFileAppender( const LayoutPtr & layout, const LogString & fileName );
+
+ virtual ~RollingFileAppender();
+
+ /** Returns the value of the <b>MaxBackupIndex</b> option. */
+ int getMaxBackupIndex() const;
+
+ /** Get the maximum size that the output file is allowed to reach before being rolled over to backup files. */
+ long getMaximumFileSize() const;
+
+
+ /**
+ Set the maximum number of backup files to keep around.
+
+ <p>The <b>MaxBackupIndex</b> option determines how many backup
+ files are kept before the oldest is erased. This option takes
+ a positive integer value. If set to zero, then there will be no
+ backup files and the log file will be truncated when it reaches <code>MaxFileSize</code>.
+ */
+ void setMaxBackupIndex( int maxBackupIndex );
+
+ /**
+ Set the maximum size that the output file is allowed to reach before being rolled over to backup files.
+
+ <p>In configuration files, the <b>MaxFileSize</b> option takes an
+ long integer in the range 0 - 2^63. You can specify the value with the suffixes "KB", "MB" or "GB" so that the integer is
+ interpreted being expressed respectively in kilobytes, megabytes
+ or gigabytes. For example, the value "10KB" will be interpreted as 10240.
+ */
+ void setMaxFileSize( const LogString & value );
+
+ void setMaximumFileSize( int value );
+
+
+ virtual void setOption( const LogString & option, const LogString & value );
+
+ /** Prepares RollingFileAppender for use. */
+ void activateOptions( log4cxx::helpers::Pool & pool );
+
+
+ }; // class RollingFileAppender
+ LOG4CXX_PTR_DEF(RollingFileAppender);
+
+ } // namespace log4cxx
+
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+#endif //_LOG4CXX_ROLLING_FILE_APPENDER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/simplelayout.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/simplelayout.h
new file mode 100644
index 0000000000..2dae784060
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/simplelayout.h
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_SIMPLE_LAYOUT_H
+#define _LOG4CXX_SIMPLE_LAYOUT_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/layout.h>
+
+namespace log4cxx
+{
+ /**
+ SimpleLayout consists of the level of the log statement,
+ followed by " - " and then the log message itself. For example,
+
+ <pre>
+ DEBUG - Hello world
+ </pre>
+
+ <p>
+
+ <p>PatternLayout offers a much more powerful alternative.
+ */
+ class LOG4CXX_EXPORT SimpleLayout : public Layout
+ {
+ public:
+ DECLARE_LOG4CXX_OBJECT(SimpleLayout)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(SimpleLayout)
+ LOG4CXX_CAST_ENTRY_CHAIN(Layout)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ Returns the log statement in a format consisting of the
+ <code>level</code>, followed by " - " and then the
+ <code>message</code>. For example, <pre> INFO - "A message"
+ </pre>
+
+ @return A byte array in SimpleLayout format.
+ */
+ virtual void format(LogString& output,
+ const spi::LoggingEventPtr& event,
+ log4cxx::helpers::Pool& pool) const;
+
+ /**
+ The SimpleLayout does not handle the throwable contained within
+ {@link spi::LoggingEvent LoggingEvents}. Thus, it returns
+ <code>true</code>.
+ */
+ bool ignoresThrowable() const { return true; }
+
+ virtual void activateOptions(log4cxx::helpers::Pool& /* p */) {}
+ virtual void setOption(const LogString& /* option */,
+ const LogString& /* value */) {}
+ };
+ LOG4CXX_PTR_DEF(SimpleLayout);
+} // namespace log4cxx
+
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+#endif //_LOG4CXX_SIMPLE_LAYOUT_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/Makefile.am
new file mode 100644
index 0000000000..4e547ca994
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/Makefile.am
@@ -0,0 +1,19 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+SUBDIRS = location
+spiincdir = $(includedir)/log4cxx/spi
+spiinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/spi/*.h
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/Makefile.in
new file mode 100644
index 0000000000..2d7b190323
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/Makefile.in
@@ -0,0 +1,558 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = src/main/include/log4cxx/spi
+DIST_COMMON = $(spiinc_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \
+ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-exec-recursive install-info-recursive \
+ install-recursive installcheck-recursive installdirs-recursive \
+ pdf-recursive ps-recursive uninstall-info-recursive \
+ uninstall-recursive
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(spiincdir)"
+spiincHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(spiinc_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+APR_LIBS = @APR_LIBS@
+APU_LIBS = @APU_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CFSTRING_API = @CFSTRING_API@
+CHARSET_EBCDIC = @CHARSET_EBCDIC@
+CHARSET_ISO88591 = @CHARSET_ISO88591@
+CHARSET_USASCII = @CHARSET_USASCII@
+CHARSET_UTF8 = @CHARSET_UTF8@
+CHAR_API = @CHAR_API@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_ODBC = @CPPFLAGS_ODBC@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOC_FALSE = @DOC_FALSE@
+DOC_TRUE = @DOC_TRUE@
+DOT = @DOT@
+DOXYGEN = @DOXYGEN@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HAS_FWIDE = @HAS_FWIDE@
+HAS_LIBESMTP = @HAS_LIBESMTP@
+HAS_MBSRTOWCS = @HAS_MBSRTOWCS@
+HAS_ODBC = @HAS_ODBC@
+HAS_STD_LOCALE = @HAS_STD_LOCALE@
+HAS_SYSLOG = @HAS_SYSLOG@
+HAS_WCHAR_T = @HAS_WCHAR_T@
+HAS_WCSTOMBS = @HAS_WCSTOMBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IODBC_CONFIG = @IODBC_CONFIG@
+LATEX_DOC_FALSE = @LATEX_DOC_FALSE@
+LATEX_DOC_TRUE = @LATEX_DOC_TRUE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBS_ODBC = @LIBS_ODBC@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@
+LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@
+LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@
+LTLIBOBJS = @LTLIBOBJS@
+LT_VERSION = @LT_VERSION@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+UNICHAR_API = @UNICHAR_API@
+VERSION = @VERSION@
+WCHAR_T_API = @WCHAR_T_API@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+base_dir = @base_dir@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+enable_dot = @enable_dot@
+enable_html_docs = @enable_html_docs@
+enable_latex_docs = @enable_latex_docs@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+manual_dest = @manual_dest@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+SUBDIRS = location
+spiincdir = $(includedir)/log4cxx/spi
+spiinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/spi/*.h
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/spi/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/main/include/log4cxx/spi/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+install-spiincHEADERS: $(spiinc_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(spiincdir)" || $(mkdir_p) "$(DESTDIR)$(spiincdir)"
+ @list='$(spiinc_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(spiincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(spiincdir)/$$f'"; \
+ $(spiincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(spiincdir)/$$f"; \
+ done
+
+uninstall-spiincHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(spiinc_HEADERS)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(spiincdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(spiincdir)/$$f"; \
+ done
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/spi
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(mkdir_p) "$(distdir)/$$subdir" \
+ || exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(HEADERS)
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(spiincdir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-spiincHEADERS
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-spiincHEADERS
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
+ clean clean-generic clean-libtool clean-recursive ctags \
+ ctags-recursive distclean distclean-generic distclean-libtool \
+ distclean-recursive distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-info-am install-man install-spiincHEADERS \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ maintainer-clean-recursive mostlyclean mostlyclean-generic \
+ mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \
+ tags tags-recursive uninstall uninstall-am uninstall-info-am \
+ uninstall-spiincHEADERS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/appenderattachable.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/appenderattachable.h
new file mode 100644
index 0000000000..7fa06fabd6
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/appenderattachable.h
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_SPI_APPENDER_ATTACHABLE_H_
+#define _LOG4CXX_SPI_APPENDER_ATTACHABLE_H_
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+#include <log4cxx/logstring.h>
+#include <vector>
+#include <log4cxx/helpers/objectptr.h>
+#include <log4cxx/helpers/object.h>
+#include <log4cxx/appender.h>
+
+namespace log4cxx
+{
+
+ namespace spi
+ {
+
+ /**
+ * This Interface is for attaching Appenders to objects.
+ */
+ class LOG4CXX_EXPORT AppenderAttachable : public virtual helpers::Object
+ {
+ public:
+ // Methods
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(AppenderAttachable)
+ /**
+ * Add an appender.
+ */
+ virtual void addAppender(const AppenderPtr& newAppender) = 0;
+
+ /**
+ * Get all previously added appenders as an AppenderList.
+ */
+ virtual AppenderList getAllAppenders() const = 0;
+
+ /**
+ * Get an appender by name.
+ */
+ virtual AppenderPtr getAppender(const LogString& name) const = 0;
+
+ /**
+ Returns <code>true</code> if the specified appender is in list of
+ attached attached, <code>false</code> otherwise.
+ */
+ virtual bool isAttached(const AppenderPtr& appender) const = 0;
+
+ /**
+ * Remove all previously added appenders.
+ */
+ virtual void removeAllAppenders() = 0;
+
+ /**
+ * Remove the appender passed as parameter from the list of appenders.
+ */
+ virtual void removeAppender(const AppenderPtr& appender) = 0;
+
+ /**
+ * Remove the appender with the name passed as parameter from the
+ * list of appenders.
+ */
+ virtual void removeAppender(const LogString& name) = 0;
+
+ // Dtor
+ virtual ~AppenderAttachable(){}
+ };
+
+
+ LOG4CXX_PTR_DEF(AppenderAttachable);
+
+ }
+}
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+
+#endif //_LOG4CXX_SPI_APPENDER_ATTACHABLE_H_
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/configurator.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/configurator.h
new file mode 100644
index 0000000000..7ded840975
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/configurator.h
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_SPI_CONFIGURATOR_H
+#define _LOG4CXX_SPI_CONFIGURATOR_H
+
+#include <log4cxx/spi/loggerrepository.h>
+
+namespace log4cxx
+{
+ class File;
+
+ namespace spi
+ {
+ /**
+ Implemented by classes capable of configuring log4j using a URL.
+ */
+ class LOG4CXX_EXPORT Configurator : virtual public helpers::Object
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(Configurator)
+ Configurator();
+
+ /**
+ Interpret a resource pointed by a URL and set up log4j accordingly.
+
+ The configuration is done relative to the <code>hierarchy</code>
+ parameter.
+
+ @param configFileName The file to parse
+ @param repository The hierarchy to operation upon.
+ */
+ virtual void doConfigure(const File& configFileName,
+ spi::LoggerRepositoryPtr& repository) = 0;
+
+
+ private:
+ Configurator(const Configurator&);
+ Configurator& operator=(const Configurator&);
+ bool initialized;
+ };
+
+ LOG4CXX_PTR_DEF(Configurator);
+ }
+}
+
+#endif // _LOG4CXX_SPI_CONFIGURATOR_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/defaultrepositoryselector.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/defaultrepositoryselector.h
new file mode 100644
index 0000000000..9f09908b33
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/defaultrepositoryselector.h
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_SPI_DEFAULT_REPOSITORY_SELECTOR_H
+#define _LOG4CXX_SPI_DEFAULT_REPOSITORY_SELECTOR_H
+
+#include <log4cxx/spi/repositoryselector.h>
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/spi/loggerrepository.h>
+
+namespace log4cxx
+{
+ namespace spi
+ {
+ class LOG4CXX_EXPORT DefaultRepositorySelector :
+ public virtual RepositorySelector,
+ public virtual helpers::ObjectImpl
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(DefaultRepositorySelector)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(RepositorySelector)
+ END_LOG4CXX_CAST_MAP()
+
+ DefaultRepositorySelector(const LoggerRepositoryPtr& repository1);
+ void addRef() const;
+ void releaseRef() const;
+ virtual LoggerRepositoryPtr& getLoggerRepository();
+
+ private:
+ LoggerRepositoryPtr repository;
+ };
+ } // namespace spi
+} // namespace log4cxx
+
+#endif //_LOG4CXX_SPI_DEFAULT_REPOSITORY_SELECTOR_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/errorhandler.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/errorhandler.h
new file mode 100644
index 0000000000..54e82626ea
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/errorhandler.h
@@ -0,0 +1,127 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_SPI_ERROR_HANDLER_H
+#define _LOG4CXX_SPI_ERROR_HANDLER_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/spi/optionhandler.h>
+#include <log4cxx/helpers/exception.h>
+#include <log4cxx/appender.h>
+#include <log4cxx/spi/loggingevent.h>
+
+namespace log4cxx
+{
+ namespace spi
+ {
+ class ErrorCode
+ {
+ public:
+ enum
+ {
+ GENERIC_FAILURE = 0,
+ WRITE_FAILURE = 1,
+ FLUSH_FAILURE = 2,
+ CLOSE_FAILURE = 3,
+ FILE_OPEN_FAILURE = 4,
+ MISSING_LAYOUT = 5,
+ ADDRESS_PARSE_FAILURE = 6
+ };
+ };
+
+
+ /**
+ Appenders may delegate their error handling to
+ <code>ErrorHandlers</code>.
+
+ <p>Error handling is a particularly tedious to get right because by
+ definition errors are hard to predict and to reproduce.
+
+
+ <p>Please take the time to contact the author in case you discover
+ that errors are not properly handled. You are most welcome to
+ suggest new error handling policies or criticize existing policies.
+ */
+ class LOG4CXX_EXPORT ErrorHandler : public virtual OptionHandler
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(ErrorHandler)
+ virtual ~ErrorHandler() {}
+
+ /**
+ Add a reference to a logger to which the failing appender might
+ be attached to. The failing appender will be searched and
+ replaced only in the loggers you add through this method.
+
+ @param logger One of the loggers that will be searched for the failing
+ appender in view of replacement.
+ */
+ virtual void setLogger(const LoggerPtr& logger) = 0;
+
+
+ /**
+ Equivalent to the error(const String&, helpers::Exception&, int,
+ spi::LoggingEvent&) with the the event parameteter set to
+ null.
+ */
+ virtual void error(const LogString& message, const std::exception& e,
+ int errorCode) const = 0;
+
+ /**
+ This method is normally used to just print the error message
+ passed as a parameter.
+ */
+ virtual void error(const LogString& message) const = 0;
+
+ /**
+ This method is invoked to handle the error.
+
+ @param message The message assoicated with the error.
+ @param e The Exption that was thrown when the error occured.
+ @param errorCode The error code associated with the error.
+ @param event The logging event that the failing appender is asked
+ to log.
+ */
+ virtual void error(const LogString& message, const std::exception& e,
+ int errorCode, const LoggingEventPtr& event) const = 0;
+
+ /**
+ Set the appender for which errors are handled. This method is
+ usually called when the error handler is configured.
+ */
+ virtual void setAppender(const AppenderPtr& appender) = 0;
+
+ /**
+ Set the appender to fallback upon in case of failure.
+ */
+ virtual void setBackupAppender(const AppenderPtr& appender) = 0;
+ };
+
+ LOG4CXX_PTR_DEF(ErrorHandler);
+ } //namespace spi
+} //namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+#endif //_LOG4CXX_SPI_ERROR_HANDLER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/filter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/filter.h
new file mode 100644
index 0000000000..83c5dc7f01
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/filter.h
@@ -0,0 +1,133 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_SPI_FILTER_H
+#define _LOG4CXX_SPI_FILTER_H
+
+#include <log4cxx/helpers/objectptr.h>
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/spi/optionhandler.h>
+#include <log4cxx/spi/loggingevent.h>
+
+namespace log4cxx
+{
+ namespace spi
+ {
+ class Filter;
+ LOG4CXX_PTR_DEF(Filter);
+
+
+ /**
+ Users should extend this class to implement customized logging
+ event filtering. Note that Logger and
+ AppenderSkeleton, the parent class of all standard
+ appenders, have built-in filtering rules. It is suggested that you
+ first use and understand the built-in rules before rushing to write
+ your own custom filters.
+
+ <p>This abstract class assumes and also imposes that filters be
+ organized in a linear chain. The {@link #decide
+ decide(LoggingEvent)} method of each filter is called sequentially,
+ in the order of their addition to the chain.
+
+ <p>The {@link #decide decide(LoggingEvent)} method must return one
+ of the integer constants #DENY, #NEUTRAL or
+ #ACCEPT.
+
+ <p>If the value #DENY is returned, then the log event is
+ dropped immediately without consulting with the remaining
+ filters.
+
+ <p>If the value #NEUTRAL is returned, then the next filter
+ in the chain is consulted. If there are no more filters in the
+ chain, then the log event is logged. Thus, in the presence of no
+ filters, the default behaviour is to log all logging events.
+
+ <p>If the value #ACCEPT is returned, then the log
+ event is logged without consulting the remaining filters.
+
+ <p>The philosophy of log4cxx filters is largely inspired from the
+ Linux ipchains.
+
+ <p>Note that filtering is only supported by the {@link
+ xml::DOMConfigurator DOMConfigurator}.
+ */
+ class LOG4CXX_EXPORT Filter : public virtual OptionHandler,
+ public virtual helpers::ObjectImpl
+ {
+ /**
+ Points to the next filter in the filter chain.
+ */
+ FilterPtr next;
+ public:
+ Filter();
+
+ void addRef() const;
+ void releaseRef() const;
+
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(Filter)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(Filter)
+ LOG4CXX_CAST_ENTRY(spi::OptionHandler)
+ END_LOG4CXX_CAST_MAP()
+
+ log4cxx::spi::FilterPtr getNext() const;
+ void setNext(const log4cxx::spi::FilterPtr& newNext);
+
+ enum FilterDecision
+ {
+ /**
+ The log event must be dropped immediately without consulting
+ with the remaining filters, if any, in the chain. */
+ DENY = -1,
+ /**
+ This filter is neutral with respect to the log event. The
+ remaining filters, if any, should be consulted for a final decision.
+ */
+ NEUTRAL = 0,
+ /**
+ The log event must be logged immediately without consulting with
+ the remaining filters, if any, in the chain.
+ */
+ ACCEPT = 1
+
+ };
+
+
+ /**
+ Usually filters options become active when set. We provide a
+
+ default do-nothing implementation for convenience.
+ */
+ void activateOptions(log4cxx::helpers::Pool& p);
+ void setOption(const LogString& option, const LogString& value);
+
+ /**
+ <p>If the decision is <code>DENY</code>, then the event will be
+ dropped. If the decision is <code>NEUTRAL</code>, then the next
+ filter, if any, will be invoked. If the decision is ACCEPT then
+ the event will be logged without consulting with other filters in
+ the chain.
+
+ @param event The LoggingEvent to decide upon.
+ @return The decision of the filter. */
+ virtual FilterDecision decide(const LoggingEventPtr& event) const = 0;
+ };
+ }
+}
+
+#endif //_LOG4CXX_SPI_FILTER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/hierarchyeventlistener.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/hierarchyeventlistener.h
new file mode 100644
index 0000000000..711239752f
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/hierarchyeventlistener.h
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_SPI_HIERARCHY_EVENT_LISTENER_H
+#define _LOG4CXX_SPI_HIERARCHY_EVENT_LISTENER_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/helpers/object.h>
+#include <log4cxx/helpers/objectptr.h>
+#include <vector>
+
+namespace log4cxx
+{
+ class Logger;
+ class Appender;
+
+
+ namespace spi
+ {
+
+ /** Listen to events occuring within a Hierarchy.*/
+ class LOG4CXX_EXPORT HierarchyEventListener :
+ public virtual log4cxx::helpers::Object
+ {
+ public:
+ virtual ~HierarchyEventListener() {}
+
+ virtual void addAppenderEvent(
+ const log4cxx::helpers::ObjectPtrT<Logger>& logger,
+ const log4cxx::helpers::ObjectPtrT<Appender>& appender) = 0;
+
+ virtual void removeAppenderEvent(
+ const log4cxx::helpers::ObjectPtrT<Logger>& logger,
+ const log4cxx::helpers::ObjectPtrT<Appender>& appender) = 0;
+ };
+ LOG4CXX_PTR_DEF(HierarchyEventListener);
+ LOG4CXX_LIST_DEF(HierarchyEventListenerList, HierarchyEventListenerPtr);
+
+ } // namespace spi
+} // namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+#endif //_LOG4CXX_SPI_HIERARCHY_EVENT_LISTENER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/Makefile.am
new file mode 100644
index 0000000000..6b780ae5ed
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/Makefile.am
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+spiincdir = $(includedir)/log4cxx/spi/location
+spiinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/spi/location/*.h
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/Makefile.in
new file mode 100644
index 0000000000..ede7a96b95
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/Makefile.in
@@ -0,0 +1,446 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../../../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = src/main/include/log4cxx/spi/location
+DIST_COMMON = $(spiinc_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \
+ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(spiincdir)"
+spiincHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(spiinc_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+APR_LIBS = @APR_LIBS@
+APU_LIBS = @APU_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CFSTRING_API = @CFSTRING_API@
+CHARSET_EBCDIC = @CHARSET_EBCDIC@
+CHARSET_ISO88591 = @CHARSET_ISO88591@
+CHARSET_USASCII = @CHARSET_USASCII@
+CHARSET_UTF8 = @CHARSET_UTF8@
+CHAR_API = @CHAR_API@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_ODBC = @CPPFLAGS_ODBC@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOC_FALSE = @DOC_FALSE@
+DOC_TRUE = @DOC_TRUE@
+DOT = @DOT@
+DOXYGEN = @DOXYGEN@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HAS_FWIDE = @HAS_FWIDE@
+HAS_LIBESMTP = @HAS_LIBESMTP@
+HAS_MBSRTOWCS = @HAS_MBSRTOWCS@
+HAS_ODBC = @HAS_ODBC@
+HAS_STD_LOCALE = @HAS_STD_LOCALE@
+HAS_SYSLOG = @HAS_SYSLOG@
+HAS_WCHAR_T = @HAS_WCHAR_T@
+HAS_WCSTOMBS = @HAS_WCSTOMBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IODBC_CONFIG = @IODBC_CONFIG@
+LATEX_DOC_FALSE = @LATEX_DOC_FALSE@
+LATEX_DOC_TRUE = @LATEX_DOC_TRUE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBS_ODBC = @LIBS_ODBC@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@
+LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@
+LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@
+LTLIBOBJS = @LTLIBOBJS@
+LT_VERSION = @LT_VERSION@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+UNICHAR_API = @UNICHAR_API@
+VERSION = @VERSION@
+WCHAR_T_API = @WCHAR_T_API@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+base_dir = @base_dir@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+enable_dot = @enable_dot@
+enable_html_docs = @enable_html_docs@
+enable_latex_docs = @enable_latex_docs@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+manual_dest = @manual_dest@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+spiincdir = $(includedir)/log4cxx/spi/location
+spiinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/spi/location/*.h
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/spi/location/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/main/include/log4cxx/spi/location/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+install-spiincHEADERS: $(spiinc_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(spiincdir)" || $(mkdir_p) "$(DESTDIR)$(spiincdir)"
+ @list='$(spiinc_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(spiincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(spiincdir)/$$f'"; \
+ $(spiincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(spiincdir)/$$f"; \
+ done
+
+uninstall-spiincHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(spiinc_HEADERS)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(spiincdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(spiincdir)/$$f"; \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ $(mkdir_p) $(distdir)/../../../../../../src/main/include/log4cxx/spi/location
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(spiincdir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-spiincHEADERS
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-spiincHEADERS
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool ctags distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-info-am install-man install-spiincHEADERS \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-info-am \
+ uninstall-spiincHEADERS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/locationinfo.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/locationinfo.h
new file mode 100644
index 0000000000..fc98121dce
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/locationinfo.h
@@ -0,0 +1,136 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_SPI_LOCATION_LOCATIONINFO_H
+#define _LOG4CXX_SPI_LOCATION_LOCATIONINFO_H
+
+#include <log4cxx/log4cxx.h>
+#include <string>
+#include <log4cxx/helpers/objectoutputstream.h>
+
+namespace log4cxx
+{
+ namespace spi
+ {
+ /**
+ * This class represents the location of a logging statement.
+ *
+ */
+ class LOG4CXX_EXPORT LocationInfo
+ {
+ public:
+
+
+
+ /**
+ * When location information is not available the constant
+ * <code>NA</code> is returned. Current value of this string constant is <b>?</b>.
+ */
+ static const char * const NA;
+ static const char * const NA_METHOD;
+
+ static const LocationInfo& getLocationUnavailable();
+
+
+
+ /**
+ * Constructor.
+ * @remarks Used by LOG4CXX_LOCATION to generate
+ * location info for current code site
+ */
+ LocationInfo( const char * const fileName,
+ const char * const functionName,
+ int lineNumber);
+
+ /**
+ * Default constructor.
+ */
+ LocationInfo();
+
+ /**
+ * Copy constructor.
+ * @param src source location
+ */
+ LocationInfo( const LocationInfo & src );
+
+ /**
+ * Assignment operator.
+ * @param src source location
+ */
+ LocationInfo & operator = ( const LocationInfo & src );
+
+ /**
+ * Resets location info to default state.
+ */
+ void clear();
+
+
+ /** Return the class name of the call site. */
+ const std::string getClassName() const;
+
+ /**
+ * Return the file name of the caller.
+ * @returns file name, may be null.
+ */
+ const std::string& getFileName() const;
+
+ /**
+ * Returns the line number of the caller.
+ * @returns line number, -1 if not available.
+ */
+ int getLineNumber() const;
+
+ /** Returns the method name of the caller. */
+ const std::string getMethodName() const;
+
+ void write(log4cxx::helpers::ObjectOutputStream& os, log4cxx::helpers::Pool& p) const;
+
+
+ private:
+ /** Caller's line number. */
+ int lineNumber;
+
+ /** Caller's file name. */
+ std::string fileName;
+
+ /** Caller's method name. */
+ std::string methodName;
+
+
+ };
+ }
+}
+
+ #if !defined(LOG4CXX_LOCATION)
+#if defined(_MSC_VER)
+#if _MSC_VER >= 1300
+ #define __LOG4CXX_FUNC__ __FUNCSIG__
+#endif
+#else
+#if defined(__GNUC__)
+ #define __LOG4CXX_FUNC__ __PRETTY_FUNCTION__
+#endif
+#endif
+#if !defined(__LOG4CXX_FUNC__)
+#define __LOG4CXX_FUNC__ ""
+#endif
+ #define LOG4CXX_LOCATION ::log4cxx::spi::LocationInfo(__FILE__, \
+ __LOG4CXX_FUNC__, \
+ __LINE__)
+ #endif
+
+#endif //_LOG4CXX_SPI_LOCATION_LOCATIONINFO_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggerfactory.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggerfactory.h
new file mode 100644
index 0000000000..07f8be91cb
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggerfactory.h
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_SPI_LOGGERFACTORY_H
+#define _LOG4CXX_SPI_LOGGERFACTORY_H
+
+#include <log4cxx/logger.h>
+
+namespace log4cxx
+{
+
+ namespace spi
+ {
+ /**
+ Implement this interface to create new instances of Logger or
+ a sub-class of Logger.
+ */
+ class LOG4CXX_EXPORT LoggerFactory : public virtual helpers::Object
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(LoggerFactory)
+ virtual ~LoggerFactory() {}
+ virtual LoggerPtr makeNewLoggerInstance(
+ log4cxx::helpers::Pool& pool,
+ const LogString& name) const = 0;
+ };
+
+
+ } // namespace spi
+} // namesapce log4cxx
+
+#endif //_LOG4CXX_SPI_LOGGERFACTORY_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggerrepository.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggerrepository.h
new file mode 100644
index 0000000000..4fe795771c
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggerrepository.h
@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_SPI_LOG_REPOSITORY_H
+#define _LOG4CXX_SPI_LOG_REPOSITORY_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+#include <log4cxx/appender.h>
+#include <log4cxx/spi/loggerfactory.h>
+#include <log4cxx/level.h>
+#include <log4cxx/spi/hierarchyeventlistener.h>
+
+namespace log4cxx
+{
+ namespace spi
+ {
+
+ /**
+ A <code>LoggerRepository</code> is used to create and retrieve
+ <code>Loggers</code>. The relation between loggers in a repository
+ depends on the repository but typically loggers are arranged in a
+ named hierarchy.
+
+ <p>In addition to the creational methods, a
+ <code>LoggerRepository</code> can be queried for existing loggers,
+ can act as a point of registry for events related to loggers.
+ */
+ class LOG4CXX_EXPORT LoggerRepository : public virtual helpers::Object
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(LoggerRepository)
+ virtual ~LoggerRepository() {}
+
+ /**
+ Add a {@link spi::HierarchyEventListener HierarchyEventListener}
+ event to the repository.
+ */
+ virtual void addHierarchyEventListener(const HierarchyEventListenerPtr&
+ listener) = 0;
+ /**
+ Is the repository disabled for a given level? The answer depends
+ on the repository threshold and the <code>level</code>
+ parameter. See also #setThreshold method. */
+ virtual bool isDisabled(int level) const = 0;
+
+ /**
+ Set the repository-wide threshold. All logging requests below the
+ threshold are immediately dropped. By default, the threshold is
+ set to <code>Level::getAll()</code> which has the lowest possible rank. */
+ virtual void setThreshold(const LevelPtr& level) = 0;
+
+ /**
+ Another form of {@link #setThreshold(const LevelPtr&)
+ setThreshold} accepting a string
+ parameter instead of a <code>Level</code>. */
+ virtual void setThreshold(const LogString& val) = 0;
+
+ virtual void emitNoAppenderWarning(const LoggerPtr& logger) = 0;
+
+ /**
+ Get the repository-wide threshold. See {@link
+ #setThreshold(const LevelPtr&) setThreshold}
+ for an explanation. */
+ virtual const LevelPtr& getThreshold() const = 0;
+
+ virtual LoggerPtr getLogger(const LogString& name) = 0;
+
+ virtual LoggerPtr getLogger(const LogString& name,
+ const spi::LoggerFactoryPtr& factory) = 0;
+
+ virtual LoggerPtr getRootLogger() const = 0;
+
+ virtual LoggerPtr exists(const LogString& name) = 0;
+
+ virtual void shutdown() = 0;
+
+ virtual LoggerList getCurrentLoggers() const = 0;
+
+ virtual void fireAddAppenderEvent(const LoggerPtr& logger,
+ const AppenderPtr& appender) = 0;
+
+ virtual void resetConfiguration() = 0;
+
+ virtual bool isConfigured() = 0;
+ virtual void setConfigured(bool configured) = 0;
+
+ }; // class LoggerRepository
+
+ } // namespace spi
+} // namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+
+#endif //_LOG4CXX_SPI_LOG_REPOSITORY_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggingevent.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggingevent.h
new file mode 100644
index 0000000000..2c9c353f8b
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggingevent.h
@@ -0,0 +1,284 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_SPI_LOGGING_EVENT_H
+#define _LOG4CXX_SPI_LOGGING_EVENT_H
+
+#if defined(_MSC_VER)
+#pragma warning (push)
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+
+#include <log4cxx/helpers/objectptr.h>
+#include <log4cxx/logstring.h>
+#include <time.h>
+#include <log4cxx/logger.h>
+#include <log4cxx/mdc.h>
+#include <log4cxx/spi/location/locationinfo.h>
+#include <vector>
+
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ class ObjectOutputStream;
+ }
+
+ namespace spi
+ {
+
+ /**
+ The internal representation of logging events. When an affirmative
+ decision is made to log then a <code>LoggingEvent</code> instance
+ is created. This instance is passed around to the different log4cxx
+ components.
+
+ <p>This class is of concern to those wishing to extend log4cxx.
+ */
+ class LOG4CXX_EXPORT LoggingEvent :
+ public virtual helpers::ObjectImpl
+ {
+ public:
+ DECLARE_LOG4CXX_OBJECT(LoggingEvent)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(LoggingEvent)
+ END_LOG4CXX_CAST_MAP()
+
+ /** For serialization only
+ */
+ LoggingEvent();
+
+ /**
+ Instantiate a LoggingEvent from the supplied parameters.
+
+ <p>Except timeStamp all the other fields of
+ <code>LoggingEvent</code> are filled when actually needed.
+ <p>
+ @param logger The logger of this event.
+ @param level The level of this event.
+ @param message The message of this event.
+ @param location location of logging request.
+ */
+ LoggingEvent(const LogString& logger,
+ const LevelPtr& level, const LogString& message,
+ const log4cxx::spi::LocationInfo& location);
+
+ /**
+ Instantiate a LoggingEvent from the supplied parameters.
+
+ <p>All the fields of
+ <code>LoggingEvent</code> are filled when actually needed.
+ <p>
+ @param logger The logger of this event.
+ @param level The level of this event.
+ @param message The message of this event.
+ @param timeStamp Event time stamp.
+ @param location location of logging request.
+ @param threadName Event thread name.
+ */
+ LoggingEvent(const LogString& logger,
+ const LevelPtr& level, const LogString& message,
+ log4cxx_time_t timeStamp,
+ const log4cxx::spi::LocationInfo& location,
+ const LogString& threadName);
+
+ ~LoggingEvent();
+
+ /** Return the level of this event. */
+ inline const LevelPtr& getLevel() const
+ { return level; }
+
+ /** Return the name of the logger. */
+ inline const LogString& getLoggerName() const {
+ return logger;
+ }
+
+ /** Return the message for this logging event. */
+ inline const LogString& getMessage() const
+ { return message; }
+
+ /** Return the message for this logging event. */
+ inline const LogString& getRenderedMessage() const
+ { return message; }
+
+ /**Returns the time when the application started,
+ in seconds elapsed since 01.01.1970.
+ */
+ static log4cxx_time_t getStartTime();
+
+ /** Return current thread name. */
+ static const LogString getCurrentThreadName();
+
+ /** Return the threadName of this event. */
+ inline const LogString& getThreadName() const {
+ return threadName;
+ }
+
+ /** Return the timeStamp of this event. */
+ inline log4cxx_time_t getTimeStamp() const
+ { return timeStamp; }
+
+ /* Return the file where this log statement was written. */
+ inline const log4cxx::spi::LocationInfo& getLocationInformation() const
+ { return locationInfo; }
+
+ /**
+ * This method appends the NDC for this event to passed string. It will return the
+ * correct content even if the event was generated in a different
+ * thread or even on a different machine. The NDC#get method
+ * should <em>never</em> be called directly.
+ *
+ * @param dest destination for NDC, unchanged if NDC is not set.
+ * @return true if NDC is set.
+ */
+ bool getNDC(LogString& dest) const;
+
+ /**
+ * Writes the content of the LoggingEvent
+ * in a format compatible with log4j's serialized form.
+ */
+ void write(helpers::ObjectOutputStream& os, helpers::Pool& p) const;
+
+ /**
+ * Appends the the context corresponding to the <code>key</code> parameter.
+ * If there is a local MDC copy, possibly because we are in a logging
+ * server or running inside AsyncAppender, then we search for the key in
+ * MDC copy, if a value is found it is returned. Otherwise, if the search
+ * in MDC copy returns an empty result, then the current thread's
+ * <code>MDC</code> is used.
+ *
+ * <p>
+ * Note that <em>both</em> the local MDC copy and the current thread's MDC
+ * are searched.
+ * </p>
+ * @param key key.
+ * @param dest string to which value, if any, is appended.
+ * @return true if key had a corresponding value.
+ */
+ bool getMDC(const LogString& key, LogString& dest) const;
+
+ LOG4CXX_LIST_DEF(KeySet, LogString);
+ /**
+ * Returns the set of of the key values in the MDC for the event.
+ * The returned set is unmodifiable by the caller.
+ *
+ * @return Set an unmodifiable set of the MDC keys.
+ *
+ */
+ KeySet getMDCKeySet() const;
+
+ /**
+ Obtain a copy of this thread's MDC prior to serialization
+ or asynchronous logging.
+ */
+ void getMDCCopy() const;
+
+ /**
+ * Return a previously set property.
+ * @param key key.
+ * @param dest string to which value, if any, is appended.
+ * @return true if key had a corresponding value.
+ */
+ bool getProperty(const LogString& key, LogString& dest) const;
+ /**
+ * Returns the set of of the key values in the properties
+ * for the event. The returned set is unmodifiable by the caller.
+ *
+ * @return Set an unmodifiable set of the property keys.
+ */
+ KeySet getPropertyKeySet() const;
+
+ /**
+ * Set a string property using a key and a string value. since 1.3
+ */
+ void setProperty(const LogString& key, const LogString& value);
+
+ private:
+ /**
+ * The logger of the logging event.
+ **/
+ LogString logger;
+
+ /** level of logging event. */
+ LevelPtr level;
+
+ /** The nested diagnostic context (NDC) of logging event. */
+ mutable LogString* ndc;
+
+ /** The mapped diagnostic context (MDC) of logging event. */
+ mutable MDC::Map* mdcCopy;
+
+ /**
+ * A map of String keys and String values.
+ */
+ std::map<LogString, LogString> * properties;
+
+ /** Have we tried to do an NDC lookup? If we did, there is no need
+ * to do it again. Note that its value is always false when
+ * serialized. Thus, a receiving SocketNode will never use it's own
+ * (incorrect) NDC. See also writeObject method.
+ */
+ mutable bool ndcLookupRequired;
+
+ /**
+ * Have we tried to do an MDC lookup? If we did, there is no need to do it
+ * again. Note that its value is always false when serialized. See also
+ * the getMDC and getMDCCopy methods.
+ */
+ mutable bool mdcCopyLookupRequired;
+
+ /** The application supplied message of logging event. */
+ LogString message;
+
+
+ /** The number of milliseconds elapsed from 1/1/1970 until logging event
+ was created. */
+ log4cxx_time_t timeStamp;
+
+ /** The is the location where this log statement was written. */
+ const log4cxx::spi::LocationInfo locationInfo;
+
+
+ /** The identifier of thread in which this logging event
+ was generated.
+ */
+ const LogString threadName;
+
+ //
+ // prevent copy and assignment
+ //
+ LoggingEvent(const LoggingEvent&);
+ LoggingEvent& operator=(const LoggingEvent&);
+
+ static void writeProlog(log4cxx::helpers::ObjectOutputStream& os, log4cxx::helpers::Pool& p);
+
+ };
+
+ LOG4CXX_PTR_DEF(LoggingEvent);
+ LOG4CXX_LIST_DEF(LoggingEventList, LoggingEventPtr);
+ }
+}
+
+#if defined(_MSC_VER)
+#pragma warning (pop)
+#endif
+
+
+#endif //_LOG4CXX_SPI_LOGGING_EVENT_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/optionhandler.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/optionhandler.h
new file mode 100644
index 0000000000..88cd9547cd
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/optionhandler.h
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_SPI_OPTION_HANDLER_H
+#define _LOG4CXX_SPI_OPTION_HANDLER_H
+
+#include <log4cxx/logstring.h>
+#include <log4cxx/helpers/object.h>
+#include <log4cxx/helpers/objectptr.h>
+
+namespace log4cxx
+{
+ namespace spi
+ {
+ class OptionHandler;
+ typedef helpers::ObjectPtrT<OptionHandler> OptionHandlerPtr;
+
+ /**
+ A string based interface to configure package components.
+ */
+ class LOG4CXX_EXPORT OptionHandler : public virtual helpers::Object
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(OptionHandler)
+ virtual ~OptionHandler() {}
+
+ /**
+ Activate the options that were previously set with calls to option
+ setters.
+
+ <p>This allows to defer activiation of the options until all
+ options have been set. This is required for components which have
+ related options that remain ambigous until all are set.
+
+ <p>For example, the FileAppender has the {@link
+ FileAppender#setFile File} and {@link
+ FileAppender#setAppend Append} options both of
+ which are ambigous until the other is also set. */
+ virtual void activateOptions(log4cxx::helpers::Pool& p) = 0;
+
+
+ /**
+ Set <code>option</code> to <code>value</code>.
+
+ <p>The handling of each option depends on the OptionHandler
+ instance. Some options may become active immediately whereas
+ other may be activated only when #activateOptions is
+ called.
+ */
+ virtual void setOption(const LogString& option,
+ const LogString& value) = 0;
+
+ }; // class OptionConverter
+ } // namespace spi
+} // namespace log4cxx
+
+
+#endif //_LOG4CXX_SPI_OPTION_HANDLER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/repositoryselector.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/repositoryselector.h
new file mode 100644
index 0000000000..1d1bf0ccb4
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/repositoryselector.h
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_SPI_REPOSITORY_SELECTOR_H
+#define _LOG4CXX_SPI_REPOSITORY_SELECTOR_H
+
+#include <log4cxx/helpers/objectptr.h>
+#include <log4cxx/helpers/object.h>
+
+namespace log4cxx
+{
+ namespace spi
+ {
+ class LoggerRepository;
+ typedef helpers::ObjectPtrT<LoggerRepository> LoggerRepositoryPtr;
+
+ /**
+ The <code>LogManager</code> uses one (and only one)
+ <code>RepositorySelector</code> implementation to select the
+ {@link log4cxx::spi::LoggerRepository LoggerRepository}
+ for a particular application context.
+
+ <p>It is the responsability of the <code>RepositorySelector</code>
+ implementation to track the application context. log4cxx makes no
+ assumptions about the application context or on its management.
+
+ <p>See also LogManager.
+ */
+ class LOG4CXX_EXPORT RepositorySelector : public virtual helpers::Object
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(RepositorySelector)
+ virtual ~RepositorySelector() {}
+ virtual LoggerRepositoryPtr& getLoggerRepository() = 0;
+ };
+ LOG4CXX_PTR_DEF(RepositorySelector);
+ } //namespace spi
+} //namespace log4cxx
+
+#endif //_LOG4CXX_SPI_REPOSITORY_SELECTOR_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/rootlogger.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/rootlogger.h
new file mode 100644
index 0000000000..5027385ae8
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/rootlogger.h
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_SPI_ROOT_LOGGER_H
+#define _LOG4CXX_SPI_ROOT_LOGGER_H
+
+#include <log4cxx/logger.h>
+
+namespace log4cxx
+{
+ namespace spi
+ {
+ /**
+ RootLogger sits at the top of the logger hierachy. It is a
+ regular logger except that it provides several guarantees.
+
+ <p>First, it cannot be assigned a null
+ level. Second, since root logger cannot have a parent, the
+ #getEffectiveLevel method always returns the value of the
+ level field without walking the hierarchy.
+ */
+ class LOG4CXX_EXPORT RootLogger : public Logger
+ {
+ public:
+ /**
+ The root logger names itself as "root". However, the root
+ logger cannot be retrieved by name.
+ */
+ RootLogger(log4cxx::helpers::Pool& pool, const LevelPtr& level);
+
+ /**
+ Return the assigned level value without walking the logger
+ hierarchy.
+ */
+ virtual const LevelPtr& getEffectiveLevel() const;
+
+ /**
+ Setting a null value to the level of the root logger may have catastrophic
+ results. We prevent this here.
+ */
+ void setLevel(const LevelPtr& level);
+ };
+ } // namespace spi
+} // namespace log4cxx
+
+#endif //_LOG4CXX_SPI_ROOT_LOGGER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/triggeringeventevaluator.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/triggeringeventevaluator.h
new file mode 100644
index 0000000000..3c6b054a79
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/triggeringeventevaluator.h
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_SPI_TRIGGERING_EVENT_EVALUATOR_H
+#define _LOG4CXX_SPI_TRIGGERING_EVENT_EVALUATOR_H
+
+#include <log4cxx/spi/loggingevent.h>
+
+namespace log4cxx
+{
+ namespace spi
+ {
+ /**
+ Implementions of this interface allow certain appenders to decide
+ when to perform an appender specific action.
+
+ <p>For example the {@link net::SMTPAppender SMTPAppender} sends
+ an email when the #isTriggeringEvent method returns
+ <code>true</code> and adds the event to an internal buffer when the
+ returned result is <code>false</code>.
+
+ */
+ class LOG4CXX_EXPORT TriggeringEventEvaluator : public virtual helpers::Object
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(TriggeringEventEvaluator)
+ /**
+ Is this the triggering event?
+ */
+ virtual bool isTriggeringEvent(const spi::LoggingEventPtr& event) = 0;
+ };
+ LOG4CXX_PTR_DEF(TriggeringEventEvaluator);
+ }
+}
+
+#endif // _LOG4CXX_SPI_TRIGGERING_EVENT_EVALUATOR_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/stream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/stream.h
new file mode 100644
index 0000000000..8edec0dd9e
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/stream.h
@@ -0,0 +1,566 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_STREAM_H
+#define _LOG4CXX_STREAM_H
+
+#include <log4cxx/logger.h>
+#include <sstream>
+#include <log4cxx/spi/location/locationinfo.h>
+
+namespace log4cxx
+{
+
+ /**
+ * Base class for the basic_logstream template which attempts
+ * to emulate std::basic_ostream but attempts to short-circuit
+ * unnecessary operations.
+ *
+ * The logstream has a logger and level that are used for logging
+ * requests. The level of the stream is compared against the
+ * current level of the logger to determine if the request should be processed.
+ */
+ class LOG4CXX_EXPORT logstream_base {
+ public:
+ /**
+ * Create new instance.
+ * @param logger logger logger used in log requests.
+ * @param level indicates level that will be used in log requests. Can
+ * be modified later by inserting a level or calling setLevel.
+ */
+ logstream_base(const log4cxx::LoggerPtr& logger,
+ const log4cxx::LevelPtr& level);
+ /**
+ * Destructor.
+ */
+ virtual ~logstream_base();
+ /**
+ * Insertion operator for std::fixed and similar manipulators.
+ */
+ void insert(std::ios_base& (*manip)(std::ios_base&));
+
+ /**
+ * get precision.
+ */
+ int precision();
+ /**
+ * get width.
+ */
+ int width();
+ /**
+ * set precision. This should be used in preference to inserting an std::setprecision(n)
+ * since the other requires construction of an STL stream which may be expensive.
+ */
+ int precision(int newval);
+ /**
+ * set width. This should be used in preference to inserting an std::setw(n)
+ * since the other requires construction of an STL stream which may be expensive.
+ */
+ int width(int newval);
+ /**
+ * Get fill character.
+ */
+ int fill();
+ /**
+ * Set fill character.
+ */
+ int fill(int newval);
+
+ /**
+ * Set flags. see std::ios_base.
+ */
+ std::ios_base::fmtflags flags(std::ios_base::fmtflags newflags);
+ /**
+ * Set flags. see std::ios_base.
+ */
+ std::ios_base::fmtflags setf(std::ios_base::fmtflags newflags, std::ios_base::fmtflags mask);
+ /**
+ * Set flags. see std::ios_base.
+ */
+ std::ios_base::fmtflags setf(std::ios_base::fmtflags newflags);
+
+
+ /**
+ * end of message manipulator, triggers logging.
+ */
+ static logstream_base& endmsg(logstream_base&);
+
+ /**
+ * no-operation manipulator, Used to avoid ambiguity with VC6.
+ */
+ static logstream_base& nop(logstream_base&);
+
+ /**
+ * end of message action.
+ */
+ void end_message();
+
+
+
+ /**
+ * Set the level.
+ * @param level level
+ */
+ void setLevel(const LevelPtr& level);
+ /**
+ * Returns true if the current level is the same or high as the
+ * level of logger at time of construction or last setLevel.
+ */
+ inline bool isEnabled() const {
+ return enabled;
+ }
+
+ /**
+ * Returns if logger is currently enabled for the specified level.
+ */
+ bool isEnabledFor(const LevelPtr& level) const;
+
+ /**
+ * Sets the location for subsequent log requests.
+ */
+ void setLocation(const log4cxx::spi::LocationInfo& location);
+
+ /**
+ * Sets the state of the embedded stream (if any)
+ * to the state of the formatting info.
+ * @param os stream to receive formatting info.
+ * @param fillchar receives fill charater.
+ * @return true if fill character was specified.
+ */
+ bool set_stream_state(std::ios_base& os, int& fillchar);
+
+ protected:
+ /**
+ * Dispatches the pending log request.
+ */
+ virtual void log(LoggerPtr& logger,
+ const LevelPtr& level,
+ const log4cxx::spi::LocationInfo& location) = 0;
+ /**
+ * Erase any content in the message construction buffer.
+ */
+ virtual void erase() = 0;
+ /**
+ * Copy state of embedded stream (if any)
+ * to value and mask instances of std::ios_base
+ * and return fill character value.
+ */
+ virtual void get_stream_state(std::ios_base& base,
+ std::ios_base& mask,
+ int& fill,
+ bool& fillSet) const = 0;
+ virtual void refresh_stream_state() = 0;
+
+ private:
+ /**
+ * prevent copy constructor.
+ */
+ logstream_base(logstream_base&);
+ /**
+ * prevent copy operatpr.
+ */
+ logstream_base& operator=(logstream_base&);
+ /**
+ * Minimal extension of std::ios_base to allow creation
+ * of embedded IO states.
+ */
+ class LOG4CXX_EXPORT logstream_ios_base : public std::ios_base {
+ public:
+ logstream_ios_base(std::ios_base::fmtflags initval,
+ int initsize);
+ } initset, initclear;
+ /**
+ * fill character.
+ */
+ int fillchar;
+ /**
+ * true if fill character is set.
+ */
+ bool fillset;
+ /**
+ * true if assigned level was same or higher than level of associated logger.
+ */
+ bool enabled;
+ /**
+ * associated logger.
+ */
+ log4cxx::LoggerPtr logger;
+ /**
+ * associated level.
+ */
+ log4cxx::LevelPtr level;
+ /**
+ * associated level.
+ */
+ log4cxx::spi::LocationInfo location;
+ };
+
+ typedef logstream_base& (*logstream_manipulator)(logstream_base&);
+
+ /**
+ * An STL-like stream API for log4cxx using char as the character type.
+ *. Instances of log4cxx::logstream
+ * are not designedfor use by multiple threads and in general should be short-lived
+ * function scoped objects. Using log4cxx::basic_logstream as a class member or
+ * static instance should be avoided in the same manner as you would avoid placing a std::ostringstream
+ * in those locations. Insertion operations are generally short-circuited if the
+ * level for the stream is not the same of higher that the level of the associated logger.
+ */
+ class LOG4CXX_EXPORT logstream : public logstream_base {
+ typedef char Ch;
+ public:
+ /**
+ * Constructor.
+ */
+ logstream(const log4cxx::LoggerPtr& logger,
+ const log4cxx::LevelPtr& level);
+
+ /**
+ * Constructor.
+ */
+ logstream(const Ch* loggerName,
+ const log4cxx::LevelPtr& level);
+
+ /**
+ * Constructor.
+ */
+ logstream(const std::basic_string<Ch>& loggerName,
+ const log4cxx::LevelPtr& level);
+
+ ~logstream();
+
+ /**
+ * Insertion operator for std::fixed and similar manipulators.
+ */
+ logstream& operator<<(std::ios_base& (*manip)(std::ios_base&));
+
+ /**
+ * Insertion operator for logstream_base::endmsg.
+ */
+ logstream& operator<<(logstream_manipulator manip);
+
+ /**
+ * Insertion operator for level.
+ */
+ logstream& operator<<(const log4cxx::LevelPtr& level);
+ /**
+ * Insertion operator for location.
+ */
+ logstream& operator<<(const log4cxx::spi::LocationInfo& location);
+
+ /**
+ * Alias for insertion operator for location. Kludge to avoid
+ * inappropriate compiler ambiguity.
+ */
+ logstream& operator>>(const log4cxx::spi::LocationInfo& location);
+
+ /**
+ * Cast operator to provide access to embedded std::basic_ostream.
+ */
+ operator std::basic_ostream<Ch>&();
+
+#if !(LOG4CXX_USE_GLOBAL_SCOPE_TEMPLATE)
+ /**
+ * Template to allow any class with an std::basic_ostream inserter
+ * to be applied to this class.
+ */
+ template <class V>
+ inline log4cxx::logstream& operator<<(const V& val) {
+ if (LOG4CXX_UNLIKELY(isEnabled())) {
+ ((std::basic_ostream<char>&) *this) << val;
+ }
+ return *this;
+ }
+#endif
+
+
+ protected:
+ virtual void log(LoggerPtr& logger,
+ const LevelPtr& level,
+ const log4cxx::spi::LocationInfo& location);
+
+ virtual void erase();
+
+ virtual void get_stream_state(std::ios_base& base,
+ std::ios_base& mask,
+ int& fill,
+ bool& fillSet) const;
+ virtual void refresh_stream_state();
+
+
+ private:
+ logstream(const logstream&);
+ logstream& operator=(const logstream&);
+ std::basic_stringstream<Ch>* stream;
+
+ };
+
+#if LOG4CXX_WCHAR_T_API
+ /**
+ * An STL-like stream API for log4cxx using wchar_t as the character type.
+ *. Instances of log4cxx::logstream
+ * are not designedfor use by multiple threads and in general should be short-lived
+ * function scoped objects. Using log4cxx::basic_logstream as a class member or
+ * static instance should be avoided in the same manner as you would avoid placing a std::ostringstream
+ * in those locations. Insertion operations are generally short-circuited if the
+ * level for the stream is not the same of higher that the level of the associated logger.
+ */
+ class LOG4CXX_EXPORT wlogstream : public logstream_base {
+ typedef wchar_t Ch;
+ public:
+ /**
+ * Constructor.
+ */
+ wlogstream(const log4cxx::LoggerPtr& logger,
+ const log4cxx::LevelPtr& level);
+
+ /**
+ * Constructor.
+ */
+ wlogstream(const Ch* loggerName,
+ const log4cxx::LevelPtr& level);
+
+ /**
+ * Constructor.
+ */
+ wlogstream(const std::basic_string<Ch>& loggerName,
+ const log4cxx::LevelPtr& level);
+
+ ~wlogstream();
+
+ /**
+ * Insertion operator for std::fixed and similar manipulators.
+ */
+ wlogstream& operator<<(std::ios_base& (*manip)(std::ios_base&));
+
+ /**
+ * Insertion operator for logstream_base::endmsg.
+ */
+ wlogstream& operator<<(logstream_manipulator manip);
+
+ /**
+ * Insertion operator for level.
+ */
+ wlogstream& operator<<(const log4cxx::LevelPtr& level);
+ /**
+ * Insertion operator for location.
+ */
+ wlogstream& operator<<(const log4cxx::spi::LocationInfo& location);
+
+ /**
+ * Alias for insertion operator for location. Kludge to avoid
+ * inappropriate compiler ambiguity.
+ */
+ wlogstream& operator>>(const log4cxx::spi::LocationInfo& location);
+
+
+ /**
+ * Cast operator to provide access to embedded std::basic_ostream.
+ */
+ operator std::basic_ostream<Ch>&();
+
+#if !(LOG4CXX_USE_GLOBAL_SCOPE_TEMPLATE)
+ /**
+ * Template to allow any class with an std::basic_ostream inserter
+ * to be applied to this class.
+ */
+ template <class V>
+ inline log4cxx::wlogstream& operator<<(const V& val) {
+ if (LOG4CXX_UNLIKELY(isEnabled())) {
+ ((std::basic_ostream<wchar_t>&) *this) << val;
+ }
+ return *this;
+ }
+#endif
+
+ protected:
+ virtual void log(LoggerPtr& logger,
+ const LevelPtr& level,
+ const log4cxx::spi::LocationInfo& location);
+
+ virtual void erase();
+
+ virtual void get_stream_state(std::ios_base& base,
+ std::ios_base& mask,
+ int& fill,
+ bool& fillSet) const;
+ virtual void refresh_stream_state();
+
+
+ private:
+ wlogstream(const wlogstream&);
+ wlogstream& operator=(const wlogstream&);
+ std::basic_stringstream<Ch>* stream;
+
+ };
+#endif
+
+#if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API
+ /**
+ * An STL-like stream API for log4cxx using UniChar as the character type.
+ *. Instances of log4cxx::logstream
+ * are not designedfor use by multiple threads and in general should be short-lived
+ * function scoped objects. Using log4cxx::basic_logstream as a class member or
+ * static instance should be avoided in the same manner as you would avoid placing a std::ostringstream
+ * in those locations. Insertion operations are generally short-circuited if the
+ * level for the stream is not the same of higher that the level of the associated logger.
+ */
+ class LOG4CXX_EXPORT ulogstream : public logstream_base {
+ typedef UniChar Ch;
+ public:
+ /**
+ * Constructor.
+ */
+ ulogstream(const log4cxx::LoggerPtr& logger,
+ const log4cxx::LevelPtr& level);
+
+#if LOG4CXX_UNICHAR_API
+ /**
+ * Constructor.
+ */
+ ulogstream(const Ch* loggerName,
+ const log4cxx::LevelPtr& level);
+
+ /**
+ * Constructor.
+ */
+ ulogstream(const std::basic_string<Ch>& loggerName,
+ const log4cxx::LevelPtr& level);
+#endif
+
+#if LOG4CXX_CFSTRING_API
+ ulogstream(const CFStringRef& loggerName,
+ const log4cxx::LevelPtr& level);
+#endif
+
+ ~ulogstream();
+
+ /**
+ * Insertion operator for std::fixed and similar manipulators.
+ */
+ ulogstream& operator<<(std::ios_base& (*manip)(std::ios_base&));
+
+ /**
+ * Insertion operator for logstream_base::endmsg.
+ */
+ ulogstream& operator<<(logstream_manipulator manip);
+
+ /**
+ * Insertion operator for level.
+ */
+ ulogstream& operator<<(const log4cxx::LevelPtr& level);
+ /**
+ * Insertion operator for location.
+ */
+ ulogstream& operator<<(const log4cxx::spi::LocationInfo& location);
+
+ /**
+ * Alias for insertion operator for location. Kludge to avoid
+ * inappropriate compiler ambiguity.
+ */
+ ulogstream& operator>>(const log4cxx::spi::LocationInfo& location);
+
+
+ /**
+ * Cast operator to provide access to embedded std::basic_ostream.
+ */
+ operator std::basic_ostream<Ch>&();
+
+#if !(LOG4CXX_USE_GLOBAL_SCOPE_TEMPLATE)
+ /**
+ * Template to allow any class with an std::basic_ostream inserter
+ * to be applied to this class.
+ */
+ template <class V>
+ inline ulogstream& operator<<(const V& val) {
+ if (LOG4CXX_UNLIKELY(isEnabled())) {
+ ((std::basic_ostream<Ch>&) *this) << val;
+ }
+ return *this;
+ }
+#endif
+
+ protected:
+ virtual void log(LoggerPtr& logger,
+ const LevelPtr& level,
+ const log4cxx::spi::LocationInfo& location);
+
+ virtual void erase();
+
+ virtual void get_stream_state(std::ios_base& base,
+ std::ios_base& mask,
+ int& fill,
+ bool& fillSet) const;
+ virtual void refresh_stream_state();
+
+
+ private:
+ ulogstream(const ulogstream&);
+ ulogstream& operator=(const ulogstream&);
+ std::basic_stringstream<Ch>* stream;
+
+ };
+#endif
+
+
+} // namespace log4cxx
+
+
+#if LOG4CXX_USE_GLOBAL_SCOPE_TEMPLATE
+//
+// VC6 will fail to compile if class-scope templates
+// are used to handle arbitrary insertion operations.
+// However, using global namespace insertion operations
+// run into LOGCXX-150.
+
+/**
+ * Template to allow any class with an std::basic_ostream inserter
+ * to be applied to this class.
+ */
+template <class V>
+inline log4cxx::logstream& operator<<(log4cxx::logstream& os, const V& val) {
+ if (LOG4CXX_UNLIKELY(os.isEnabled())) {
+ ((std::basic_ostream<char>&) os) << val;
+ }
+ return os;
+}
+
+#if LOG4CXX_WCHAR_T_API
+/**
+ * Template to allow any class with an std::basic_ostream inserter
+ * to be applied to this class.
+ */
+template <class V>
+inline log4cxx::wlogstream& operator<<(log4cxx::wlogstream& os, const V& val) {
+ if (LOG4CXX_UNLIKELY(os.isEnabled())) {
+ ((std::basic_ostream<wchar_t>&) os) << val;
+ }
+ return os;
+}
+#endif
+#endif
+
+#if !defined(LOG4CXX_ENDMSG)
+#if LOG4CXX_LOGSTREAM_ADD_NOP
+#define LOG4CXX_ENDMSG (log4cxx::logstream_manipulator) log4cxx::logstream_base::nop >> LOG4CXX_LOCATION << (log4cxx::logstream_manipulator) log4cxx::logstream_base::endmsg
+#else
+#define LOG4CXX_ENDMSG LOG4CXX_LOCATION << (log4cxx::logstream_manipulator) log4cxx::logstream_base::endmsg
+#endif
+#endif
+
+
+#endif //_LOG4CXX_STREAM_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/ttcclayout.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/ttcclayout.h
new file mode 100644
index 0000000000..8c14d65165
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/ttcclayout.h
@@ -0,0 +1,187 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_TTCC_LAYOUT_H
+#define _LOG4CXX_TTCC_LAYOUT_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+#include <log4cxx/helpers/datelayout.h>
+
+namespace log4cxx
+{
+
+ /**
+ TTCC layout format consists of time, thread, logger name and nested
+ diagnostic context information, hence the name.
+
+ <p>Each of the four fields can be individually enabled or
+ disabled. The time format depends on the <code>DateFormat</code>
+ used.
+
+ <p>Here is an example TTCCLayout output with the
+ {@link helpers::RelativeTimeDateFormat RelativeTimeDateFormat}.
+
+ <pre>
+ 176 [main] INFO examples.Sort - Populating an array of 2 elements in reverse order.
+ 225 [main] INFO examples.SortAlgo - Entered the sort method.
+ 262 [main] DEBUG examples.SortAlgo.OUTER i=1 - Outer loop.
+ 276 [main] DEBUG examples.SortAlgo.SWAP i=1 j=0 - Swapping intArray[0] = 1 and intArray[1] = 0
+ 290 [main] DEBUG examples.SortAlgo.OUTER i=0 - Outer loop.
+ 304 [main] INFO examples.SortAlgo.DUMP - Dump of interger array:
+ 317 [main] INFO examples.SortAlgo.DUMP - Element [0] = 0
+ 331 [main] INFO examples.SortAlgo.DUMP - Element [1] = 1
+ 343 [main] INFO examples.Sort - The next log statement should be an error message.
+ 346 [main] ERROR examples.SortAlgo.DUMP - Tried to dump an uninitialized array.
+ 467 [main] INFO examples.Sort - Exiting main method.
+ </pre>
+
+ <p>The first field is the number of milliseconds elapsed since the
+ start of the program. The second field is the thread outputting the
+ log statement. The third field is the level, the fourth field is
+ the logger to which the statement belongs.
+
+ <p>The fifth field (just before the '-') is the nested diagnostic
+ context. Note the nested diagnostic context may be empty as in the
+ first two statements. The text after the '-' is the message of the
+ statement.
+
+ <p><b>WARNING</b> Do not use the same TTCCLayout instance from
+ within different appenders. The TTCCLayout is not thread safe when
+ used in his way. However, it is perfectly safe to use a TTCCLayout
+ instance from just one appender.
+
+ <p>PatternLayout offers a much more flexible alternative.
+ */
+ class LOG4CXX_EXPORT TTCCLayout : public helpers::DateLayout
+ {
+ private:
+ // Internal representation of options
+ bool threadPrinting;
+ bool categoryPrefixing;
+ bool contextPrinting;
+ bool filePrinting;
+
+ public:
+ DECLARE_LOG4CXX_OBJECT(TTCCLayout)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(TTCCLayout)
+ LOG4CXX_CAST_ENTRY_CHAIN(Layout)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ Instantiate a TTCCLayout object with {@link
+ helpers::RelativeTimeDateFormat RelativeTimeDateFormat} as the date
+ formatter in the local time zone.
+ */
+ TTCCLayout();
+
+ /**
+ Instantiate a TTCCLayout object using the local time zone. The
+ DateFormat used will depend on the <code>dateFormatType</code>.
+ <p>This constructor just calls the {@link
+ helpers::DateLayout#setDateFormat DateLayout::setDateFormat} method.
+ */
+ TTCCLayout(const LogString& dateFormatType);
+
+ /**
+ The <b>ThreadPrinting</b> option specifies whether the name of the
+ current thread is part of log output or not. This is true by default.
+ */
+ inline void setThreadPrinting(bool threadPrinting1)
+ { this->threadPrinting = threadPrinting1; }
+
+ /**
+ Returns value of the <b>ThreadPrinting</b> option.
+ */
+ inline bool getThreadPrinting() const
+ { return threadPrinting; }
+
+ /**
+ The <b>CategoryPrefixing</b> option specifies whether Logger
+ name is part of log output or not. This is true by default.
+ */
+ inline void setCategoryPrefixing(bool categoryPrefixing1)
+ { this->categoryPrefixing = categoryPrefixing1; }
+
+ /**
+ Returns value of the <b>CategoryPrefixing</b> option.
+ */
+ inline bool getCategoryPrefixing() const
+ { return categoryPrefixing; }
+
+ /**
+ The <b>ContextPrinting</b> option specifies log output will include
+ the nested context information belonging to the current thread.
+ This is true by default.
+ */
+ inline void setContextPrinting(bool contextPrinting1)
+ { this->contextPrinting = contextPrinting1; }
+
+ /**
+ Returns value of the <b>ContextPrinting</b> option.
+ */
+ inline bool getContextPrinting() const
+ { return contextPrinting; }
+
+ /**
+ The <b>FilePrinting</b> option specifies log output will include
+ the file and the line where the log statement was written.
+ */
+ inline void setFilePrinting(bool filePrinting1)
+ { this->filePrinting = filePrinting1; }
+
+ /**
+ Returns value of the <b>ContextPrinting</b> option.
+ */
+ inline bool getFilePrinting() const
+ { return filePrinting; }
+
+ /**
+ In addition to the level of the statement and message, this function
+ writes to the ouput stream time, thread, logger and NDC
+ information.
+
+ <p>Time, thread, logger and diagnostic context are printed
+ depending on options.
+
+ @param output destination to receive formatted output.
+ @param event event to format.
+ @param pool pool used to allocate memory needed during formatting.
+ */
+ virtual void format(LogString& output,
+ const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& pool) const;
+
+ /**
+ The TTCCLayout does not handle the throwable contained within
+ {@link spi::LoggingEvent LoggingEvents}. Thus, it returns
+ <code>true</code>.
+ */
+ virtual bool ignoresThrowable() const { return true; }
+ };
+ LOG4CXX_PTR_DEF(TTCCLayout);
+}
+
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+#endif
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/Makefile.am
new file mode 100644
index 0000000000..de87f5475e
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/Makefile.am
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+variaincdir = $(includedir)/log4cxx/varia
+variainc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/varia/*.h
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/Makefile.in
new file mode 100644
index 0000000000..21f99361ba
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/Makefile.in
@@ -0,0 +1,446 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = src/main/include/log4cxx/varia
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(variainc_HEADERS)
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \
+ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(variaincdir)"
+variaincHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(variainc_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+APR_LIBS = @APR_LIBS@
+APU_LIBS = @APU_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CFSTRING_API = @CFSTRING_API@
+CHARSET_EBCDIC = @CHARSET_EBCDIC@
+CHARSET_ISO88591 = @CHARSET_ISO88591@
+CHARSET_USASCII = @CHARSET_USASCII@
+CHARSET_UTF8 = @CHARSET_UTF8@
+CHAR_API = @CHAR_API@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_ODBC = @CPPFLAGS_ODBC@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOC_FALSE = @DOC_FALSE@
+DOC_TRUE = @DOC_TRUE@
+DOT = @DOT@
+DOXYGEN = @DOXYGEN@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HAS_FWIDE = @HAS_FWIDE@
+HAS_LIBESMTP = @HAS_LIBESMTP@
+HAS_MBSRTOWCS = @HAS_MBSRTOWCS@
+HAS_ODBC = @HAS_ODBC@
+HAS_STD_LOCALE = @HAS_STD_LOCALE@
+HAS_SYSLOG = @HAS_SYSLOG@
+HAS_WCHAR_T = @HAS_WCHAR_T@
+HAS_WCSTOMBS = @HAS_WCSTOMBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IODBC_CONFIG = @IODBC_CONFIG@
+LATEX_DOC_FALSE = @LATEX_DOC_FALSE@
+LATEX_DOC_TRUE = @LATEX_DOC_TRUE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBS_ODBC = @LIBS_ODBC@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@
+LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@
+LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@
+LTLIBOBJS = @LTLIBOBJS@
+LT_VERSION = @LT_VERSION@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+UNICHAR_API = @UNICHAR_API@
+VERSION = @VERSION@
+WCHAR_T_API = @WCHAR_T_API@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+base_dir = @base_dir@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+enable_dot = @enable_dot@
+enable_html_docs = @enable_html_docs@
+enable_latex_docs = @enable_latex_docs@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+manual_dest = @manual_dest@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+variaincdir = $(includedir)/log4cxx/varia
+variainc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/varia/*.h
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/varia/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/main/include/log4cxx/varia/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+install-variaincHEADERS: $(variainc_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(variaincdir)" || $(mkdir_p) "$(DESTDIR)$(variaincdir)"
+ @list='$(variainc_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(variaincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(variaincdir)/$$f'"; \
+ $(variaincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(variaincdir)/$$f"; \
+ done
+
+uninstall-variaincHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(variainc_HEADERS)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(variaincdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(variaincdir)/$$f"; \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/varia
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(variaincdir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-variaincHEADERS
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-variaincHEADERS
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool ctags distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-info-am install-man install-strip \
+ install-variaincHEADERS installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags uninstall uninstall-am uninstall-info-am \
+ uninstall-variaincHEADERS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/fallbackerrorhandler.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/fallbackerrorhandler.h
new file mode 100644
index 0000000000..63b6fc8e2d
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/fallbackerrorhandler.h
@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_VARIA_FALLBACK_ERROR_HANDLER_H
+#define _LOG4CXX_VARIA_FALLBACK_ERROR_HANDLER_H
+
+#include <log4cxx/spi/errorhandler.h>
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/appender.h>
+#include <log4cxx/logger.h>
+#include <vector>
+
+namespace log4cxx
+{
+ namespace varia
+ {
+ /**
+ The <code>FallbackErrorHandler</code> implements the ErrorHandler
+ interface such that a secondary appender may be specified. This
+ secondary appender takes over if the primary appender fails for
+ whatever reason.
+
+ <p>The error message is printed on <code>System.err</code>, and
+ logged in the new secondary appender.
+ */
+ class LOG4CXX_EXPORT FallbackErrorHandler :
+ public virtual spi::ErrorHandler,
+ public virtual helpers::ObjectImpl
+ {
+ private:
+ AppenderPtr backup;
+ AppenderPtr primary;
+ std::vector<LoggerPtr> loggers;
+
+ public:
+ DECLARE_LOG4CXX_OBJECT(FallbackErrorHandler)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(spi::OptionHandler)
+ LOG4CXX_CAST_ENTRY(spi::ErrorHandler)
+ END_LOG4CXX_CAST_MAP()
+
+ FallbackErrorHandler();
+ void addRef() const;
+ void releaseRef() const;
+
+
+ /**
+ <em>Adds</em> the logger passed as parameter to the list of
+ loggers that we need to search for in case of appender failure.
+ */
+ void setLogger(const LoggerPtr& logger);
+
+
+ /**
+ No options to activate.
+ */
+ void activateOptions(log4cxx::helpers::Pool& p);
+ void setOption(const LogString& option, const LogString& value);
+
+
+ /**
+ Prints the message and the stack trace of the exception on
+ <code>System.err</code>.
+ */
+ void error(const LogString& message, const std::exception& e,
+ int errorCode) const;
+
+ /**
+ Prints the message and the stack trace of the exception on
+ <code>System.err</code>.
+ */
+ void error(const LogString& message, const std::exception& e,
+ int errorCode, const spi::LoggingEventPtr& event) const;
+
+
+ /**
+ Print a the error message passed as parameter on
+ <code>System.err</code>.
+ */
+ void error(const LogString& /* message */) const {}
+
+ /**
+ Return the backup appender.
+ */
+ const AppenderPtr& getBackupAppender() const
+ { return backup; }
+
+ /**
+ The appender to which this error handler is attached.
+ */
+ void setAppender(const AppenderPtr& primary);
+
+ /**
+ Set the backup appender.
+ */
+ void setBackupAppender(const AppenderPtr& backup);
+ };
+ } // namespace varia
+} // namespace log4cxx
+
+#endif //_LOG4CXX_VARIA_FALLBACK_ERROR_HANDLER_H
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/writerappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/writerappender.h
new file mode 100644
index 0000000000..37db9b1cd2
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/writerappender.h
@@ -0,0 +1,217 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_WRITER_APPENDER_H
+#define _LOG4CXX_WRITER_APPENDER_H
+
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+#include <log4cxx/appenderskeleton.h>
+#include <log4cxx/helpers/outputstreamwriter.h>
+
+namespace log4cxx
+{
+
+ namespace helpers {
+ class Transcoder;
+ }
+
+ /**
+ WriterAppender appends log events to a standard output stream
+ */
+ class LOG4CXX_EXPORT WriterAppender : public AppenderSkeleton
+ {
+ private:
+ /**
+ Immediate flush means that the underlying writer or output stream
+ will be flushed at the end of each append operation. Immediate
+ flush is slower but ensures that each append request is actually
+ written. If <code>immediateFlush</code> is set to
+ <code>false</code>, then there is a good chance that the last few
+ logs events are not actually written to persistent media if and
+ when the application crashes.
+
+ <p>The <code>immediateFlush</code> variable is set to
+ <code>true</code> by default.
+
+ */
+ bool immediateFlush;
+
+ /**
+ The encoding to use when opening an input stream.
+ <p>The <code>encoding</code> variable is set to <code>""</code> by
+ default which results in the utilization of the system's default
+ encoding. */
+ LogString encoding;
+
+ /**
+ * This is the {@link Writer Writer} where we will write to.
+ */
+ log4cxx::helpers::WriterPtr writer;
+
+
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(WriterAppender)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(WriterAppender)
+ LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ This default constructor does nothing.*/
+ WriterAppender();
+ protected:
+ WriterAppender(const LayoutPtr& layout,
+ log4cxx::helpers::WriterPtr& writer);
+ WriterAppender(const LayoutPtr& layout);
+
+ public:
+ ~WriterAppender();
+
+ /**
+ Derived appenders should override this method if option structure
+ requires it.
+ */
+ virtual void activateOptions(log4cxx::helpers::Pool& pool);
+
+ /**
+ If the <b>ImmediateFlush</b> option is set to
+ <code>true</code>, the appender will flush at the end of each
+ write. This is the default behavior. If the option is set to
+ <code>false</code>, then the underlying stream can defer writing
+ to physical medium to a later time.
+
+ <p>Avoiding the flush operation at the end of each append results in
+ a performance gain of 10 to 20 percent. However, there is safety
+ tradeoff involved in skipping flushing. Indeed, when flushing is
+ skipped, then it is likely that the last few log events will not
+ be recorded on disk when the application exits. This is a high
+ price to pay even for a 20% performance gain.
+ */
+ void setImmediateFlush(bool value);
+ /**
+ Returns value of the <b>ImmediateFlush</b> option.
+ */
+ bool getImmediateFlush() const { return immediateFlush; }
+
+ /**
+ This method is called by the AppenderSkeleton#doAppend
+ method.
+
+ <p>If the output stream exists and is writable then write a log
+ statement to the output stream. Otherwise, write a single warning
+ message to <code>stderr</code>.
+
+ <p>The format of the output will depend on this appender's
+ layout.
+
+ */
+ virtual void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p);
+
+
+ protected:
+ /**
+ This method determines if there is a sense in attempting to append.
+
+ <p>It checks whether there is a set output target and also if
+ there is a set layout. If these checks fail, then the boolean
+ value <code>false</code> is returned. */
+ virtual bool checkEntryConditions() const;
+
+
+ public:
+ /**
+ Close this appender instance. The underlying stream or writer is
+ also closed.
+
+ <p>Closed appenders cannot be reused.
+ */
+ virtual void close();
+
+ protected:
+ /**
+ * Close the underlying {@link log4cxx::helpers::Writer}.
+ * */
+ void closeWriter();
+
+ /**
+ Returns an OutputStreamWriter when passed an OutputStream. The
+ encoding used will depend on the value of the
+ <code>encoding</code> property. If the encoding value is
+ specified incorrectly the writer will be opened using the default
+ system encoding (an error message will be printed to the loglog. */
+ virtual log4cxx::helpers::WriterPtr createWriter(
+ log4cxx::helpers::OutputStreamPtr& os);
+
+ public:
+ LogString getEncoding() const;
+ void setEncoding(const LogString& value);
+ void setOption(const LogString& option,
+ const LogString& value);
+
+ /**
+ <p>Sets the Writer where the log output will go. The
+ specified Writer must be opened by the user and be
+ writable.
+
+ <p>The <code>java.io.Writer</code> will be closed when the
+ appender instance is closed.
+
+
+ <p><b>WARNING:</b> Logging to an unopened Writer will fail.
+ <p>
+ @param writer An already opened Writer. */
+ void setWriter(const log4cxx::helpers::WriterPtr& writer);
+
+ virtual bool requiresLayout() const;
+
+ protected:
+ /**
+ Actual writing occurs here.
+ */
+ virtual void subAppend(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p);
+
+
+ /**
+ Write a footer as produced by the embedded layout's
+ Layout#appendFooter method. */
+ virtual void writeFooter(log4cxx::helpers::Pool& p);
+
+ /**
+ Write a header as produced by the embedded layout's
+ Layout#appendHeader method. */
+ virtual void writeHeader(log4cxx::helpers::Pool& p);
+
+ private:
+ //
+ // prevent copy and assignment
+ WriterAppender(const WriterAppender&);
+ WriterAppender& operator=(const WriterAppender&);
+ };
+
+ LOG4CXX_PTR_DEF(WriterAppender);
+
+} //namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
+#endif //_LOG4CXX_WRITER_APPENDER_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/Makefile.am
new file mode 100644
index 0000000000..b28bb8e791
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/Makefile.am
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+xmlincdir = $(includedir)/log4cxx/xml
+xmlinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/xml/*.h
+
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/Makefile.in
new file mode 100644
index 0000000000..139639ea78
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/Makefile.in
@@ -0,0 +1,446 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = src/main/include/log4cxx/xml
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(xmlinc_HEADERS)
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \
+ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(xmlincdir)"
+xmlincHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(xmlinc_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+APR_LIBS = @APR_LIBS@
+APU_LIBS = @APU_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CFSTRING_API = @CFSTRING_API@
+CHARSET_EBCDIC = @CHARSET_EBCDIC@
+CHARSET_ISO88591 = @CHARSET_ISO88591@
+CHARSET_USASCII = @CHARSET_USASCII@
+CHARSET_UTF8 = @CHARSET_UTF8@
+CHAR_API = @CHAR_API@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_ODBC = @CPPFLAGS_ODBC@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOC_FALSE = @DOC_FALSE@
+DOC_TRUE = @DOC_TRUE@
+DOT = @DOT@
+DOXYGEN = @DOXYGEN@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HAS_FWIDE = @HAS_FWIDE@
+HAS_LIBESMTP = @HAS_LIBESMTP@
+HAS_MBSRTOWCS = @HAS_MBSRTOWCS@
+HAS_ODBC = @HAS_ODBC@
+HAS_STD_LOCALE = @HAS_STD_LOCALE@
+HAS_SYSLOG = @HAS_SYSLOG@
+HAS_WCHAR_T = @HAS_WCHAR_T@
+HAS_WCSTOMBS = @HAS_WCSTOMBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IODBC_CONFIG = @IODBC_CONFIG@
+LATEX_DOC_FALSE = @LATEX_DOC_FALSE@
+LATEX_DOC_TRUE = @LATEX_DOC_TRUE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBS_ODBC = @LIBS_ODBC@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@
+LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@
+LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@
+LTLIBOBJS = @LTLIBOBJS@
+LT_VERSION = @LT_VERSION@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+UNICHAR_API = @UNICHAR_API@
+VERSION = @VERSION@
+WCHAR_T_API = @WCHAR_T_API@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+base_dir = @base_dir@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+enable_dot = @enable_dot@
+enable_html_docs = @enable_html_docs@
+enable_latex_docs = @enable_latex_docs@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+manual_dest = @manual_dest@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+xmlincdir = $(includedir)/log4cxx/xml
+xmlinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/xml/*.h
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/xml/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/main/include/log4cxx/xml/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+install-xmlincHEADERS: $(xmlinc_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(xmlincdir)" || $(mkdir_p) "$(DESTDIR)$(xmlincdir)"
+ @list='$(xmlinc_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(xmlincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(xmlincdir)/$$f'"; \
+ $(xmlincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(xmlincdir)/$$f"; \
+ done
+
+uninstall-xmlincHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(xmlinc_HEADERS)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(xmlincdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(xmlincdir)/$$f"; \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/xml
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(xmlincdir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-xmlincHEADERS
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-xmlincHEADERS
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool ctags distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-info-am install-man install-strip \
+ install-xmlincHEADERS installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-info-am \
+ uninstall-xmlincHEADERS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/domconfigurator.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/domconfigurator.h
new file mode 100644
index 0000000000..6799d54bc3
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/domconfigurator.h
@@ -0,0 +1,316 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_XML_DOM_CONFIGURATOR_H
+#define _LOG4CXX_XML_DOM_CONFIGURATOR_H
+
+#if defined(_MSC_VER)
+#pragma warning (push)
+#pragma warning ( disable: 4231 4251 4275 4786 )
+#endif
+
+
+
+#include <log4cxx/logstring.h>
+#include <map>
+#include <log4cxx/appender.h>
+#include <log4cxx/layout.h>
+#include <log4cxx/logger.h>
+#include <log4cxx/helpers/properties.h>
+#include <log4cxx/spi/configurator.h>
+#include <log4cxx/helpers/charsetdecoder.h>
+#include <log4cxx/spi/filter.h>
+#include <log4cxx/rolling/triggeringpolicy.h>
+#include <log4cxx/rolling/rollingpolicy.h>
+#include <log4cxx/file.h>
+#include <log4cxx/config/propertysetter.h>
+
+extern "C" {
+ struct apr_xml_doc;
+ struct apr_xml_elem;
+}
+
+namespace log4cxx
+{
+
+ namespace xml
+ {
+
+ /**
+ Use this class to initialize the log4cxx environment using a DOM tree.
+
+ <p>Sometimes it is useful to see how log4cxx is reading configuration
+ files. You can enable log4cxx internal logging by setting the
+ <code>debug</code> attribute in the
+ <code>log4cxx</code> element. As in
+ <pre>
+ &lt;log4j:configuration <b>debug="true"</b> xmlns:log4j="http://jakarta.apache.org/log4j/">
+ ...
+ &lt;/log4j:configuration>
+ </pre>
+
+ <p>There are sample XML files included in the package.
+ */
+ class LOG4CXX_EXPORT DOMConfigurator :
+ virtual public spi::Configurator,
+ virtual public helpers::ObjectImpl
+ {
+ protected:
+ typedef std::map<LogString, AppenderPtr> AppenderMap;
+ /**
+ Used internally to parse appenders by IDREF name.
+ */
+ AppenderPtr findAppenderByName(
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* elem,
+ apr_xml_doc* doc,
+ const LogString& appenderName,
+ AppenderMap& appenders);
+
+ /**
+ Used internally to parse appenders by IDREF element.
+ */
+ AppenderPtr findAppenderByReference(
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* appenderRef,
+ apr_xml_doc* doc,
+ AppenderMap& appenders);
+
+ /**
+ Used internally to parse an appender element.
+ */
+ AppenderPtr parseAppender(
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* appenderElement,
+ apr_xml_doc* doc,
+ AppenderMap& appenders);
+
+ /**
+ Used internally to parse an {@link spi::ErrorHandler ErrorHandler } element.
+ */
+ void parseErrorHandler(
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* element,
+ AppenderPtr& appender,
+ apr_xml_doc* doc,
+ AppenderMap& appenders);
+
+ /**
+ Used internally to parse a filter element.
+ */
+ void parseFilters(
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* element,
+ std::vector<log4cxx::spi::FilterPtr>& filters);
+
+ /**
+ Used internally to parse a logger element.
+ */
+ void parseLogger(
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* loggerElement,
+ apr_xml_doc* doc,
+ AppenderMap& appenders);
+
+ /**
+ Used internally to parse the logger factory element.
+ */
+ void parseLoggerFactory(
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* factoryElement);
+
+ /**
+ Used internally to parse the logger factory element.
+ */
+ log4cxx::helpers::ObjectPtr parseTriggeringPolicy(
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* factoryElement);
+
+ /**
+ Used internally to parse the logger factory element.
+ */
+ log4cxx::rolling::RollingPolicyPtr parseRollingPolicy(
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* factoryElement);
+
+ /**
+ Used internally to parse the root logger element.
+ */
+ void parseRoot(log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* rootElement, apr_xml_doc* doc, AppenderMap& appenders);
+
+ /**
+ Used internally to parse the children of a logger element.
+ */
+ void parseChildrenOfLoggerElement(
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* catElement,
+ LoggerPtr logger, bool isRoot,
+ apr_xml_doc* doc,
+ AppenderMap& appenders);
+
+ /**
+ Used internally to parse a layout element.
+ */
+ LayoutPtr parseLayout(
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* layout_element);
+
+ /**
+ Used internally to parse a level element.
+ */
+ void parseLevel(
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* element,
+ LoggerPtr logger, bool isRoot);
+
+ void setParameter(
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* elem,
+ log4cxx::config::PropertySetter& propSetter);
+
+ /**
+ Used internally to configure the log4cxx framework from
+ an in-memory representation of an XML document.
+ */
+ void parse(
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* element,
+ apr_xml_doc* doc,
+ AppenderMap& appenders);
+
+ public:
+ DOMConfigurator();
+
+ DECLARE_LOG4CXX_OBJECT(DOMConfigurator)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(spi::Configurator)
+ END_LOG4CXX_CAST_MAP()
+
+ DOMConfigurator(log4cxx::helpers::Pool& p);
+
+ void addRef() const;
+ void releaseRef() const;
+
+ /**
+ A static version of #doConfigure.
+ */
+ static void configure(const std::string& filename);
+#if LOG4CXX_WCHAR_T_API
+ static void configure(const std::wstring& filename);
+#endif
+#if LOG4CXX_UNICHAR_API
+ static void configure(const std::basic_string<UniChar>& filename);
+#endif
+#if LOG4CXX_CFSTRING_API
+ static void configure(const CFStringRef& filename);
+#endif
+ /**
+ Like #configureAndWatch(const std::string& configFilename, long delay)
+ except that the default delay as defined by
+ log4cxx::helpers::FileWatchdog#DEFAULT_DELAY is used.
+ @param configFilename A log4j configuration file in XML format.
+ */
+ static void configureAndWatch(const std::string& configFilename);
+#if LOG4CXX_WCHAR_T_API
+ static void configureAndWatch(const std::wstring& configFilename);
+#endif
+#if LOG4CXX_UNICHAR_API
+ static void configureAndWatch(const std::basic_string<UniChar>& configFilename);
+#endif
+#if LOG4CXX_CFSTRING_API
+ static void configureAndWatch(const CFStringRef& configFilename);
+#endif
+ /**
+ Read the configuration file <code>configFilename</code> if it
+ exists. Moreover, a thread will be created that will periodically
+ check if <code>configFilename</code> has been created or
+ modified. The period is determined by the <code>delay</code>
+ argument. If a change or file creation is detected, then
+ <code>configFilename</code> is read to configure log4cxx.
+
+ @param configFilename A log4j configuration file in XML format.
+ @param delay The delay in milliseconds to wait between each check.
+ */
+ static void configureAndWatch(const std::string& configFilename,
+ long delay);
+#if LOG4CXX_WCHAR_T_API
+ static void configureAndWatch(const std::wstring& configFilename,
+ long delay);
+#endif
+#if LOG4CXX_UNICHAR_API
+ static void configureAndWatch(const std::basic_string<UniChar>& configFilename,
+ long delay);
+#endif
+#if LOG4CXX_CFSTRING_API
+ static void configureAndWatch(const CFStringRef& configFilename,
+ long delay);
+#endif
+
+ /**
+ Interpret the XML file pointed by <code>filename</code> and set up
+ log4cxx accordingly.
+ <p>The configuration is done relative to the hierarchy parameter.
+ @param filename The file to parse.
+ @param repository The hierarchy to operation upon.
+ */
+ void doConfigure(const File& filename,
+ spi::LoggerRepositoryPtr& repository);
+
+ protected:
+ static LogString getAttribute(
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem*,
+ const std::string& attrName);
+
+ LogString subst(const LogString& value);
+
+ protected:
+ helpers::Properties props;
+ spi::LoggerRepositoryPtr repository;
+ spi::LoggerFactoryPtr loggerFactory;
+
+ private:
+ // prevent assignment or copy statements
+ DOMConfigurator(const DOMConfigurator&);
+ DOMConfigurator& operator=(const DOMConfigurator&);
+
+ };
+ LOG4CXX_PTR_DEF(DOMConfigurator);
+ } // namespace xml
+} // namespace log4cxx
+
+#if defined(_MSC_VER)
+#pragma warning (pop)
+#endif
+
+#endif // _LOG4CXX_XML_DOM_CONFIGURATOR_H
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/xmllayout.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/xmllayout.h
new file mode 100644
index 0000000000..a0094ac787
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/xmllayout.h
@@ -0,0 +1,138 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_XML_LAYOUT_H
+#define _LOG4CXX_XML_LAYOUT_H
+
+#include <log4cxx/layout.h>
+
+namespace log4cxx
+{
+ namespace xml
+ {
+
+ /**
+ The output of the XMLLayout consists of a series of log4j:event
+ elements. It does not output a
+ complete well-formed XML file. The output is designed to be
+ included as an <em>external entity</em> in a separate file to form
+ a correct XML file.
+
+ <p>For example, if <code>abc</code> is the name of the file where
+ the XMLLayout ouput goes, then a well-formed XML file would be:
+
+ <code>
+ <?xml version="1.0" ?>
+
+ <!DOCTYPE log4j:eventSet [<!ENTITY data SYSTEM "abc">]>
+
+ <log4j:eventSet version="1.2" xmlns:log4j="http://jakarta.apache.org/log4j/">
+
+ @&data;
+
+ </log4j:eventSet>
+ </code>
+
+ <p>This approach enforces the independence of the XMLLayout and the
+ appender where it is embedded.
+ */
+ class LOG4CXX_EXPORT XMLLayout : public Layout
+ {
+ private:
+
+ // Print no location info by default
+ bool locationInfo; //= false
+ bool properties; // = false
+
+ public:
+ DECLARE_LOG4CXX_OBJECT(XMLLayout)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(XMLLayout)
+ LOG4CXX_CAST_ENTRY_CHAIN(Layout)
+ END_LOG4CXX_CAST_MAP()
+
+ XMLLayout();
+
+ /**
+ The <b>LocationInfo</b> option takes a boolean value. By
+ default, it is set to false which means there will be no location
+ information output by this layout. If the the option is set to
+ true, then the file name and line number of the statement
+ at the origin of the log statement will be output.
+
+ <p>If you are embedding this layout within a SMTPAppender
+ then make sure to set the
+ <b>LocationInfo</b> option of that appender as well.
+ */
+ inline void setLocationInfo(bool locationInfo1)
+ { this->locationInfo = locationInfo1; }
+
+ /**
+ Returns the current value of the <b>LocationInfo</b> option.
+ */
+ inline bool getLocationInfo() const
+ { return locationInfo; }
+
+ /**
+ * Sets whether MDC key-value pairs should be output, default false.
+ * @param flag new value.
+ *
+ */
+ inline void setProperties(bool flag) {
+ properties = flag;
+ }
+
+ /**
+ * Gets whether MDC key-value pairs should be output.
+ * @return true if MDC key-value pairs are output.
+ *
+ */
+ inline bool getProperties() {
+ return properties;
+ }
+
+
+ /** No options to activate. */
+ void activateOptions(log4cxx::helpers::Pool& /* p */) { }
+
+ /**
+ Set options
+ */
+ virtual void setOption(const LogString& option,
+ const LogString& value);
+
+ /**
+ * Formats a {@link spi::LoggingEvent LoggingEvent}
+ * in conformance with the log4cxx.dtd.
+ **/
+ virtual void format(LogString& output,
+ const spi::LoggingEventPtr& event,
+ log4cxx::helpers::Pool& p) const;
+
+ /**
+ The XMLLayout prints and does not ignore exceptions. Hence the
+ return value <code>false</code>.
+ */
+ virtual bool ignoresThrowable() const
+ { return false; }
+
+ }; // class XMLLayout
+ LOG4CXX_PTR_DEF(XMLLayout);
+ } // namespace xml
+} // namespace log4cxx
+
+#endif // _LOG4CXX_XML_LAYOUT_H