I was able to build the site on Linux with: MAVEN_OPTS="-Xmx2000m -XX:MaxPermSize=384m" mvn site
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T17:41:47+01:00) Java version: 1.7.0_80, vendor: Oracle Corporation Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "4.4.0-38-generic", arch: "amd64", family: "unix" On Sun, Oct 2, 2016 at 7:50 PM, Ralph Goers <ralph.go...@dslextreme.com> wrote: > Since it seems all issues have been resolved I am going to start the > release build. Please do not commit as it causes the release to fail. > > Ralph > > On Oct 1, 2016, at 4:32 AM, Remko Popma <remko.po...@gmail.com> wrote: > > LOG4J2-1618 is now also fixed. > > On Sat, Oct 1, 2016 at 3:20 AM, Gary Gregory <garydgreg...@gmail.com> > wrote: > >> On Thu, Sep 29, 2016 at 10:05 AM, Gary Gregory <garydgreg...@gmail.com> >> wrote: >> >>> Please wait to cut rc2, I am fixing a regression: >>> https://issues.apache.org/jira/browse/LOG4J2-1620 >>> >> >> Fixed. >> >> This looks like it needs addressing: https://issues.apa >> che.org/jira/browse/LOG4J2-1618 >> >> Gary >> >> >>> >>> Gary >>> >>> On Thu, Sep 29, 2016 at 9:31 AM, Mikael Ståldal < >>> mikael.stal...@magine.com> wrote: >>> >>>> I created JIRA issues for the Kafka and Flume appender timeout issues, >>>> and I have fixed both of them in master branch. >>>> https://issues.apache.org/jira/browse/LOG4J2-1624 >>>> https://issues.apache.org/jira/browse/LOG4J2-1625 >>>> >>>> I also created a JIRA issue for the JVM shutdown hook, but that not as >>>> easy to fix and I would not consider it a blocker for the 2.7 release. We >>>> can fix it for 2.7.1: >>>> https://issues.apache.org/jira/browse/LOG4J2-1623 >>>> >>>> I think we can go ahead now and make an 2.7-rc2 from the current state >>>> of master branch. >>>> >>>> >>>> On Thu, Sep 29, 2016 at 3:45 PM, Ralph Goers < >>>> ralph.go...@dslextreme.com> wrote: >>>> >>>>> The release is already delayed. So far we have two compatibility >>>>> issues that need to be fixed. Please create a Jira issue for the Flume >>>>> Appender and the JVM shutdown hook. Lets gets those fixed. And perhaps we >>>>> should stop doing things that aren’t directly focused on getting the >>>>> release out as they may well introduce more problems. >>>>> >>>>> Ralph >>>>> >>>>> On Sep 29, 2016, at 5:16 AM, Mikael Ståldal <mikael.stal...@magine.com> >>>>> wrote: >>>>> >>>>> I think that it is unfortunate that the close timeout is always zero >>>>> within the standard JVM shutdown hook (LoggerContext.java:275). I think >>>>> that should be configurable. However, I don't want to delay the release >>>>> for >>>>> that, so let's fix that after the 2.7 release. https://issues.apache >>>>> .org/jira/browse/LOG4J2-1623 >>>>> >>>>> However, I want to make sure that KafkaManager use the previous >>>>> behavior if the requested timeout is zero. I just made a commit to master >>>>> with that. >>>>> >>>>> It seems like FlumePersistentManager.releaseSub (the only other >>>>> Manager using releaseSub timeout) tries to do something similar: >>>>> >>>>> final long shutdownWaitMillis = requestedTimeoutMillis < 0 ? >>>>> SHUTDOWN_WAIT_MILLIS : requestedTimeoutMillis; >>>>> >>>>> But I thing the logic is wrong here. It should probably use >>>>> SHUTDOWN_WAIT_MILLIS if requestedTimeoutMillis is <= 0. This should >>>>> possibly be fixed before the release. >>>>> >>>>> >>>>> >>>>> On Wed, Sep 28, 2016 at 6:54 PM, Gary Gregory <garydgreg...@gmail.com> >>>>> wrote: >>>>> >>>>>> On Wed, Sep 28, 2016 at 8:51 AM, Mikael Ståldal < >>>>>> mikael.stal...@magine.com> wrote: >>>>>> >>>>>>> Was this timeout thing implemented as part of any JIRA issue? >>>>>>> >>>>>> >>>>>> The high level ticket is: https://issues.apache.org/jira >>>>>> /browse/LOG4J2-1539 >>>>>> >>>>>> Gary >>>>>> >>>>>> >>>>>>> >>>>>>> On Wed, Sep 28, 2016 at 5:49 PM, Mikael Ståldal < >>>>>>> mikael.stal...@magine.com> wrote: >>>>>>> >>>>>>>> To track this, I temporary added this to KafkaManager.releaseSub(): >>>>>>>> LOGGER.info("releaseSub: timeout=" + timeout + " " + >>>>>>>> timeUnit.toString(), new Throwable()); >>>>>>>> >>>>>>>> and I get: >>>>>>>> >>>>>>>> 2016-09-28 17:43:14,382 pool-1-thread-1 INFO releaseSub: timeout=0 >>>>>>>> MILLISECONDS java.lang.Throwable >>>>>>>> >>>>>>>> at >>>>>>>> org.apache.logging.log4j.core.appender.mom.kafka.KafkaManager.releaseSub(KafkaManager.java:60) >>>>>>>> at >>>>>>>> org.apache.logging.log4j.core.appender.AbstractManager.stop(AbstractManager.java:85) >>>>>>>> at >>>>>>>> org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.stop(KafkaAppender.java:107) >>>>>>>> at >>>>>>>> org.apache.logging.log4j.core.config.AbstractConfiguration.stop(AbstractConfiguration.java:349) >>>>>>>> at >>>>>>>> org.apache.logging.log4j.core.LoggerContext.stop(LoggerContext.java:329) >>>>>>>> at >>>>>>>> org.apache.logging.log4j.core.AbstractLifeCycle.stop(AbstractLifeCycle.java:127) >>>>>>>> at >>>>>>>> org.apache.logging.log4j.core.LoggerContext$1.run(LoggerContext.java:275) >>>>>>>> at >>>>>>>> org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry$RegisteredCancellable.run(DefaultShutdownCallbackRegistry.java:104) >>>>>>>> at >>>>>>>> org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry.run(DefaultShutdownCallbackRegistry.java:74) >>>>>>>> at java.lang.Thread.run(Thread.java:745) >>>>>>>> >>>>>>>> the culprit is AbstractLifeCycle.stop() which uses a default timeout >>>>>>>> of 0. >>>>>>>> >>>>>>>> >>>>>>>> On Wed, Sep 28, 2016 at 5:40 PM, Gary Gregory < >>>>>>>> garydgreg...@gmail.com> wrote: >>>>>>>> >>>>>>>>> It is used when you call LifeCycle2.stop(long, TimeUnit), like >>>>>>>>> stopping a LoggerContext or all of Log4j through the shutdown() >>>>>>>>> method. >>>>>>>>> >>>>>>>>> Gary >>>>>>>>> >>>>>>>>> On Wed, Sep 28, 2016 at 8:35 AM, Mikael Ståldal < >>>>>>>>> mikael.stal...@magine.com> wrote: >>>>>>>>> >>>>>>>>>> I see that KafkaManager.releaseSub() is passed a timeout of 0 at >>>>>>>>>> runtime, which is not very useful. How is this actually supposed to >>>>>>>>>> be >>>>>>>>>> used? How can you make it get something else than 0? >>>>>>>>>> >>>>>>>>>> On Wed, Sep 28, 2016 at 5:33 PM, Mikael Ståldal < >>>>>>>>>> mikael.stal...@magine.com> wrote: >>>>>>>>>> >>>>>>>>>>> We have already discussed this here: https://issues.apache.or >>>>>>>>>>> g/jira/browse/LOG4J2-1390 >>>>>>>>>>> >>>>>>>>>>> I don't think the release process is the right occasion to >>>>>>>>>>> reopen this discussion. Can we please keep the Kafka 0.8 >>>>>>>>>>> compatibility for >>>>>>>>>>> this release, and then possibly reopen this discussion after the >>>>>>>>>>> release >>>>>>>>>>> (and possibly changing it for the 2.8 release)? >>>>>>>>>>> >>>>>>>>>>> On Wed, Sep 28, 2016 at 5:24 PM, Gary Gregory < >>>>>>>>>>> garydgreg...@gmail.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal < >>>>>>>>>>>> mikael.stal...@magine.com> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Kafka server 0.8 is still in use, and newer Kafka clients >>>>>>>>>>>>> cannot connect to older Kafka servers. >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> There will always be users of old software. That does not mean >>>>>>>>>>>> that new versions of Log4j must support old software, especially >>>>>>>>>>>> pre-1.0 >>>>>>>>>>>> software. >>>>>>>>>>>> >>>>>>>>>>>> Gary >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Wed, Sep 28, 2016 at 5:10 PM, Gary Gregory < >>>>>>>>>>>>> garydgreg...@gmail.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> I do not think it makes sense to support old versions that >>>>>>>>>>>>>> are not even 1.0. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Gary >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Wed, Sep 28, 2016 at 7:42 AM, Mikael Ståldal < >>>>>>>>>>>>>> mikael.stal...@magine.com> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> I fixed the Kafka issue and pushed it to master branch. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> However, I have another concern, what timeout value is >>>>>>>>>>>>>>> actually passed in to AbstractManager.releaseSub ? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Wed, Sep 28, 2016 at 3:51 PM, Mikael Ståldal < >>>>>>>>>>>>>>> mikael.stal...@magine.com> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -1 since the Kafka appender now only works with Kafka >>>>>>>>>>>>>>>> client (and thus server) 0.9+, even though we agreed to keep >>>>>>>>>>>>>>>> compatibility >>>>>>>>>>>>>>>> with 0.8 for the time being: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> https://issues.apache.org/jira/browse/LOG4J2-1390 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> The problem appeared with commit >>>>>>>>>>>>>>>> 170469514b374eb5a5a33bde6936162fd608f097 >>>>>>>>>>>>>>>> by Gary in KafkaManager.java (method releaseSub). >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I get this error with kafka-clients 0.8.2.2: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> java.lang.NoSuchMethodError: org.apache.kafka.clients.produ >>>>>>>>>>>>>>>> cer.Producer.close(JLjava/util/concurrent/TimeUnit;)V >>>>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>>>> appender.mom.kafka.KafkaManage >>>>>>>>>>>>>>>> r.releaseSub(KafkaManager.java:61) >>>>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>>>> appender.AbstractManager.stop(AbstractManager.java:85) >>>>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>>>> appender.mom.kafka.KafkaAppend >>>>>>>>>>>>>>>> er.stop(KafkaAppender.java:107) >>>>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>>>> config.AbstractConfiguration.s >>>>>>>>>>>>>>>> top(AbstractConfiguration.java:349) >>>>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>>>> LoggerContext.stop(LoggerContext.java:329) >>>>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>>>> AbstractLifeCycle.stop(AbstractLifeCycle.java:127) >>>>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>>>> LoggerContext$1.run(LoggerContext.java:275) >>>>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>>>> util.DefaultShutdownCallbackRe >>>>>>>>>>>>>>>> gistry$RegisteredCancellable.r >>>>>>>>>>>>>>>> un(DefaultShutdownCallbackRegistry.java:104) >>>>>>>>>>>>>>>> at org.apache.logging.log4j.core. >>>>>>>>>>>>>>>> util.DefaultShutdownCallbackRe >>>>>>>>>>>>>>>> gistry.run(DefaultShutdownCallbackRegistry.java:74) >>>>>>>>>>>>>>>> at java.lang.Thread.run(Thread.java:745) >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers < >>>>>>>>>>>>>>>> ralph.go...@dslextreme.com> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> This is a vote to release Log4j 2.6.2, the next version of >>>>>>>>>>>>>>>>> the Log4j 2 project. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Please download, test, and cast your votes on the log4j >>>>>>>>>>>>>>>>> developers list. >>>>>>>>>>>>>>>>> [] +1, release the artifacts >>>>>>>>>>>>>>>>> [] -1, don't release because... >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> The vote will remain open for 72 hours (or more if >>>>>>>>>>>>>>>>> required). All votes are welcome and we encourage everyone to >>>>>>>>>>>>>>>>> test the >>>>>>>>>>>>>>>>> release, but only Logging PMC votes are “officially” counted. >>>>>>>>>>>>>>>>> As always, at >>>>>>>>>>>>>>>>> least 3 +1 votes and more positive than negative votes are >>>>>>>>>>>>>>>>> required. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Changes in this version include: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> New features: >>>>>>>>>>>>>>>>> o LOG4J2-1578: RoutingAppender can be configured with >>>>>>>>>>>>>>>>> scripts. Add Script in a Routes element. >>>>>>>>>>>>>>>>> o LOG4J2-1597: Add a ScriptAppenderSelector to create an >>>>>>>>>>>>>>>>> Appender specified by a Script. >>>>>>>>>>>>>>>>> o LOG4J2-1349: (GC) Added support for garbage-free >>>>>>>>>>>>>>>>> ThreadContext map. Disabled by default, users need to enable >>>>>>>>>>>>>>>>> this explicitly. >>>>>>>>>>>>>>>>> o LOG4J2-1447: (GC) Changed LogEvent's internal data >>>>>>>>>>>>>>>>> structure for context data to be garbage-free. Added method >>>>>>>>>>>>>>>>> LogEvent#getContextData(), deprecated method #getContextMap(). >>>>>>>>>>>>>>>>> o LOG4J2-1010: Users can now inject context data from other >>>>>>>>>>>>>>>>> sources than ThreadContext. Values can be any Object, not >>>>>>>>>>>>>>>>> just Strings. Thanks to Mikael Ståldal. >>>>>>>>>>>>>>>>> o LOG4J2-1568: Added support for >>>>>>>>>>>>>>>>> java.util.concurrent.LinkedTransferQueue to AsyncAppender. >>>>>>>>>>>>>>>>> o LOG4J2-1430: Added optional support for Conversant >>>>>>>>>>>>>>>>> DisruptorBlockingQueue in AsyncAppender. Thanks to John >>>>>>>>>>>>>>>>> Cairns. >>>>>>>>>>>>>>>>> o LOG4J2-1439: Added optional support for JCTools MPSC >>>>>>>>>>>>>>>>> bounded lock-free queue in AsyncAppender. Thanks to Anthony >>>>>>>>>>>>>>>>> Maire. >>>>>>>>>>>>>>>>> o LOG4J2-1558: SocketAppender now supports IO buffering. >>>>>>>>>>>>>>>>> o LOG4J2-1557: Add a Builder for the SocketAppender >>>>>>>>>>>>>>>>> (deprecates factory method). >>>>>>>>>>>>>>>>> o LOG4J2-1609: Add a Builder to ServletAppender and >>>>>>>>>>>>>>>>> deprecate factory method. >>>>>>>>>>>>>>>>> o LOG4J2-1553: AbstractManager now implements AutoCloseable. >>>>>>>>>>>>>>>>> o LOG4J2-1528: Added ability to generate Log4j 2-style XML >>>>>>>>>>>>>>>>> configuration file from ConfigurationBuilder. >>>>>>>>>>>>>>>>> o LOG4J2-1181: Added Logging API for Scala 2.10 and 2.11. >>>>>>>>>>>>>>>>> o LOG4J2-1512: Added options to exclude stack trace from >>>>>>>>>>>>>>>>> JSON, XML and YAML layouts. >>>>>>>>>>>>>>>>> o LOG4J2-1539: Added Core API >>>>>>>>>>>>>>>>> Configurator.shutdown(LoggerContext, long, TimeUnit). >>>>>>>>>>>>>>>>> o LOG4J2-1501: FileAppender is now able to create files >>>>>>>>>>>>>>>>> on-demand. >>>>>>>>>>>>>>>>> o LOG4J2-1504: RollingFileAppender is now able to create >>>>>>>>>>>>>>>>> files on-demand. >>>>>>>>>>>>>>>>> o LOG4J2-1471: [PatternLayout] Add an ANSI option to >>>>>>>>>>>>>>>>> %xThrowable. >>>>>>>>>>>>>>>>> o LOG4J2-1472: org.apache.logging.log4j.core.LoggerContext >>>>>>>>>>>>>>>>> now implements Closeable. >>>>>>>>>>>>>>>>> o LOG4J2-1458: [PatternLayout] Add an ANSI option to >>>>>>>>>>>>>>>>> %message. >>>>>>>>>>>>>>>>> o LOG4J2-1505: Create a Builder for the FileAppender plugin >>>>>>>>>>>>>>>>> to facilitate adding attributes in the future. >>>>>>>>>>>>>>>>> o LOG4J2-1507: Allow Builders to be completely generic. >>>>>>>>>>>>>>>>> o LOG4J2-1508: Allow a Builder to subclass another Builder. >>>>>>>>>>>>>>>>> o LOG4J2-1516: Add ThreadContextMap2 interface supporting >>>>>>>>>>>>>>>>> method putAll(Map<String, String>). Thanks to Gary Gregory. >>>>>>>>>>>>>>>>> o LOG4J2-1519: Add ThreadContext.putAll(Map<String, String>). >>>>>>>>>>>>>>>>> o LOG4J2-1520: Add JUnit Rule implementations to manage the >>>>>>>>>>>>>>>>> thread context. >>>>>>>>>>>>>>>>> o LOG4J2-1547: The Core AbstractConfiguration now tracks its >>>>>>>>>>>>>>>>> LoggerContext and add Configuration.getLoggerContext(). >>>>>>>>>>>>>>>>> o LOG4J2-1540: The Core AbstractManager now tracks its >>>>>>>>>>>>>>>>> LoggerContext. >>>>>>>>>>>>>>>>> o LOG4J2-1577: Add a Builder to the RoutingAppender and >>>>>>>>>>>>>>>>> deprecate factory method. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Fixed Bugs: >>>>>>>>>>>>>>>>> o LOG4J2-1611: Improved performance of context data injector >>>>>>>>>>>>>>>>> for web applications to be on par with standalone >>>>>>>>>>>>>>>>> applications. >>>>>>>>>>>>>>>>> o LOG4J2-1591: Introduced new interface LifeCycle2 with >>>>>>>>>>>>>>>>> stop(long,TimeUnit) method to avoid breaking backwards >>>>>>>>>>>>>>>>> compatibility with new Configurator.shutdown(LoggerContext, >>>>>>>>>>>>>>>>> long, TimeUnit) API. >>>>>>>>>>>>>>>>> o LOG4J2-1590: Fixed issue with filters extending >>>>>>>>>>>>>>>>> AbstractFilter that did not override methods with unrolled >>>>>>>>>>>>>>>>> varargs. >>>>>>>>>>>>>>>>> o LOG4J2-1583: Fixed scrambled log messages triggered by >>>>>>>>>>>>>>>>> nested logging from toString() method of a logging parameter >>>>>>>>>>>>>>>>> object. Thanks to Larry West. >>>>>>>>>>>>>>>>> o LOG4J2-1259: Log4j threads are no longer leaking on Tomcat >>>>>>>>>>>>>>>>> shutdown. Thanks to Misagh Moayyed, Steffen Offermann. >>>>>>>>>>>>>>>>> o LOG4J2-1051: When starting on Google App Engine, >>>>>>>>>>>>>>>>> Interpolator now suppresses the NoClassDefFoundError stack >>>>>>>>>>>>>>>>> trace for the jvmrunargs lookup. Thanks to Lukasz Lenart. >>>>>>>>>>>>>>>>> o LOG4J2-1582: When initializing on platforms where JMX is >>>>>>>>>>>>>>>>> not available, Interpolator component no longer prints stack >>>>>>>>>>>>>>>>> trace for warning messages. >>>>>>>>>>>>>>>>> o LOG4J2-1581: Unregistering JMX components no longer prints >>>>>>>>>>>>>>>>> a stack trace when the MBean has already been unregistered. >>>>>>>>>>>>>>>>> o LOG4J2-1313: Support Property values to be specified in >>>>>>>>>>>>>>>>> configuration as a value attribute as well as an element. >>>>>>>>>>>>>>>>> Thanks to Philipp Knobel, Leon Finker. >>>>>>>>>>>>>>>>> o LOG4J2-1575: (GC) LoggerConfig now stores configuration >>>>>>>>>>>>>>>>> properties in a List, not a Map to prevent creating temporary >>>>>>>>>>>>>>>>> Iterator objects. Added method >>>>>>>>>>>>>>>>> LoggerConfig#getPropertyList(), deprecated method >>>>>>>>>>>>>>>>> #getProperties(). >>>>>>>>>>>>>>>>> o LOG4J2-1457: Fixed class loader deadlock when using async >>>>>>>>>>>>>>>>> logging and extended stack trace pattern. Thanks to Leon >>>>>>>>>>>>>>>>> Finker. >>>>>>>>>>>>>>>>> o LOG4J2-1563: Fix to prevent Log4j 2.6.2 and higher from >>>>>>>>>>>>>>>>> losing exceptions when a security manager is present. Thanks >>>>>>>>>>>>>>>>> to Jason Tedor. >>>>>>>>>>>>>>>>> o LOG4J2-1530: Fixed issue where LogEvent.getContextStack() >>>>>>>>>>>>>>>>> returned null. >>>>>>>>>>>>>>>>> o LOG4J2-1518: Prevent deadlock in Async Loggers when queue >>>>>>>>>>>>>>>>> is full and logged Object's toString() logs another message. >>>>>>>>>>>>>>>>> Thanks to Leon Finker. >>>>>>>>>>>>>>>>> o LOG4J2-1542: Prevent ArrayIndexOutOfBoundsException in >>>>>>>>>>>>>>>>> ParameterizedMessage.formatTo for single-char or empty >>>>>>>>>>>>>>>>> messages. Thanks to Rogério Lecarião Leite. >>>>>>>>>>>>>>>>> o LOG4J2-1549: Fixed issue where >>>>>>>>>>>>>>>>> AsyncLoggerContextSelector+PropertiesConfigurationBuilder >>>>>>>>>>>>>>>>> defaulted to includeLocation=true. Thanks to Jason Bedard. >>>>>>>>>>>>>>>>> o LOG4J2-1562: Prevent SocketAppender memory usage from >>>>>>>>>>>>>>>>> growing unbounded if it cannot connect to a server. >>>>>>>>>>>>>>>>> o LOG4J2-1559: Prevent NPE in Level.isInRange. Thanks to >>>>>>>>>>>>>>>>> Andrey Plotkin. >>>>>>>>>>>>>>>>> o LOG4J2-1511: DynamicThresholdFilter filtered incorrectly >>>>>>>>>>>>>>>>> when params were passed as individual arguments instead of >>>>>>>>>>>>>>>>> varargs. Thanks to Srikanth Surukuntu. >>>>>>>>>>>>>>>>> o LOG4J2-1548: [CronTriggeringPolicy] ConfigurationScheduler >>>>>>>>>>>>>>>>> scheduled the task infinitely after first fire. >>>>>>>>>>>>>>>>> o LOG4J2-1506: Log4j should not unregister JMX MBeans when >>>>>>>>>>>>>>>>> log4j2.disable.jmx property is true. Thanks to Johannes >>>>>>>>>>>>>>>>> Schleger. >>>>>>>>>>>>>>>>> o LOG4J2-1490: Log4j2 should postpone creating log file >>>>>>>>>>>>>>>>> until the appender actually receives an event. Thanks to >>>>>>>>>>>>>>>>> Krzysztof Taborski. >>>>>>>>>>>>>>>>> o LOG4J2-1320: Support loading custom plugins from jar files >>>>>>>>>>>>>>>>> and directories whose classpath entries use the "vfs" URL >>>>>>>>>>>>>>>>> protocol. Thanks to Paresh Varke, Pierrick Hymbert. >>>>>>>>>>>>>>>>> o LOG4J2-1541: Fix file handle resource leak in >>>>>>>>>>>>>>>>> XmlConfiguration.XmlConfiguration(ConfigurationSource). >>>>>>>>>>>>>>>>> o LOG4J2-1538: Prevent NPE when dynamically removing >>>>>>>>>>>>>>>>> filters. Thanks to Igor Karpov. >>>>>>>>>>>>>>>>> o LOG4J2-1532: Attributes were not merged properly in >>>>>>>>>>>>>>>>> composite configurations. >>>>>>>>>>>>>>>>> o LOG4J2-1529: Attributes were not merged properly in >>>>>>>>>>>>>>>>> composite configurations. Thanks to Sridevi Narra. >>>>>>>>>>>>>>>>> o LOG4J2-1527: Prevent NPE in >>>>>>>>>>>>>>>>> RingBufferLogEvent.getFormattedMessage() when used in web >>>>>>>>>>>>>>>>> applications. Thanks to Jose Leon. >>>>>>>>>>>>>>>>> o LOG4J2-905: Added ability to disable (date) lookup >>>>>>>>>>>>>>>>> completely for compatibility with other libraries like Camel. >>>>>>>>>>>>>>>>> Thanks to Moritz Löser. >>>>>>>>>>>>>>>>> o LOG4J2-1526: Added support for setting StatusLogger >>>>>>>>>>>>>>>>> destination in ConfigurationBuilder. >>>>>>>>>>>>>>>>> o LOG4J2-1448: Allow comma separated agents, host list to be >>>>>>>>>>>>>>>>> passed to FlumeAppender. Thanks to Keith Laban. >>>>>>>>>>>>>>>>> o LOG4J2-1500: Merging configurations failed with an NPE >>>>>>>>>>>>>>>>> when comparing Nodes with different attributes. Thanks to >>>>>>>>>>>>>>>>> Jose Leon. >>>>>>>>>>>>>>>>> o LOG4J2-1482: Fixed improper header in CsvParameterLayout. >>>>>>>>>>>>>>>>> Thanks to Sumit Singhal. >>>>>>>>>>>>>>>>> o LOG4J2-1199: Documented that JVM Input Arguments Lookup >>>>>>>>>>>>>>>>> (JMX) is not available on Google App Engine. >>>>>>>>>>>>>>>>> o LOG4J2-1438: (GC) Added method getParameter() to >>>>>>>>>>>>>>>>> ObjectMessage (and ReusableObjectMessage). >>>>>>>>>>>>>>>>> o LOG4J2-1488: (GC) Fixed ISO8601 %date conversion pattern >>>>>>>>>>>>>>>>> with a period '.' separator for milliseconds is now garbage >>>>>>>>>>>>>>>>> free. Thanks to Richard Zschech. >>>>>>>>>>>>>>>>> o LOG4J2-1489: (GC) Fixed %date conversion patterns with a >>>>>>>>>>>>>>>>> timezone parameter are now garbage free. Thanks to Richard >>>>>>>>>>>>>>>>> Zschech. >>>>>>>>>>>>>>>>> o LOG4J2-1279: Prevent NullPointerException in >>>>>>>>>>>>>>>>> FastDateParser$TimeZoneStrategy. Thanks to Tony Baines. >>>>>>>>>>>>>>>>> o LOG4J2-1341: (GC) HighlightConverter and StyleConverter >>>>>>>>>>>>>>>>> are now GC-free. Thanks to Richard Zschech. >>>>>>>>>>>>>>>>> o LOG4J2-1467: [OSGi] Fixed missing import package. Thanks >>>>>>>>>>>>>>>>> to Ralf, Gary Gregory. >>>>>>>>>>>>>>>>> o LOG4J2-351: [OSGi] Fixed wrong Fragment-Host in manifest >>>>>>>>>>>>>>>>> files. Thanks to Roland Weiglhofer. >>>>>>>>>>>>>>>>> o LOG4J2-1313: Properties declared in configuration can now >>>>>>>>>>>>>>>>> have their value either in the element body or in an >>>>>>>>>>>>>>>>> attribute named "value". Thanks to Philipp Knobel. >>>>>>>>>>>>>>>>> o LOG4J2-1235: >>>>>>>>>>>>>>>>> org.apache.logging.log4j.core.appender.routing.IdlePurgePolicy >>>>>>>>>>>>>>>>> was not working correctly. Thanks to Niranjan Rao, Sascha >>>>>>>>>>>>>>>>> Scholz, Aleksey Zvolinsky. >>>>>>>>>>>>>>>>> o LOG4J2-1502: Fixed issue where CsvParameterLayout and >>>>>>>>>>>>>>>>> CsvLogEventLayout inserted NUL characters if data starts with >>>>>>>>>>>>>>>>> {, (, [ or " Thanks to Sumit Singhal. >>>>>>>>>>>>>>>>> o LOG4J2-1573: Layout is no longer optional. Thanks to >>>>>>>>>>>>>>>>> Steffen Offermann. >>>>>>>>>>>>>>>>> o LOG4J2-1608: ServletAppender does not provide throwable >>>>>>>>>>>>>>>>> object to ServletContext. >>>>>>>>>>>>>>>>> o LOG4J2-1599: Prevent potential NPE in >>>>>>>>>>>>>>>>> org.apache.logging.log4j.message.ParameterFormatter.formatMessage3(StringBuilder, >>>>>>>>>>>>>>>>> char[], int, Object[], int, int[]). >>>>>>>>>>>>>>>>> o LOG4J2-1600: Prevent potential NPE due to >>>>>>>>>>>>>>>>> org.apache.logging.log4j.core.layout.MarkerPatternSelector.createSelector(PatternMatch[], >>>>>>>>>>>>>>>>> String, boolean, boolean, Configuration). >>>>>>>>>>>>>>>>> o LOG4J2-1601: Prevent potential NPE due to >>>>>>>>>>>>>>>>> org.apache.logging.log4j.core.layout.ScriptPatternSelector.createSelector(AbstractScript, >>>>>>>>>>>>>>>>> PatternMatch[], String, boolean, boolean, Configuration). >>>>>>>>>>>>>>>>> o LOG4J2-1602: Prevent potential NPE in >>>>>>>>>>>>>>>>> org.apache.logging.log4j.core.util.datetime.FormatCache.MultipartKey.equals(Object) >>>>>>>>>>>>>>>>> when object is null. >>>>>>>>>>>>>>>>> o LOG4J2-1603: Redo hashCode() and equals() methods in >>>>>>>>>>>>>>>>> org.apache.logging.log4j.core.net.ssl classes. >>>>>>>>>>>>>>>>> o LOG4J2-1610: Add targetNamespace to log4j-config.xsd. >>>>>>>>>>>>>>>>> GitHub #43. Thanks to Shubhankar. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Changes: >>>>>>>>>>>>>>>>> o LOG4J2-1604: Log4j2 TcpSocketServer in background. Thanks >>>>>>>>>>>>>>>>> to Colin Hillman. >>>>>>>>>>>>>>>>> o LOG4J2-1574: Allow the RollingFileAppender to use default >>>>>>>>>>>>>>>>> pattern layout. >>>>>>>>>>>>>>>>> o LOG4J2-1556: Custom Log4j threads now extend Log4jThread. >>>>>>>>>>>>>>>>> o LOG4J2-1605: Improve error messages for TcpSocketServer >>>>>>>>>>>>>>>>> and UdpSocketServer. >>>>>>>>>>>>>>>>> o LOG4J2-1458: Updated Jackson from 2.7.5 to 2.8.0. >>>>>>>>>>>>>>>>> o LOG4J2-1494: Updated Jackson from 2.8.0 to 2.8.1. >>>>>>>>>>>>>>>>> o LOG4J2-1569: Updated Jackson from 2.8.1 to 2.8.2. >>>>>>>>>>>>>>>>> o LOG4J2-1598: Updated Jackson from 2.8.2 to 2.8.3. >>>>>>>>>>>>>>>>> o LOG4J2-1495: Updated LMAX Disruptor from 3.3.4 to 3.3.5. >>>>>>>>>>>>>>>>> o LOG4J2-1496: Updated Kafka client from 0.9.1.0 to 0.10.0.0. >>>>>>>>>>>>>>>>> o LOG4J2-1533: Updated Kafka client from 0.10.0.0 to >>>>>>>>>>>>>>>>> 0.10.0.1. >>>>>>>>>>>>>>>>> o LOG4J2-1487: Updated JMS test from ActiveMQ 5.13.3 to >>>>>>>>>>>>>>>>> 5.13.4. >>>>>>>>>>>>>>>>> o LOG4J2-1551: Updated JMS test from ActiveMQ 5.13.4 to >>>>>>>>>>>>>>>>> 5.14.0. >>>>>>>>>>>>>>>>> o LOG4J2-1543: Removed deprecated Core API >>>>>>>>>>>>>>>>> org.apache.logging.log4j.core.util.Constants.UTF_8. >>>>>>>>>>>>>>>>> o LOG4J2-1544: Removed deprecated Core API >>>>>>>>>>>>>>>>> org.apache.logging.log4j.core.util.Assert.requireNonNull(T, >>>>>>>>>>>>>>>>> String). >>>>>>>>>>>>>>>>> o LOG4J2-1545: Removed deprecated Web API >>>>>>>>>>>>>>>>> org.apache.logging.log4j.web.WebLookup.getServletContext(). >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Tag: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> a) for a new copy do "git clone >>>>>>>>>>>>>>>>> https://git-wip-us.apache.org/repos/asf/logging-log4j2.git" >>>>>>>>>>>>>>>>> and then "git checkout tags/log4j-2.7-rc1” >>>>>>>>>>>>>>>>> b) for an existing working copy to “git pull” and then “git >>>>>>>>>>>>>>>>> checkout tags/log4j-2.7-rc1” >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Web Site: >>>>>>>>>>>>>>>>> <http://rgoers.github.io/log4j2-site/index.html>http://rgoers.github.io/log4j2-site/index.html >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Artifacts: >>>>>>>>>>>>>>>>> https://repository.apache.org/content/repositories/orgapachelogging-1021/ >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> You may download all the artifacts by executing: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> wget -e robots=off --cut-dirs=7 -nH -r -p -np >>>>>>>>>>>>>>>>> --no-check-certificate >>>>>>>>>>>>>>>>> https://repository.apache.org/content/repositories/orgapachelogging-1021/org/apache/logging/log4j/ >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Ralph >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>> [image: MagineTV] >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> *Mikael Ståldal* >>>>>>>>>>>>>>>> Senior software developer >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> *Magine TV* >>>>>>>>>>>>>>>> mikael.stal...@magine.com >>>>>>>>>>>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | >>>>>>>>>>>>>>>> www.magine.com >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Privileged and/or Confidential Information may be contained >>>>>>>>>>>>>>>> in this message. If you are not the addressee indicated in >>>>>>>>>>>>>>>> this message >>>>>>>>>>>>>>>> (or responsible for delivery of the message to such a >>>>>>>>>>>>>>>> person), you may not copy or deliver this message to anyone. >>>>>>>>>>>>>>>> In such case, >>>>>>>>>>>>>>>> you should destroy this message and kindly notify the >>>>>>>>>>>>>>>> sender by reply email. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> [image: MagineTV] >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> *Mikael Ståldal* >>>>>>>>>>>>>>> Senior software developer >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> *Magine TV* >>>>>>>>>>>>>>> mikael.stal...@magine.com >>>>>>>>>>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | >>>>>>>>>>>>>>> www.magine.com >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Privileged and/or Confidential Information may be contained >>>>>>>>>>>>>>> in this message. If you are not the addressee indicated in this >>>>>>>>>>>>>>> message >>>>>>>>>>>>>>> (or responsible for delivery of the message to such a >>>>>>>>>>>>>>> person), you may not copy or deliver this message to anyone. In >>>>>>>>>>>>>>> such case, >>>>>>>>>>>>>>> you should destroy this message and kindly notify the sender >>>>>>>>>>>>>>> by reply email. >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>>>>>>>>>>>> Java Persistence with Hibernate, Second Edition >>>>>>>>>>>>>> <http://www.manning.com/bauer3/> >>>>>>>>>>>>>> JUnit in Action, Second Edition >>>>>>>>>>>>>> <http://www.manning.com/tahchiev/> >>>>>>>>>>>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>>>>>>>>>>> Blog: http://garygregory.wordpress.com >>>>>>>>>>>>>> Home: http://garygregory.com/ >>>>>>>>>>>>>> Tweet! http://twitter.com/GaryGregory >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> [image: MagineTV] >>>>>>>>>>>>> >>>>>>>>>>>>> *Mikael Ståldal* >>>>>>>>>>>>> Senior software developer >>>>>>>>>>>>> >>>>>>>>>>>>> *Magine TV* >>>>>>>>>>>>> mikael.stal...@magine.com >>>>>>>>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | >>>>>>>>>>>>> www.magine.com >>>>>>>>>>>>> >>>>>>>>>>>>> Privileged and/or Confidential Information may be contained in >>>>>>>>>>>>> this message. If you are not the addressee indicated in this >>>>>>>>>>>>> message >>>>>>>>>>>>> (or responsible for delivery of the message to such a person), >>>>>>>>>>>>> you may not copy or deliver this message to anyone. In such case, >>>>>>>>>>>>> you should destroy this message and kindly notify the sender >>>>>>>>>>>>> by reply email. >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>>>>>>>>>> Java Persistence with Hibernate, Second Edition >>>>>>>>>>>> <http://www.manning.com/bauer3/> >>>>>>>>>>>> JUnit in Action, Second Edition >>>>>>>>>>>> <http://www.manning.com/tahchiev/> >>>>>>>>>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>>>>>>>>> Blog: http://garygregory.wordpress.com >>>>>>>>>>>> Home: http://garygregory.com/ >>>>>>>>>>>> Tweet! http://twitter.com/GaryGregory >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> [image: MagineTV] >>>>>>>>>>> >>>>>>>>>>> *Mikael Ståldal* >>>>>>>>>>> Senior software developer >>>>>>>>>>> >>>>>>>>>>> *Magine TV* >>>>>>>>>>> mikael.stal...@magine.com >>>>>>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>>>>>>>>> >>>>>>>>>>> Privileged and/or Confidential Information may be contained in >>>>>>>>>>> this message. If you are not the addressee indicated in this message >>>>>>>>>>> (or responsible for delivery of the message to such a person), >>>>>>>>>>> you may not copy or deliver this message to anyone. In such case, >>>>>>>>>>> you should destroy this message and kindly notify the sender by >>>>>>>>>>> reply email. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> [image: MagineTV] >>>>>>>>>> >>>>>>>>>> *Mikael Ståldal* >>>>>>>>>> Senior software developer >>>>>>>>>> >>>>>>>>>> *Magine TV* >>>>>>>>>> mikael.stal...@magine.com >>>>>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>>>>>>>> >>>>>>>>>> Privileged and/or Confidential Information may be contained in >>>>>>>>>> this message. If you are not the addressee indicated in this message >>>>>>>>>> (or responsible for delivery of the message to such a person), >>>>>>>>>> you may not copy or deliver this message to anyone. In such case, >>>>>>>>>> you should destroy this message and kindly notify the sender by >>>>>>>>>> reply email. >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>>>>>>> Java Persistence with Hibernate, Second Edition >>>>>>>>> <http://www.manning.com/bauer3/> >>>>>>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>>>>>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>>>>>> Blog: http://garygregory.wordpress.com >>>>>>>>> Home: http://garygregory.com/ >>>>>>>>> Tweet! http://twitter.com/GaryGregory >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> [image: MagineTV] >>>>>>>> >>>>>>>> *Mikael Ståldal* >>>>>>>> Senior software developer >>>>>>>> >>>>>>>> *Magine TV* >>>>>>>> mikael.stal...@magine.com >>>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>>>>>> >>>>>>>> Privileged and/or Confidential Information may be contained in this >>>>>>>> message. If you are not the addressee indicated in this message >>>>>>>> (or responsible for delivery of the message to such a person), you >>>>>>>> may not copy or deliver this message to anyone. In such case, >>>>>>>> you should destroy this message and kindly notify the sender by >>>>>>>> reply email. >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> [image: MagineTV] >>>>>>> >>>>>>> *Mikael Ståldal* >>>>>>> Senior software developer >>>>>>> >>>>>>> *Magine TV* >>>>>>> mikael.stal...@magine.com >>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>>>>> >>>>>>> Privileged and/or Confidential Information may be contained in this >>>>>>> message. If you are not the addressee indicated in this message >>>>>>> (or responsible for delivery of the message to such a person), you >>>>>>> may not copy or deliver this message to anyone. In such case, >>>>>>> you should destroy this message and kindly notify the sender by >>>>>>> reply email. >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>>>> Java Persistence with Hibernate, Second Edition >>>>>> <http://www.manning.com/bauer3/> >>>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>>> Blog: http://garygregory.wordpress.com >>>>>> Home: http://garygregory.com/ >>>>>> Tweet! http://twitter.com/GaryGregory >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> [image: MagineTV] >>>>> >>>>> *Mikael Ståldal* >>>>> Senior software developer >>>>> >>>>> *Magine TV* >>>>> mikael.stal...@magine.com >>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>>> >>>>> Privileged and/or Confidential Information may be contained in this >>>>> message. If you are not the addressee indicated in this message >>>>> (or responsible for delivery of the message to such a person), you may >>>>> not copy or deliver this message to anyone. In such case, >>>>> you should destroy this message and kindly notify the sender by reply >>>>> email. >>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> [image: MagineTV] >>>> >>>> *Mikael Ståldal* >>>> Senior software developer >>>> >>>> *Magine TV* >>>> mikael.stal...@magine.com >>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>> >>>> Privileged and/or Confidential Information may be contained in this >>>> message. If you are not the addressee indicated in this message >>>> (or responsible for delivery of the message to such a person), you may >>>> not copy or deliver this message to anyone. In such case, >>>> you should destroy this message and kindly notify the sender by reply >>>> email. >>>> >>> >>> >>> >>> -- >>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>> Java Persistence with Hibernate, Second Edition >>> <http://www.manning.com/bauer3/> >>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>> Spring Batch in Action <http://www.manning.com/templier/> >>> Blog: http://garygregory.wordpress.com >>> Home: http://garygregory.com/ >>> Tweet! http://twitter.com/GaryGregory >>> >> >> >> >> -- >> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >> Java Persistence with Hibernate, Second Edition >> <http://www.manning.com/bauer3/> >> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >> Spring Batch in Action <http://www.manning.com/templier/> >> Blog: http://garygregory.wordpress.com >> Home: http://garygregory.com/ >> Tweet! http://twitter.com/GaryGregory >> > > > -- [image: MagineTV] *Mikael Ståldal* Senior software developer *Magine TV* mikael.stal...@magine.com Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com Privileged and/or Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply email.