I think it's parallel in the api module but not in core. AFAIK Core needs more 
work before its tests can be run in parallel. 

Sent from my iPhone

> On 2014/06/25, at 14:07, Gary Gregory <[email protected]> wrote:
> 
> Now that I running tests over and over, I am wondering if the error I saw was 
> due to Surefire trying to run tests in parallel. Didn't we turn on parallel 
> tests recently? Or was that just an experiment I seem to recall?
> 
> Gary
> 
> 
>> On Wed, Jun 25, 2014 at 12:10 AM, Gary Gregory <[email protected]> 
>> wrote:
>> I think I fixed that in SVN now, the failing test was NOT using a dynamic 
>> port.
>> 
>> I'd appreciate a code review/sanity check from Ralph or someone familiar 
>> with the Flume tests.
>> 
>> Thank you,
>> Gary
>> 
>> 
>> 
>>> On Tue, Jun 24, 2014 at 11:59 PM, Gary Gregory <[email protected]> 
>>> wrote:
>>> +1
>>> 
>>> But let's keep talking about the intermittent Flume test failures which 
>>> could be a test issue on busy machines.
>>> 
>>> Gary
>>> 
>>> 
>>>> On Tue, Jun 24, 2014 at 11:30 PM, Ralph Goers <[email protected]> 
>>>> wrote:
>>>> Probably not timing related. You got “no flume agents”. That probably 
>>>> means the port it tried to listen on was not available for some reason.  
>>>> I’m not sure why that would happen since the tests try to dynamically 
>>>> acquire ports, but that logic might be flawed.  In any case, since it 
>>>> re-ran I doubt it is anything serious.
>>>> 
>>>> Ralph
>>>> 
>>>>> On Jun 24, 2014, at 7:34 PM, Gary Gregory <[email protected]> wrote:
>>>>> 
>>>>> Weird, now I re-ran 'mvn clean test' with Maven 3.2.1 instead of 3.0.5 
>>>>> and all went well.
>>>>> 
>>>>> I wonder if my machine was too busy doing doing stuff when I saw the 
>>>>> failure...
>>>>> 
>>>>> Any thoughts on the Flume tests being dependent on timing?
>>>>> 
>>>>> Gary
>>>>> 
>>>>> 
>>>>>> On Tue, Jun 24, 2014 at 10:12 PM, Gary Gregory <[email protected]> 
>>>>>> wrote:
>>>>>> ah, but it does eventually complete:
>>>>>> 
>>>>>> 2014-06-24 22:11:06,683 INFO Log4j appears to be running in a Servlet 
>>>>>> environment, but there's no log4j-web module available. If you want 
>>>>>> better web container support, please add the log4j-web JAR to your web 
>>>>>> archive or server lib directory
>>>>>> .
>>>>>> 2014-06-24 22:11:07,574 INFO Log4j appears to be running in a Servlet 
>>>>>> environment, but there's no log4j-web module available. If you want 
>>>>>> better web container support, please add the log4j-web JAR to your web 
>>>>>> archive or server lib directory
>>>>>> .
>>>>>> 2014-06-24 22:11:08,520 INFO Log4j appears to be running in a Servlet 
>>>>>> environment, but there's no log4j-web module available. If you want 
>>>>>> better web container support, please add the log4j-web JAR to your web 
>>>>>> archive or server lib directory
>>>>>> .
>>>>>> 2014-06-24 22:11:09,435 INFO Log4j appears to be running in a Servlet 
>>>>>> environment, but there's no log4j-web module available. If you want 
>>>>>> better web container support, please add the log4j-web JAR to your web 
>>>>>> archive or server lib directory
>>>>>> .
>>>>>> 2014-06-24 22:11:12,748 INFO Log4j appears to be running in a Servlet 
>>>>>> environment, but there's no log4j-web module available. If you want 
>>>>>> better web container support, please add the log4j-web JAR to your web 
>>>>>> archive or server lib directory
>>>>>> .
>>>>>> 2014-06-24 22:11:13,571 INFO Log4j appears to be running in a Servlet 
>>>>>> environment, but there's no log4j-web module available. If you want 
>>>>>> better web container support, please add the log4j-web JAR to your web 
>>>>>> archive or server lib directory
>>>>>> .
>>>>>> 2014-06-24 22:11:14,619 INFO Log4j appears to be running in a Servlet 
>>>>>> environment, but there's no log4j-web module available. If you want 
>>>>>> better web container support, please add the log4j-web JAR to your web 
>>>>>> archive or server lib directory
>>>>>> .
>>>>>> 2014-06-24 22:11:15,453 INFO Log4j appears to be running in a Servlet 
>>>>>> environment, but there's no log4j-web module available. If you want 
>>>>>> better web container support, please add the log4j-web JAR to your web 
>>>>>> archive or server lib directory
>>>>>> .
>>>>>> 2014-06-24 22:11:16,823 INFO Log4j appears to be running in a Servlet 
>>>>>> environment, but there's no log4j-web module available. If you want 
>>>>>> better web container support, please add the log4j-web JAR to your web 
>>>>>> archive or server lib directory
>>>>>> .
>>>>>> Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 357.444 
>>>>>> sec - in 
>>>>>> org.apache.logging.log4j.flume.appender.FlumePersistentAppenderTest
>>>>>> 
>>>>>> Results :
>>>>>> 
>>>>>> Tests in error:
>>>>>>   FlumeAppenderTest.testBatch:248 » AppenderLogging No Flume agents are 
>>>>>> availabl...
>>>>>> 
>>>>>> Tests run: 19, Failures: 0, Errors: 1, Skipped: 0
>>>>>> 
>>>>>> [INFO] 
>>>>>> ------------------------------------------------------------------------
>>>>>> [INFO] Reactor Summary:
>>>>>> [INFO]
>>>>>> [INFO] Apache Log4j 2 .................................... SUCCESS 
>>>>>> [5.807s]
>>>>>> [INFO] Apache Log4j API .................................. SUCCESS 
>>>>>> [1:25.310s]
>>>>>> [INFO] Apache Log4j Core ................................. SUCCESS 
>>>>>> [11:01.083s]
>>>>>> [INFO] Apache Log4j 1.x Compatibility API ................ SUCCESS 
>>>>>> [16.919s]
>>>>>> [INFO] Apache Log4j SLF4J Binding ........................ SUCCESS 
>>>>>> [11.615s]
>>>>>> [INFO] Apache Log4j to SLF4J Adapter ..................... SUCCESS 
>>>>>> [13.630s]
>>>>>> [INFO] Apache Log4j Commons Logging Bridge ............... SUCCESS 
>>>>>> [3.114s]
>>>>>> [INFO] Apache Log4j Flume NG Bridge ...................... FAILURE 
>>>>>> [6:21.178s]
>>>>>> [INFO] Apache Log4j Tag Library .......................... SKIPPED
>>>>>> [INFO] Apache Log4j JMX GUI .............................. SKIPPED
>>>>>> [INFO] Apache Log4j Samples .............................. SKIPPED
>>>>>> [INFO] Apache Log4j Samples: Flume - Common .............. SKIPPED
>>>>>> [INFO] Apache Log4j Samples: Flume - Remote .............. SKIPPED
>>>>>> [INFO] Apache Log4j Samples: Flume - Embedded ............ SKIPPED
>>>>>> [INFO] Apache Log4j 2 BOM ................................ SKIPPED
>>>>>> [INFO] Apache Log4j NoSQL Plugins ........................ SKIPPED
>>>>>> [INFO] Apache Log4j Web .................................. SKIPPED
>>>>>> [INFO] Apache Log4J Performance Tests .................... SKIPPED
>>>>>> [INFO] 
>>>>>> ------------------------------------------------------------------------
>>>>>> [INFO] BUILD FAILURE
>>>>>> [INFO] 
>>>>>> ------------------------------------------------------------------------
>>>>>> [INFO] Total time: 19:51.954s
>>>>>> [INFO] Finished at: Tue Jun 24 22:11:17 EDT 2014
>>>>>> [INFO] Final Memory: 40M/128M
>>>>>> [INFO] 
>>>>>> ------------------------------------------------------------------------
>>>>>> 
>>>>>> Gary
>>>>>> 
>>>>>> 
>>>>>>> On Tue, Jun 24, 2014 at 10:11 PM, Gary Gregory <[email protected]> 
>>>>>>> wrote:
>>>>>>> With the src zip, I am seeing:
>>>>>>> 
>>>>>>> Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 53.732 
>>>>>>> sec - in org.apache.logging.log4j.flume.appender.FlumeEmbeddedAgentTest
>>>>>>> Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 54.021 
>>>>>>> sec - in 
>>>>>>> org.apache.logging.log4j.flume.appender.FlumeEmbeddedAppenderTest
>>>>>>> Tests run: 7, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 59.114 
>>>>>>> sec <<< FAILURE! - in 
>>>>>>> org.apache.logging.log4j.flume.appender.FlumeAppenderTest
>>>>>>> testBatch(org.apache.logging.log4j.flume.appender.FlumeAppenderTest)  
>>>>>>> Time elapsed: 37.945 sec  <<< ERROR!
>>>>>>> org.apache.logging.log4j.core.appender.AppenderLoggingException: No 
>>>>>>> Flume agents are available
>>>>>>>         at 
>>>>>>> org.apache.logging.log4j.flume.appender.FlumeAvroManager.send(FlumeAvroManager.java:178)
>>>>>>>         at 
>>>>>>> org.apache.logging.log4j.flume.appender.FlumeAppender.append(FlumeAppender.java:104)
>>>>>>>         at 
>>>>>>> org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97)
>>>>>>>         at 
>>>>>>> org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:426)
>>>>>>>         at 
>>>>>>> org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:405)
>>>>>>>         at 
>>>>>>> org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:365)
>>>>>>>         at 
>>>>>>> org.apache.logging.log4j.core.Logger.logMessage(Logger.java:103)
>>>>>>>         at 
>>>>>>> org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:1336)
>>>>>>>         at 
>>>>>>> org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1325)
>>>>>>>         at 
>>>>>>> org.apache.logging.log4j.spi.AbstractLogger.info(AbstractLogger.java:907)
>>>>>>>         at 
>>>>>>> org.apache.logging.log4j.flume.appender.FlumeAppenderTest.testBatch(FlumeAppenderTest.java:248)
>>>>>>> 
>>>>>>> 2014-06-24 22:06:22,270 INFO Log4j appears to be running in a Servlet 
>>>>>>> environment, but there's no log4j-web module available. If you want 
>>>>>>> better web container support, please add the log4j-web JAR to your web 
>>>>>>> archive or server lib directory
>>>>>>> .
>>>>>>> 2014-06-24 22:06:23,439 INFO Log4j appears to be running in a Servlet 
>>>>>>> environment, but there's no log4j-web module available. If you want 
>>>>>>> better web container support, please add the log4j-web JAR to your web 
>>>>>>> archive or server lib directory
>>>>>>> .
>>>>>>> No Event returned
>>>>>>> No Event returned
>>>>>>> No Event returned
>>>>>>> No Event returned
>>>>>>> No Event returned
>>>>>>> No Event returned
>>>>>>> No Event returned
>>>>>>> No Event returned
>>>>>>> No Event returned
>>>>>>> No Event returned
>>>>>>> No Event returned
>>>>>>> ...
>>>>>>> 
>>>>>>> with:
>>>>>>> 
>>>>>>> Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 
>>>>>>> 2013-02-19 08:51:28-0500)
>>>>>>> Maven home: C:\Java\apache-maven-3.0.5
>>>>>>> Java version: 1.7.0_60, vendor: Oracle Corporation
>>>>>>> Java home: C:\Program Files\Java\jdk1.7.0_60\jre
>>>>>>> Default locale: en_US, platform encoding: Cp1252
>>>>>>> OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
>>>>>>> 
>>>>>>> Thoughts?
>>>>>>> 
>>>>>>> Gary
>>>>>>> 
>>>>>>> 
>>>>>>>> On Sat, Jun 21, 2014 at 8:19 PM, Ralph Goers 
>>>>>>>> <[email protected]> wrote:
>>>>>>>> This is a vote to release Log4j 2.0-rc2, which will hopefully be the 
>>>>>>>> last release candidate.  
>>>>>>>> 
>>>>>>>> Please note that I did not add the new logo to the web site. I will 
>>>>>>>> add that after the release.
>>>>>>>> 
>>>>>>>> Please test and cast your votes.
>>>>>>>> [] +1, release the artifacts
>>>>>>>> [] -1, don't release because…
>>>>>>>> 
>>>>>>>> The vote will remain open for 72 hours (or more if required).
>>>>>>>> 
>>>>>>>> 
>>>>>>>> New features:
>>>>>>>> o LOG4J2-675:  RollingFile and RollingRandomAccessFile now write the 
>>>>>>>> layout footer before rollover. 
>>>>>>>> o LOG4J2-674:  Made RollingFileAppender buffer size configurable. 
>>>>>>>> o LOG4J2-42:  Create an appender to route log events to the 
>>>>>>>> ServletContext log. 
>>>>>>>> o LOG4J2-655:  Add Vagrantfile for testing in GNU+Linux. 
>>>>>>>> o LOG4J2-654:  Add log4j-perf module to provide a home for all log4j 
>>>>>>>> performance tests.
>>>>>>>>         Add support for JMH microbenchmark performance tests. 
>>>>>>>> o LOG4J2-652:  Add support for default plugin values and attributes. 
>>>>>>>> o LOG4J2-598:  Add support for types other than String for plugin 
>>>>>>>> factory values/attributes. 
>>>>>>>> o LOG4J2-644:  Implement a SecureSocketAppender and secure server 
>>>>>>>> (SSL/TLS). 
>>>>>>>> o LOG4J2-629:  Document the system properties used in Log4J 2. 
>>>>>>>> o LOG4J2-595:  Introduce Java annotation processor as alternative 
>>>>>>>> plugin pre-caching mechanism. This is available in the
>>>>>>>>           log4j-plugin-processor module. 
>>>>>>>> o LOG4J2-576:  Add org.apache.logging.log4j.Logger.getLevel(). 
>>>>>>>> o LOG4J2-439:  Add EncodingPatternConverter to escape newlines and 
>>>>>>>> HTML special characters. Thanks to Bruce Brouwer. 
>>>>>>>> o LOG4J2-427:  Add support for configuration via YAML. Thanks to 
>>>>>>>> Alexander Reelsen. 
>>>>>>>> 
>>>>>>>> Fixed Bugs:
>>>>>>>> o LOG4J2-581:  RollingRandomAccessFile now writes the layout header 
>>>>>>>> after rollover. Thanks to Alexander Khokhlov. 
>>>>>>>> o LOG4J2-622:  RollingFileManager now correctly honours the bufferedIO 
>>>>>>>> configuration after rollover. Thanks to Farooq Khan. 
>>>>>>>> o LOG4J2-141:  Improved documentation regarding log4j status logger. 
>>>>>>>> Thanks to Joern Huxhorn. 
>>>>>>>> o LOG4J2-539:  Fixed issue with "Reconfigure using XML below" function 
>>>>>>>> in JMX Client GUI.
>>>>>>>>         ConfigurationSource is now a top-level class and can be 
>>>>>>>> obtained with Configuration.getConfigurationSource().
>>>>>>>>         LoggerContext.getConfiguration().getConfigurationSource() 
>>>>>>>>         provides a reliable public method for obtaining a logger 
>>>>>>>> context's configuration location and content. Thanks to Colin 
>>>>>>>> Froggatt. 
>>>>>>>> o LOG4J2-619:  Invalid XML configuration files do not prevent the 
>>>>>>>> config file from being checked again. Thanks to Scott Harrington. 
>>>>>>>> o LOG4J2-637:  JMX: Updating a Logger's level via jConsole now 
>>>>>>>> correctly takes effect. Thanks to Mansoor Sajjad, Jon Wilmoth. 
>>>>>>>> o LOG4J2-668:  Correctly process log events when combining 
>>>>>>>> AsyncLoggers with AsyncAppender. 
>>>>>>>> o LOG4J2-669:  Prevent NPE when combining AsyncLoggers with 
>>>>>>>> AsyncLoggerConfigs. 
>>>>>>>> o LOG4J2-563:  FlumeAvroManager now always uses a client type of 
>>>>>>>> default_failover. Thanks to Michael Friedmann. 
>>>>>>>> o LOG4J2-535:  Reset rollover time when size rollover is triggered. 
>>>>>>>> o LOG4J2-664:  Moved plugin cache file to META-INF for OSGi 
>>>>>>>> compatibility. 
>>>>>>>> o LOG4J2-640:  Fix NPE that can be caused by a null 
>>>>>>>> ThreadContextClassLoader. 
>>>>>>>> o LOG4J2-651:  Log4j 2 throws ArrayIndexOutOfBoundsException. 
>>>>>>>> o LOG4J2-620:  Perform reconfiguration in a separate thread to prevent 
>>>>>>>> deadlocks. 
>>>>>>>> o LOG4J2-639:  Prevent NPE in AsyncLogger and AsyncLoggerConfig if 
>>>>>>>> logger is used after log4j has been shut down. Thanks to Mck 
>>>>>>>> SembWever. 
>>>>>>>> o LOG4J2-469:  FailoverAppender was not resetting its status after the 
>>>>>>>> primary appender recovered. 
>>>>>>>> o LOG4J2-623:  Generate MDC properties as a JSON map in JSONLayout. 
>>>>>>>> o LOG4J2-520:  Resolved issue where AsyncAppender dropped events if 
>>>>>>>> queue still contained
>>>>>>>>         events when application is stopped. Thanks to JavaTech, Andre 
>>>>>>>> Bogus. 
>>>>>>>> o LOG4J2-392:  Resolved a problem with the previous solution for 
>>>>>>>> LOG4J2-392 that resulted in dropped events
>>>>>>>>         when using AsyncLoggerConfig with slow appenders when 
>>>>>>>> application is stopped. Thanks to Andre Bogus. 
>>>>>>>> o LOG4J2-613:  The OSGi version of log4j-web imports Servlet 2.5 at 
>>>>>>>> minimum instead of 3.0. 
>>>>>>>> o LOG4J2-602:  Unit tests are now less verbose during the build 
>>>>>>>> process. 
>>>>>>>> o LOG4J2-570:  Fix shutdown thread memory leak in servlet containers. 
>>>>>>>> o LOG4J2-542:  Make Throwable transient in ThrowableProxy. 
>>>>>>>> o LOG4J2-440:  During shutdown, a NullPointerException could be thrown 
>>>>>>>> due to the NullConfiguration class no longer being
>>>>>>>>         available to the ClassLoader. 
>>>>>>>> o LOG4J2-346:  Cyclic dependency with log4j-slf4j-impl in OSGi. 
>>>>>>>> o LOG4J2-345:  The log4j-1.2-api module didn't export any packages to 
>>>>>>>> OSGi. 
>>>>>>>> o LOG4J2-605:  Password data from the NoSQL plugins no longer shows up 
>>>>>>>> in cleartext in debug logging. 
>>>>>>>> o LOG4J2-448:  A StringIndexOutOfBounds exception could occur during 
>>>>>>>> property substitution. Thanks to X86core. 
>>>>>>>> o LOG4J2-597:  StatusLogger was not skipping multiple instances of the 
>>>>>>>> FQCN class, causing messages from classes in
>>>>>>>>         the Verbose list to be printed. 
>>>>>>>> o LOG4J2-564:  Renamed SLF4J logger class to Log4jLogger. 
>>>>>>>> o LOG4J2-579:  Rework Level comparison APIs. 
>>>>>>>> o LOG4J2-560:  SyslogAppenderTest and RFC5424LayoutTest were failing 
>>>>>>>> in Java 8. 
>>>>>>>> o LOG4J2-499:  Add equals and hashcode to Log4jLogEvent. 
>>>>>>>> o LOG4J2-378:  Add DateLookup and ThreadContextLookup to default 
>>>>>>>> lookups. 
>>>>>>>> 
>>>>>>>> Changes:
>>>>>>>> o LOG4J2-419:  Support default value for missing key in look ups with 
>>>>>>>> fallbacking to looking in the properties map. Thanks to Woonsan Ko. 
>>>>>>>> o LOG4J2-554:  Allow configuration files to be located as Servlet 
>>>>>>>> Context resources. 
>>>>>>>> o LOG4J2-250:  Refactor Log4jLogEvent to lazily create ThrowableProxy. 
>>>>>>>> o LOG4J2-647:  Upgrade to Flume 1.5.0. 
>>>>>>>> o LOG4J2-646:  Merge the TLS Syslog appender into the Syslog appender. 
>>>>>>>> o LOG4J2-641:  Override commons-logging dependency version in tests. 
>>>>>>>> o LOG4J2-566:  Made RollingRandomAccessFileAppender buffer size 
>>>>>>>> configurable. Thanks to Luigi Alice. 
>>>>>>>> o LOG4J2-628:  Use Clock to generate all log event timestamps, not 
>>>>>>>> just for Async Loggers. 
>>>>>>>> o LOG4J2-617:  Update SLF4J to 1.7.7. 
>>>>>>>> o LOG4J2-616:  Update Jackson to 2.3.3. 
>>>>>>>> o LOG4J2-585:  Add support for multiple parents to Markers. Thanks to 
>>>>>>>> Bruce Brouwer. 
>>>>>>>> o LOG4J2-574:  Make Blocking the default WaitStrategy for Async 
>>>>>>>> Loggers. 
>>>>>>>> o LOG4J2-555:  Introduce ExtendedLogger interface to facilitate 
>>>>>>>> implementing and extending Loggers. Thanks to Bruce Brouwer. 
>>>>>>>> o LOG4J2-561:  Allow spaces around commas in Configuration's package 
>>>>>>>> attribute. Thanks to vibin. 
>>>>>>>> o LOG4J2-547:  Have Logger API expose a PrintWriter instead of custom 
>>>>>>>> LoggerStream. Thanks to Bruce Brouwer. 
>>>>>>>> o LOG4J2-496:  Allow header and footer to be specified as lookup 
>>>>>>>> patterns in PatternLayout. 
>>>>>>>> o LOG4J2-410:  SLf4JLogger is now Serializable. Thanks to Ivlin Zeng. 
>>>>>>>> o LOG4J2-468:  Add support to add a LoggerConfig. Document two ways to 
>>>>>>>> modify the configuration. 
>>>>>>>> o LOG4J2-582:  Rename org.apache.logging.log4j.core.net.SocketServer 
>>>>>>>> to TCPSocketServer and refactor with UDP. 
>>>>>>>> o LOG4J2-592:  Update Jackson to 2.3.2 from 2.2.2. 
>>>>>>>> 
>>>>>>>> Tag:  
>>>>>>>> https://svn.apache.org/repos/asf/logging/log4j/log4j2/tags/log4j-2.0-rc2/
>>>>>>>> 
>>>>>>>> SVN revision: 1604493
>>>>>>>> 
>>>>>>>> Web Site: http://people.apache.org/~rgoers/log4j2/
>>>>>>>> 
>>>>>>>> Artifacts: 
>>>>>>>> https://repository.apache.org/content/repositories/orgapachelogging-1003
>>>>>>>> 
>>>>>>>> Nexus did not send an email. The list of artifacts can be found at the 
>>>>>>>> link above. 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> -- 
>>>>>>> E-Mail: [email protected] | [email protected] 
>>>>>>> Java Persistence with Hibernate, Second Edition
>>>>>>> JUnit in Action, Second Edition
>>>>>>> Spring Batch in Action
>>>>>>> Blog: http://garygregory.wordpress.com 
>>>>>>> Home: http://garygregory.com/
>>>>>>> Tweet! http://twitter.com/GaryGregory
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> -- 
>>>>>> E-Mail: [email protected] | [email protected] 
>>>>>> Java Persistence with Hibernate, Second Edition
>>>>>> JUnit in Action, Second Edition
>>>>>> Spring Batch in Action
>>>>>> Blog: http://garygregory.wordpress.com 
>>>>>> Home: http://garygregory.com/
>>>>>> Tweet! http://twitter.com/GaryGregory
>>>>> 
>>>>> 
>>>>> 
>>>>> -- 
>>>>> E-Mail: [email protected] | [email protected] 
>>>>> Java Persistence with Hibernate, Second Edition
>>>>> JUnit in Action, Second Edition
>>>>> Spring Batch in Action
>>>>> Blog: http://garygregory.wordpress.com 
>>>>> Home: http://garygregory.com/
>>>>> Tweet! http://twitter.com/GaryGregory
>>> 
>>> 
>>> 
>>> -- 
>>> E-Mail: [email protected] | [email protected] 
>>> Java Persistence with Hibernate, Second Edition
>>> JUnit in Action, Second Edition
>>> Spring Batch in Action
>>> Blog: http://garygregory.wordpress.com 
>>> Home: http://garygregory.com/
>>> Tweet! http://twitter.com/GaryGregory
>> 
>> 
>> 
>> -- 
>> E-Mail: [email protected] | [email protected] 
>> Java Persistence with Hibernate, Second Edition
>> JUnit in Action, Second Edition
>> Spring Batch in Action
>> Blog: http://garygregory.wordpress.com 
>> Home: http://garygregory.com/
>> Tweet! http://twitter.com/GaryGregory
> 
> 
> 
> -- 
> E-Mail: [email protected] | [email protected] 
> Java Persistence with Hibernate, Second Edition
> JUnit in Action, Second Edition
> Spring Batch in Action
> Blog: http://garygregory.wordpress.com 
> Home: http://garygregory.com/
> Tweet! http://twitter.com/GaryGregory

Reply via email to