If you run the rat check with -P rat the docker files will be ignored.

I have never seen that test failure before on my computers but I do see that 
failure in Jenkins. I’ve never looked at that test though. It started recently. 
I don’t see it as a release blocker though.

Ralph

> On Jan 24, 2017, at 6:29 PM, Gary Gregory <garydgreg...@gmail.com> wrote:
> 
> Reviewing src zip. MD5, ASC OK.
> 
> Reviewing with BUILDING.md.
> 
> With:
> 
> Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 
> 2015-11-10T08:41:47-08:00)
> Maven home: C:\Java\apache-maven-3.3.9\bin\..
> Java version: 1.8.0_112, vendor: Oracle Corporation
> Java home: C:\Program Files\Java\jdk1.8.0_112\jre
> Default locale: en_US, platform encoding: Cp1252
> OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"
> 
> RAT check fails on Docker ignore file. Not a blocker.
> 
> CLIRR check OK.
> 
> mvn clean install 
> 
> gives me:
> 
> Failed tests:
>   
> AsyncLoggerThreadContextDefaultTest>AbstractAsyncThreadContextTestBase.testAsyncLogWritesToLog:161->AbstractAsyncThreadContextTestBase.checkResult:184
>  AsyncLoggerAndAsyncAppenderTest.log: line 0 expected:<...syncLoggerContext 
> i=[0]> but was:<...syncLoggerContext i=[128]>
> 
> Thoughts?
> 
> Gary
> 
> 
> 
> On Mon, Jan 23, 2017 at 11:04 AM, Apache <ralph.go...@dslextreme.com 
> <mailto:ralph.go...@dslextreme.com>> wrote:
> My view is that trying to keep the releases in synch is going to be more 
> trouble than it is worth.
> 
> Ralph
> 
>> On Jan 23, 2017, at 9:06 AM, Matt Sicker <boa...@gmail.com 
>> <mailto:boa...@gmail.com>> wrote:
>> 
>> The Scala API doesn't have to be versioned exactly the same as Log4j API 
>> here (if it's 2.8.1 while Log4j API is 2.8, I don't see that being a big 
>> deal). I feel as though it should maintain a similar release cycle, but as 
>> it doesn't change a lot, it might not be completely necessary all the time.
>> 
>> On 23 January 2017 at 09:42, Mikael Ståldal <mikael.stal...@magine.com 
>> <mailto:mikael.stal...@magine.com>> wrote:
>> But currently some Scala modules are duplicated in main repo and Scala repo.
>> 
>> On Mon, Jan 23, 2017 at 4:33 PM, Apache <ralph.go...@dslextreme.com 
>> <mailto:ralph.go...@dslextreme.com>> wrote:
>> We don’t really need a 2.8.1 release of core to update the web page. I can 
>> do that manually.
>> 
>> Ralph
>> 
>>> On Jan 23, 2017, at 8:24 AM, Mikael Ståldal <mikael.stal...@magine.com 
>>> <mailto:mikael.stal...@magine.com>> wrote:
>>> 
>>> I don't want to delay the 2.8 release, but I  also want to get Scala 2.12 
>>> support out before we release 2.9.
>>> 
>>> Maybe we can release 2.8 now as is, and then when the Scala repo is ready, 
>>> we can release it and at the same time do a 2.8.1 release of the main repo 
>>> with the current Scala modules removed?
>>> 
>>> On Mon, Jan 23, 2017 at 4:16 PM, Matt Sicker <boa...@gmail.com 
>>> <mailto:boa...@gmail.com>> wrote:
>>> I think the issue is that this RC has three of the four modules from the 
>>> logging-log4j-scala repo (if you include the sample jar as a released 
>>> artifact that is). When we cut a release from there, we can either try to 
>>> release just the last module as version 2.8, or we could release the whole 
>>> log4j-scala repo as 2.8.1.
>>> 
>>> On 23 January 2017 at 09:13, Apache <ralph.go...@dslextreme.com 
>>> <mailto:ralph.go...@dslextreme.com>> wrote:
>>> Every git repo has to be released separately.
>>> 
>>> Ralph
>>> 
>>>> On Jan 23, 2017, at 7:35 AM, Mikael Ståldal <mikael.stal...@magine.com 
>>>> <mailto:mikael.stal...@magine.com>> wrote:
>>>> 
>>>> What about LOG4J2-1691, the new Scala API repo? Is that ready now? Should 
>>>> that be part of this release, or will it be released separately?
>>>> 
>>>> 
>>>> On Mon, Jan 23, 2017 at 5:04 AM, Matt Sicker <boa...@gmail.com 
>>>> <mailto:boa...@gmail.com>> wrote:
>>>> Do you mean the line at the end about binary compatibility? I don't think 
>>>> that was ever templatised yet as it was a new note since the source issue 
>>>> I thought. Oh well, that's certainly not a blocker. :)
>>>> 
>>>> On 22 January 2017 at 00:14, Apache <ralph.go...@dslextreme.com 
>>>> <mailto:ralph.go...@dslextreme.com>> wrote:
>>>> It appears that when the main page was converted to Markdown one of the 
>>>> version numbers was left hard-coded. That isn’t a big deal. I will fix 
>>>> that before the site is deployed live. I have already updated the template.
>>>> 
>>>> Ralph
>>>> 
>>>>> On Jan 21, 2017, at 11:08 PM, Ralph Goers <ralph.go...@dslextreme.com 
>>>>> <mailto:ralph.go...@dslextreme.com>> wrote:
>>>>> 
>>>>> This is a vote to release Log4j 2.8 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-1032:  Make DefaultRolloverStrategy more efficent when renaming 
>>>>> files. Add nomax option to the fileIndex attribute. 
>>>>> o LOG4J2-1101:  RollingFileAppender now supports omitting the file name 
>>>>> and writing directly to the archive files. 
>>>>> o LOG4J2-1243:  Allow default value in property to be a Lookup. 
>>>>> o LOG4J2-1787:  Document how to exclude transitive conflicting 
>>>>> dependencies in Maven and Gradle. 
>>>>> o LOG4J2-1773:  Add StatusLoggerRule to allow unit tests to set a status 
>>>>> level. 
>>>>> o LOG4J2-424:  Add non-string data type support to JdbcAppender via new 
>>>>> ColumnMapping plugin. 
>>>>> o LOG4J2-1771:  Add a Builder to ColumnConfig and deprecate 
>>>>> ColumnConfig.createColumnConfig(). 
>>>>> o LOG4J2-1770:  Add a Builder to JdbcAppender and deprecate 
>>>>> JdbcAppender.createAppender(). 
>>>>> o LOG4J2-1764:  Use MethodHandle in ContextDataFactory cached 
>>>>> constructor. 
>>>>> o LOG4J2-1730:  Add Apache Cassandra appender and ColumnMapping plugin. 
>>>>> o LOG4J2-1759:  Add TypeConverter for java.util.UUID. 
>>>>> o LOG4J2-1758:  Add TypeConverter for java.nio.file.Path. 
>>>>> o LOG4J2-1755:  Add TypeConverter and constraint validators for 
>>>>> java.net.InetAddress and port numbers. 
>>>>> o LOG4J2-969:  Refactor SyslogAppender so that Layout is a Plugin 
>>>>> element. 
>>>>> o LOG4J2-1660:  Added public method ThreadContext::getThreadContextMap; 
>>>>> removed class ThreadContextAccess. 
>>>>> o LOG4J2-1379:  Add documentation regarding YAML configuration format. 
>>>>> o LOG4J2-1718:  Introduce marker interface AsynchronouslyFormattable. 
>>>>> o LOG4J2-1681:  Introduce interfaces IndexedStringMap and 
>>>>> IndexedReadOnlyStringMap, supporting garbage-free iteration over sorted 
>>>>> map. 
>>>>> o LOG4J2-1695:  Add a Builder to ScriptPatternSelector and deprecate 
>>>>> ScriptPatternSelector.createSelector(). 
>>>>> o LOG4J2-1696:  Add a Builder to MarkerPatternSelector and deprecate 
>>>>> MarkerPatternSelector.createSelector(). 
>>>>> o LOG4J2-1697:  Add a SerializerBuilder to PatternLayout and deprecate 
>>>>> PatternLayout.createSerializer(). 
>>>>> o LOG4J2-1701:  Add a Builder to RandomAccessFileAppender and deprecate 
>>>>> RandomAccessFileAppender.createAppender(). 
>>>>> o LOG4J2-1703:  Add a Builder to MemoryMappedFileAppender and deprecate 
>>>>> MemoryMappedFileAppender.createAppender(). 
>>>>> o LOG4J2-1704:  Add a Builder to RollingRandomAccessFileAppender and 
>>>>> deprecate RollingRandomAccessFileAppender.createAppender(). 
>>>>> o LOG4J2-1709:  Add a Builder to SyslogAppender and deprecate 
>>>>> SyslogAppender.createAppender(). 
>>>>> o LOG4J2-1707:  Allow TCP Socket Appender to set socket options. 
>>>>> o LOG4J2-1708:  Allow Secure Socket Appender to set socket options. 
>>>>> o LOG4J2-1737:  Add a Builder to SyslogLayout and deprecate 
>>>>> SyslogLayout.createLayout(Facility, boolean, String, Charset). 
>>>>> o LOG4J2-1738:  Add a Builder to JsonLayout and deprecate 
>>>>> org.apache.logging.log4j.core.layout.JsonLayout.createLayout(Configuration,
>>>>>  boolean, boolean, boolean, boolean, boolean, boolean, String, String, 
>>>>> Charset, boolean). 
>>>>> o LOG4J2-1739:  Add Builder to KafkaAppender and deprecate 
>>>>> KafkaAppender.createAppender(Layout, Filter, String, boolean, String, 
>>>>> Property[], Configuration). 
>>>>> o LOG4J2-1733:  Add SyncSend attribute to KafkaAppender (as in 
>>>>> KafkaLog4jAppender). Thanks to Vincent Tieleman. 
>>>>> 
>>>>> Fixed Bugs:
>>>>> o LOG4J2-1780:  Eliminate the use of the ExecutorServices in the 
>>>>> LoggerContext. 
>>>>> o LOG4J2-1786:  ConfigurationScheduler now preserves interrupt flag 
>>>>> during stop. 
>>>>> o LOG4J2-1779:  Fixed bug where AsyncLogger did not resolve configuration 
>>>>> properties. 
>>>>> o LOG4J2-1769:  Fixed concurrency issue affecting all layouts except 
>>>>> PatternLayout and GelfLayout, which caused scrambled output and 
>>>>> exceptions when logging synchronously from multiple threads. Thanks to 
>>>>> Brandon Goodin. 
>>>>> o LOG4J2-1724:  Using variables in GelfLayout's additional fields at 
>>>>> runtime. Thanks to Alexander Krasnostavsky. 
>>>>> o LOG4J2-1762:  Add Builder to GelfLayout. 
>>>>> o LOG4J2-1649:  Insure the ConfigurationScheduler shuts down without 
>>>>> blocking. Thanks to Georg Friedrich. 
>>>>> o LOG4J2-1653:  CronTriggeringPolicy would use the wrong date/time when 
>>>>> rolling over and create multiple triggering policies on reconfiguration. 
>>>>> Thanks to Georg Friedrich. 
>>>>> o LOG4J2-1748:  Do not use non-daemon thread pool for rollover tasks. 
>>>>> o LOG4J2-1628:  Fixed file locking regression in FileAppender introduced 
>>>>> in 2.6. 
>>>>> o LOG4J2-1744:  The custom logger Generate tool no longer requires the 
>>>>> log4j-api module on the classpath. 
>>>>> o LOG4J2-1731:  SslSocketManager now respects connectTimeoutMillis. 
>>>>> Thanks to Chris Ribble. 
>>>>> o LOG4J2-1682:  Logger using LocalizedMessageFactory prints key instead 
>>>>> of message. Thanks to Markus Waidhofer. 
>>>>> o LOG4J2-1720:  Make GelfLayout independent of Jackson. 
>>>>> o LOG4J2-1719:  Fixed race condition in ObjectMessage and SimpleMessage, 
>>>>> ensuring that the log message contains the value the object has during 
>>>>> the logging call. 
>>>>> o LOG4J2-1688:  Fixed bug where elements of a log message parameter array 
>>>>> were nulled out in garbage-free mode. 
>>>>> o LOG4J2-1692:  Add putAll() method to CloseableThreadContext. Thanks to 
>>>>> Greg Thomas. 
>>>>> o LOG4J2-1689:  Add CleanableThreadContextMap interface supporting method 
>>>>> removeAll(Iterable<String>). 
>>>>> o LOG4J2-1685:  Option 'disableAnsi' in PatternLayout to unconditionally 
>>>>> disable ANSI escape codes. Thanks to Raman Gupta. 
>>>>> o LOG4J2-1706:  Make TimeFilter usable as global filter and as logger 
>>>>> filter. 
>>>>> o LOG4J2-1722:  (GC) Avoid allocating temporary objects in 
>>>>> VariablesNotEmptyReplacementConverter. 
>>>>> o LOG4J2-1717:  (GC) Avoid allocating temporary objects in 
>>>>> EncodingPatternConverter. 
>>>>> o LOG4J2-1716:  (GC) Avoid allocating temporary objects in 
>>>>> MapPatternConverter. (Note that constructing a MapMessage is not 
>>>>> garbage-free.) 
>>>>> o LOG4J2-1683:  (GC) Avoid allocating temporary objects in MapMessage. 
>>>>> o LOG4J2-1715:  (GC) Avoid allocating temporary objects in 
>>>>> NdcPatternConverter. (Note that use of the ThreadContext stack is not 
>>>>> garbage-free.) 
>>>>> o LOG4J2-1714:  (GC) Avoid allocating temporary objects in 
>>>>> AbstractStyleNameConverter. 
>>>>> o LOG4J2-1680:  (GC) Avoid allocating temporary objects in TimeFilter. 
>>>>> o LOG4J2-1679:  (GC) Avoid allocating temporary objects in 
>>>>> StructuredDataFilter. 
>>>>> o LOG4J2-1678:  (GC) Avoid allocating temporary objects in 
>>>>> ThreadContextMapFilter. 
>>>>> o LOG4J2-1677:  (GC) Avoid allocating temporary objects in MapFilter. 
>>>>> o LOG4J2-1674:  (GC) Avoid allocating temporary objects in 
>>>>> ThresholdFilter. 
>>>>> o LOG4J2-1673:  (GC) Avoid allocating temporary objects in MarkerFilter. 
>>>>> o LOG4J2-1672:  (GC) Avoid allocating temporary objects in 
>>>>> LevelRangeFilter. 
>>>>> o LOG4J2-1671:  (GC) Avoid allocating temporary objects in 
>>>>> EqualsIgnoreCaseReplacementConverter. 
>>>>> o LOG4J2-1670:  (GC) Avoid allocating temporary objects in 
>>>>> EqualsReplacementConverter. 
>>>>> o LOG4J2-1669:  (GC) Avoid allocating temporary objects in 
>>>>> MaxLengthConverter. 
>>>>> o LOG4J2-1668:  (GC) Avoid allocating temporary objects in 
>>>>> MarkerPatternConverter. 
>>>>> o LOG4J2-1667:  (GC) Avoid allocating temporary objects in 
>>>>> SequenceNumberPatternConverter. 
>>>>> o LOG4J2-1666:  (GC) Avoid allocating temporary objects in 
>>>>> RelativeTimePatternConverter. 
>>>>> o LOG4J2-1665:  (GC) Avoid allocating temporary objects in 
>>>>> IntegerPatternConverter. 
>>>>> o LOG4J2-1637:  Fixed problems when used in OSGi containers 
>>>>> (IllegalAccessError, NoClassDefFoundError). 
>>>>> o LOG4J2-1226:  Improve LogEvent serialization to handle non-serializable 
>>>>> Messages and deserializing when required classes are missing. 
>>>>> o LOG4J2-1663:  Ensure SortedArrayStringMap can be serialized and 
>>>>> deserialized without errors regardless of content. 
>>>>> o LOG4J2-1658:  Prevent NPE in 
>>>>> ThreadContextMapFactory::createThreadContextMap when initializing Log4j 
>>>>> with Configurator::initialize and the BasicContextSelector is used. 
>>>>> o LOG4J2-1645:  Immutable empty StringMap. 
>>>>> o LOG4J2-1623:  Configurable JVM shutdown hook timeout. 
>>>>> o LOG4J2-1712:  Pick up bug fixes from Apache Commons Lang's 
>>>>> org.apache.commons.lang3.time package. 
>>>>> o LOG4J2-1636:  Console Appender does not pick up Oracle Java 8's 
>>>>> sun.stdout.encoding and sun.stderr.encoding. Thanks to Eldar Gabdullin. 
>>>>> o LOG4J2-1639:  Fix MemoryMappedFileAppender.createAppender() Javadoc for 
>>>>> immediateFlush. Thanks to Sridhar Gopinath. 
>>>>> o LOG4J2-1676:  Some LogEvents may not carry a Throwable (Use 
>>>>> Message.getThrowable() in log(Message) methods.) Thanks to Joern Huxhorn. 
>>>>> o LOG4J2-1723:  Unwanted transitive dependency on geronimo-jms_1.1_spec 
>>>>> causes OSGi tests to fail. Thanks to Ludovic HOCHET. 
>>>>> o LOG4J2-1664:  Improve OSGi unit tests. Thanks to Ludovic HOCHET. 
>>>>> o LOG4J2-1687:  NPE in ThrowableProxy when resolving stack in Java 
>>>>> EE/OSGi environment. Thanks to Robert Christiansen. 
>>>>> o LOG4J2-1642:  DefaultShutdownCallbackRegistry can throw a 
>>>>> NoClassDefFoundError. Thanks to Johno Crawford. 
>>>>> o LOG4J2-1474:  CronTriggeringPolicy raise exception and fail to rollover 
>>>>> log file when evaluateOnStartup is true. Thanks to yin mingjun, Neon. 
>>>>> o LOG4J2-1734:  SslSocketManagerFactory might leak Sockets when certain 
>>>>> startup errors occur. 
>>>>> o LOG4J2-1736:  TcpSocketManagerFactory might leak Sockets when certain 
>>>>> startup errors occur. 
>>>>> o LOG4J2-1740:  Add CronTriggeringPolicy programmatically leads to NPE. 
>>>>> o LOG4J2-1743:  CompositeConfiguration does not add filters to 
>>>>> appenderRefs. Thanks to Toby Shepheard. 
>>>>> o LOG4J2-1756:  Adds xmlns in schema and some other tags. Thanks to 
>>>>> shubhankar1100. 
>>>>> 
>>>>> Changes:
>>>>> o LOG4J2-1781:  Update Conversant Disruptor from 1.2.7 to 1.2.10 
>>>>> o LOG4J2-1774:  Replace MockEJB dependency in unit tests with Spring Test 
>>>>> and Mockito. 
>>>>> o LOG4J2-1644:  Inefficient locking in AbstractLoggerAdapter. Thanks to 
>>>>> Tim Gokcen, Pavel Sivolobtchik. 
>>>>> o LOG4J2-1641:  Update JeroMQ from 0.3.5 to 0.3.6. 
>>>>> o LOG4J2-1647:  Update Commons Lang from 3.4 to 3.5. 
>>>>> o LOG4J2-1646:  Migrate to Mockito 2.x in unit tests. 
>>>>> o LOG4J2-1655:  Update Jackson from 2.8.3 to 2.8.4. 
>>>>> o LOG4J2-1735:  Update Jackson from 2.8.4 to 2.8.5. 
>>>>> o LOG4J2-1656:  Update Apache Flume from 1.6.0 to 1.7.0. 
>>>>> o LOG4J2-1698:  Update LMAX Disruptor from 3.3.5 to 3.3.6. 
>>>>> o LOG4J2-1700:  Update Jansi from 1.13 to 1.14. 
>>>>> o LOG4J2-1750:  Update Kafka from 0.10.0.1 to 0.10.1.1. 
>>>>> o LOG4J2-1751:  Update liquibase-core from 3.5.1 to 3.5.3. 
>>>>> o LOG4J2-1302:  The log4j-slf4j-impl module now declares a runtime 
>>>>> dependency on log4j-core. While not technically required, this makes the 
>>>>> log4j-slf4j-impl module behave similarly to slf4j-log4j12, and 
>>>>> facilitates migration to Log4j 2. 
>>>>> Tag: 
>>>>> a)  for a new copy do "git clone 
>>>>> https://git-wip-us.apache.org/repos/asf/logging-log4j2.git 
>>>>> <https://git-wip-us.apache.org/repos/asf/logging-log4j2.git>" and then 
>>>>> "git checkout tags/log4j-2.8-rc1”
>>>>> b) for an existing working copy to “git pull” and then “git checkout 
>>>>> tags/log4j-2.8-rc1”
>>>>> Web Site:  
>>>>> <http://rgoers.github.io/log4j2-site/index.html>http://rgoers.github.io/log4j2-site/index.html
>>>>>  <http://rgoers.github.io/log4j2-site/index.html>
>>>>> 
>>>>> Artifacts: 
>>>>> https://repository.apache.org/content/repositories/orgapachelogging-1024 
>>>>> <https://repository.apache.org/content/repositories/orgapachelogging-1024>
>>>>> 
>>>>> 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-1024/org/apache/logging/log4j/
>>>>>  
>>>>> <https://repository.apache.org/content/repositories/orgapachelogging-1024/org/apache/logging/log4j/>
>>>>> Ralph
>>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> -- 
>>>> Matt Sicker <boa...@gmail.com <mailto:boa...@gmail.com>>
>>>> 
>>>> 
>>>> 
>>>> -- 
>>>>  
>>>> 
>>>> Mikael Ståldal
>>>> Senior software developer 
>>>> 
>>>> Magine TV
>>>> mikael.stal...@magine.com <mailto:mikael.stal...@magine.com>    
>>>> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  
>>>> <http://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.   
>>> 
>>> 
>>> 
>>> 
>>> -- 
>>> Matt Sicker <boa...@gmail.com <mailto:boa...@gmail.com>>
>>> 
>>> 
>>> 
>>> -- 
>>>  
>>> 
>>> Mikael Ståldal
>>> Senior software developer 
>>> 
>>> Magine TV
>>> mikael.stal...@magine.com <mailto:mikael.stal...@magine.com>    
>>> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  
>>> <http://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.   
>> 
>> 
>> 
>> 
>> -- 
>>  
>> 
>> Mikael Ståldal
>> Senior software developer 
>> 
>> Magine TV
>> mikael.stal...@magine.com <mailto:mikael.stal...@magine.com>    
>> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com  
>> <http://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. 
>>   
>> 
>> 
>> 
>> -- 
>> Matt Sicker <boa...@gmail.com <mailto:boa...@gmail.com>>
> 
> 
> 
> 
> -- 
> E-Mail: garydgreg...@gmail.com <mailto:garydgreg...@gmail.com> | 
> ggreg...@apache.org  <mailto:ggreg...@apache.org>
> Java Persistence with Hibernate, Second Edition 
> <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8>
>   
> <http://ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459>
> JUnit in Action, Second Edition 
> <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22>
>   
> <http://ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021>
> Spring Batch in Action 
> <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
>   
> <http://ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951>
> Blog: http://garygregory.wordpress.com <http://garygregory.wordpress.com/> 
> Home: http://garygregory.com/ <http://garygregory.com/>
> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>

Reply via email to