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

Reply via email to