This would be the flume module Sent from my iPad
> On Jun 24, 2014, at 11:19 PM, Remko Popma <[email protected]> wrote: > > 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
