Technically you are considered modularized just by adding a manifest entry providing the module name. But all the packages are exported. You cannot do more than that until all your dependencies do at least that much.
Ralph > On May 9, 2017, at 12:27 AM, Gary Gregory <garydgreg...@gmail.com> wrote: > >> On Tue, May 9, 2017 at 12:24 AM, Apache <ralph.go...@dslextreme.com> wrote: >> >> I read that previously but if Log4J implements modules I don't see how the >> nodal appenders or flume appender can work. >> >> I also got a reply to my query about referencing dependencies that are not >> yet modularized and the recommendation is to only use the manifest entry >> and not have a module-info.java until all dependencies are modularized. >> > > Am I reading that we should not modularize Log4j 2 until all of its > dependencies are themselves modularized? > > Gary > >> >>> On May 9, 2017, at 12:18 AM, Remko Popma <remko.po...@gmail.com> wrote: >>> >>> >>> >>> >>> >>> (Shameless plug) Every java main() method deserves http://picocli.info >>>> On May 9, 2017, at 15:35, Gary Gregory <garydgreg...@gmail.com> wrote: >>>> >>>> Hi All, >>>> >>>> On Mon, May 8, 2017 at 10:46 PM, Ralph Goers < >> ralph.go...@dslextreme.com> >>>> wrote: >>>> >>>>> So I keep reading up on Java modules and the more I do the more >> confused I >>>>> get about how this can ever work properly. >>>>> >>>>> 1. I am confused about how we are supposed to create a module and >>>>> reference something that is not yet a module. As I understand it, it >> will >>>>> either be an automatic module on the module path or just be in the >>>>> “unnamed” module on the class path. Well, a jar that has made no >> attempt to >>>>> be modularized will be known by the wrong name - essentially the jar >> file >>>>> name without the version so I don’t see how that can just be dropped >> on the >>>>> module path. Also, as I understand it in order for it to be accessed >> on the >>>>> class path we can’t declare a requirement on it (which makes sense I >> guess >>>>> since it isn’t a module), but it means our module declaration is >> incomplete. >>>>> >>>> >>>> For this one, this could be a case where module users will have to wrap >>>> jars in a module like some people do in OSGi: wrapping a jar to create a >>>> bundle. Eclipse ended up with a whole repository of these. Yikes. >>>> >>>> >>>>> >>>>> 2. This one scares me. The module system doesn’t allow circularities. >> So >>>>> picture a case where HttpClient is a module and it uses the Log4j 2 or >>>>> SLF4J API (it doesn’t really matter which). Then Log4j has an Appender >> that >>>>> uses HttpClient. Now you have Log4j that has an Appender that uses >>>>> HttpClient (so an optional dependency is declared) and then HttpClient >> uses >>>>> Log4j (and so declares that as a dependency) you now have a system that >>>>> won’t run. Even if HttpClient uses SLF4J instead you will still have a >>>>> problem if that then gets routed to Log4j. >>>>> >>>> >>>> Nothing to do about that which is what one of the items the JBoss folks >>>> where dismayed about... :-( >>> >>> Mark Reinhold's reasoning in his response (http://mail.openjdk.java.net/ >> pipermail/jpms-spec-experts/2017-May/000695.html) makes sense to me. >>> >>> Also not sure if there really is a problem: >>> "Cycles are not allowed when modules are resolved but it is possible to >> create them post-resolution via the API, if needed [4][5]. Cycles are also >> set up amongst all automatic modules, after resolution, to make it easier >> to treat existing JAR files as modules without change [6]." >>> >>> >>>> >>>> It's good that we are finding this out early but it sure seems worse and >>>> worse :-( >>>> >>>> Gary >>>> >>>> >>>>> I’ve written to a couple of folks off list but at the moment I’m not >> clear >>>>> on how this can work for libraries like Log4j. >>>>> >>>>> Ralph >>>>> >>>>>> On Apr 24, 2017, at 7:58 AM, Matt Sicker <boa...@gmail.com> wrote: >>>>>> >>>>>> Support Java 9 modules sounds a lot stricter than OSGi modules. >>>>> Essentially >>>>>> what is best practices in OSGi is required in JPMS. >>>>>> >>>>>> Anyways, the ServiceLoader for log4j-api sounds reasonable. The >> current >>>>>> solution is basically a custom version of that with additional >> metadata >>>>>> (the required API version), but we can probably support that >> differently. >>>>>> From what I recall, it's basically two service loaders combined into >> one. >>>>>> >>>>>> On 24 April 2017 at 09:22, Mikael Ståldal <mikael.stal...@magine.com> >>>>> wrote: >>>>>> >>>>>>> Doing things for Java 9 modules that are beneficial also in Java 7/8 >> is >>>>>>> good. >>>>>>> >>>>>>> Using Java ServiceLoader seems like a good idea, and we should >>>>> definitely >>>>>>> do it if required to support latest SLF4J. >>>>>>> >>>>>>> I am not so sure about refactoring package the structure though. >>>>> Especially >>>>>>> not if doing so will break BC. >>>>>>> >>>>>>> On Mon, Apr 24, 2017 at 4:00 PM, Ralph Goers < >>>>> ralph.go...@dslextreme.com> >>>>>>> wrote: >>>>>>> >>>>>>>> It is and it isn’t. I’ve been working on module support all >> weekend. >>>>>>>> There are a couple of changes that must be made before modules can >> be >>>>>>>> effectively implemented and IMO it is worth doing them whether we >>>>> support >>>>>>>> modules or not. Note that none of these changes require Java 9. >>>>>>>> >>>>>>>> 1. Modify the API provider mechanism to use Java ServiceLoader. >> Modules >>>>>>>> require that the kind of mechanism we are using be implemented with >>>>>>>> ServiceLoader. However, our current implementation makes this easy >> and >>>>>>>> creating a binding for for an implementation is dirt simple. I >> will be >>>>>>>> checking something in for this in the next few days. >>>>>>>> 2. Refactor our existing package structures. Modules essentially >> make >>>>>>>> everything in a package public. We currently have a mixture of >> public >>>>> and >>>>>>>> private classes in both our API and in core. We need to go through >> all >>>>>>>> these classes and determine which are really public and move the >>>>> private >>>>>>>> ones to a different package. This isn’t trivial. I think there is >>>>>>> benefit >>>>>>>> in doing this whether we support modules or not. Right now many >> methods >>>>>>>> have “consider this private” in the header. But some classes in API >>>>> that >>>>>>>> are marked this way are used by Core, which means they are required >> to >>>>> be >>>>>>>> public to an implementation. These kinds of classes should be in the >>>>> spi >>>>>>>> package. >>>>>>>> >>>>>>>> I should also note that SLF4J now supports Java modules in the 1.8.0 >>>>>>> alpha >>>>>>>> releases. I tried integrating with that, and was somewhat >> successful, >>>>> but >>>>>>>> since Logback isn’t modularized our build fails in the various >> points >>>>>>> where >>>>>>>> we have tests that use it. SLF4J also changed its binding >> mechanism to >>>>>>> use >>>>>>>> SeviceLoader and it will ignore implementations that use the current >>>>>>>> binding mechanism. I have implemented support for that and will be >>>>>>>> committing that in the next few days as well. >>>>>>>> >>>>>>>> Ralph >>>>>>>> >>>>>>>>> On Apr 24, 2017, at 3:15 AM, Mikael Ståldal < >>>>> mikael.stal...@magine.com >>>>>>>> >>>>>>>> wrote: >>>>>>>>> >>>>>>>>> I think that it might be a bit early for us to do too much work for >>>>>>>>> supporting Java 9 modules. >>>>>>>>> >>>>>>>>> On Mon, Apr 24, 2017 at 12:03 PM, Mikael Ståldal < >>>>>>>> mikael.stal...@magine.com> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> This option will only be supported in JDK 9. >>>>>>>>>> It will be removed in JDK 10. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Sun, Apr 23, 2017 at 6:51 PM, Gary Gregory < >>>>> garydgreg...@gmail.com >>>>>>>> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> The "big kill switch" straight from the source: >>>>>>>>>>> http://mail.openjdk.java.net/pipermail/jigsaw-dev/2017- >>>>>>>> March/011763.html >>>>>>>>>>> >>>>>>>>>>> --permit-illegal-access >>>>>>>>>>> >>>>>>>>>>> Gary >>>>>>>>>>> >>>>>>>>>>>> On Apr 23, 2017 9:44 AM, "Matt Sicker" <boa...@gmail.com> >> wrote: >>>>>>>>>>>> >>>>>>>>>>>> “I have too often seen APIs that seemed like a good idea at the >>>>> time >>>>>>>> but >>>>>>>>>>>> were, in fact, woefully deficient, baked into the Java Platform >>>>>>> where >>>>>>>>>>> they >>>>>>>>>>>> fester for ages, cause pain to all who use it, and torment those >>>>> who >>>>>>>>>>>> maintain it. I will not let that happen >>>>>>>>>>>> Here“ - Mark Reinhold >>>>>>>>>>>> >>>>>>>>>>>> That sounds like JPMS in general to be honest, but I'm just >> being >>>>>>>>>>> cynical. >>>>>>>>>>>> ;) >>>>>>>>>>>> >>>>>>>>>>>> On 23 April 2017 at 11:34, Gary Gregory <garydgreg...@gmail.com >>> >>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> On Apr 23, 2017 9:19 AM, "Matt Sicker" <boa...@gmail.com> >> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> One potential scenario I see is that many users may just end up >>>>>>>>>>> disabling >>>>>>>>>>>>> JPMS in all their applications to the point that it's >>>>> significantly >>>>>>>>>>>> revised >>>>>>>>>>>>> or scaled back for Java 10 or later. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> That's my plan the first time I see an IllegalAccessError :-( >> what >>>>>>> is >>>>>>>>>>> the >>>>>>>>>>>>> command line kill switch called? >>>>>>>>>>>>> >>>>>>>>>>>>> Gary >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On 23 April 2017 at 11:04, Gary Gregory < >> garydgreg...@gmail.com> >>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Worse: Are Java 9 modules its Titanic? >>>>>>>>>>>>>> https://developer.jboss.org/blogs/scott.stark/2017/04/14/ >>>>>>>>>>>>>> critical-deficiencies-in-jigsawjsr-376-java-platform- >>>>>>>>>>>>>> module-system-ec-member-concerns >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Gary >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Apr 22, 2017 5:02 PM, "Ralph Goers" < >>>>>>> ralph.go...@dslextreme.com> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> This is an interesting look at the problems faced in getting >>>>>>>>>>>> Hibernate >>>>>>>>>>>>> to >>>>>>>>>>>>>>> work. http://stackoverflow.com/questions/43258796/hibernate- >>>>>>>>>>>>>>> support-for-java-9 <http://stackoverflow.com/ >>>>>>>>>>>>>> questions/43258796/hibernate- >>>>>>>>>>>>>>> support-for-java-9>. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> The issue with the compile problem with javax.xml are >> familiar >>>>> to >>>>>>>>>>> me >>>>>>>>>>>> - >>>>>>>>>>>>> I >>>>>>>>>>>>>>> had to modify some Log4j code to not use the DataType >> converter >>>>>>>>>>> as it >>>>>>>>>>>>>> isn’t >>>>>>>>>>>>>>> present in the java.base module. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Ralph >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Apr 22, 2017, at 4:40 PM, Ralph Goers < >>>>>>>>>>>> ralph.go...@dslextreme.com >>>>>>>>>>>>>> >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Oh - I just reread this. S far as I know Java 9 has a >> scheduled >>>>>>>>>>>>> release >>>>>>>>>>>>>>> date. It is July 27. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> BTW - here is the complete set of features - >>>>>>>>>>>>> https://docs.oracle.com/ >>>>>>>>>>>>>>> javase/9/whatsnew/toc.htm#JSNEW-GUID-BA9D8AF6-E706-4327- >>>>>>>>>>>>>> 8909-F6747B8F35C5 >>>>>>>>>>>>>>> <https://docs.oracle.com/javase/9/whatsnew/toc.htm# >>>>>>>>>>>>>>> JSNEW-GUID-BA9D8AF6-E706-4327-8909-F6747B8F35C5>. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Ralph >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Apr 22, 2017, at 10:45 AM, Gary Gregory < >>>>>>>>>>>> garydgreg...@gmail.com> >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Let me play devil's advocate here for a sec... >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Java 9 modules and this auto naming business sounds >> painful. >>>>> Is >>>>>>>>>>>>> there >>>>>>>>>>>>>>> any >>>>>>>>>>>>>>>>> chance that this feature will be ignored like >>>>>>>>>>> java.util.logging is >>>>>>>>>>>>> or >>>>>>>>>>>>>>>>> should be? >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Can we stop tying ourselves into unreleased pretzels over a >>>>>>>>>>> moving >>>>>>>>>>>>>>> target >>>>>>>>>>>>>>>>> since we do not know when Java 9 will be out. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Can't we refocus this energy on getting the best out of >> Java >>>>> 8? >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Ducking from incoming tomatoes, >>>>>>>>>>>>>>>>> Gary >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Fri, Apr 21, 2017 at 8:48 PM, Matt Sicker < >>>>> boa...@gmail.com >>>>>>>>>>>> >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> I'm a fan of splitting packages up better due to OSGi >> support >>>>>>>>>>> in >>>>>>>>>>>>> the >>>>>>>>>>>>>>> first >>>>>>>>>>>>>>>>>> place. Hierarchical packaging is definitely something new >>>>>>>>>>> (OSGi >>>>>>>>>>>>>> doesn't >>>>>>>>>>>>>>>>>> care about that; each package is considered separately), >> and >>>>>>>>>>> it >>>>>>>>>>>>> could >>>>>>>>>>>>>>> help >>>>>>>>>>>>>>>>>> in making some classes more organized. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On 21 April 2017 at 14:55, Stefan Bodewig < >>>>> bode...@apache.org >>>>>>>>>>>> >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> On 2017-04-21, Ralph Goers wrote: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> I have not started work on this yet, but from looking at >>>>>>>>>>>>>>>>>>>> http://blog.joda.org/2017/04/j >>>>>>>>>>> ava-9-modules-jpms-basics.html >>>>>>>>>>>>>>>>>>>> <http://blog.joda.org/2017/04/ >>>>>>>>>>> java-9-modules-jpms-basics.html> >>>>>>>>>>>>> it >>>>>>>>>>>>>>>>>>>> seems we are going to have problems with a) plugins that >>>>>>>>>>> are in >>>>>>>>>>>>>>>>>>>> different jars (modules) that use the same namespace >> and b) >>>>>>>>>>>>>>> log4j-core >>>>>>>>>>>>>>>>>>>> as it currently exists. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Item b is a problem because the module-info for >> log4j-core >>>>>>>>>>>> should >>>>>>>>>>>>>>> have >>>>>>>>>>>>>>>>>>>> a requires ONLY for log4j-api. For example, I’m not sure >>>>>>>>>>> how we >>>>>>>>>>>>> can >>>>>>>>>>>>>>>>>>>> have an optional dependency on Jackson. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> requires static module-name-of-jackson; >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> http://cr.openjdk.java.net/~mr/jigsaw/spec/lang-vm.html >>>>>>>>>>> section >>>>>>>>>>>>>> 1.1.1 >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> The requires keyword may be followed by the modifier >>>>>>>>>>> static. >>>>>>>>>>>>> This >>>>>>>>>>>>>>>>>>> specifies that the dependence, while mandatory at compile >>>>>>>>>>>> time, >>>>>>>>>>>>> is >>>>>>>>>>>>>>>>>>> optional at run time. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Of course "requires static" captures this way more >> clearly >>>>>>>>>>> than >>>>>>>>>>>>>>> "require >>>>>>>>>>>>>>>>>>> optional" which was proposed intially >>>>>>>>>>>>>>>>>>> http://openjdk.java.net/projects/jigsaw/doc/topics/ >>>>>>>>>>>> optional.html >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> :-) >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Without knowing the structure of log4j too well I agree >> the >>>>>>>>>>>> strict >>>>>>>>>>>>>>>>>>> package hierarchies mandated by JPMS will be a problem. >>>>>>>>>>> Probably >>>>>>>>>>>>> for >>>>>>>>>>>>>>>>>>> many other projects with more than one artifact as well. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Stefan >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>> Matt Sicker <boa...@gmail.com> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>> E-Mail: garydgreg...@gmail.com | 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= >>>>>>>>>>>> cadb800f39946ec62ea2b1af9fe6a2 >>>>>>>>>>>>> b8> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> <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= >>>>>>>>>>>> 31ecd1f6b6d1eaf8886ac902a24de4 >>>>>>>>>>>>>> 18%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 >>>>>>>>>>>>>>>>> Home: http://garygregory.com/ >>>>>>>>>>>>>>>>> Tweet! http://twitter.com/GaryGregory >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> Matt Sicker <boa...@gmail.com> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> Matt Sicker <boa...@gmail.com> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> [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. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> [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. >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Matt Sicker <boa...@gmail.com> >>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> E-Mail: garydgreg...@gmail.com | 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 >>>> Home: http://garygregory.com/ >>>> Tweet! http://twitter.com/GaryGregory >> >> >> > > > -- > E-Mail: garydgreg...@gmail.com | 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 > Home: http://garygregory.com/ > Tweet! http://twitter.com/GaryGregory