As an end user of JUL in other projects, let me warn you that you'll miss a
lot of abstractions that log4j2 and slf4j provide. :)

On Mon, 13 Aug 2018 at 09:50, Gary Gregory <garydgreg...@gmail.com> wrote:

> I like Remko's suggestion, a nice application of the KISS principle ;-)
>
> Gary
>
> On Mon, Aug 13, 2018, 07:58 Remko Popma <remko.po...@gmail.com> wrote:
>
> > If it was up to me I would use JUL in this particular case to keep the
> > library free of dependencies. JUL is reasonable since performance is not
> an
> > issue.
> >
> > Users that use a logging framework can redirect the JUL logging into
> their
> > log file with the JUL adapter of their logging library.
> >
> > But that’s just me.
> >
> > Remko
> >
> > (Shameless plug) Every java main() method deserves http://picocli.info
> >
> > > On Aug 13, 2018, at 21:05, Bruno P. Kinoshita <
> > brunodepau...@yahoo.com.br.INVALID> wrote:
> > >
> > > I was thinking more about using that as an argument for using a logging
> > framework, but I think you are right. Probably slf4j/commons-logging +
> some
> > default binding, then allowing users to change the implementation.
> > >
> > > Perhaps slf4j + log4j?
> > >
> > >
> > > Bruno
> > >
> > > ________________________________
> > > From: Remko Popma <remko.po...@gmail.com>
> > > To: Commons Developers List <dev@commons.apache.org>
> > > Sent: Monday, 13 August 2018 11:55 PM
> > > Subject: Re: [imaging] IMAGING-154 remove Debug class
> > >
> > >
> > >
> > > For new projects I would really avoid using Commons Logging. Ceki had a
> > point when he created SLF4J.
> > >
> > >
> > > The projects you mentioned that have a dependency on Commons Logging
> > were started before SLF4J (and perhaps JUL) were created, I believe.
> > >
> > >
> > >
> > > (Shameless plug) Every java main() method deserves http://picocli.info
> > >
> > >
> > >>> On Aug 13, 2018, at 18:22, Bruno P. Kinoshita <
> > brunodepau...@yahoo.com.br.INVALID> wrote:
> > >
> > >> Right now that's where I am standing too. If adding a dependency to
> > log4j is a no-no, then I'd probably check if jul would be OK, or
> otherwise
> > maybe import just Log4J's LowLevelLogUtil into the project would work?
> > >
> > >
> > >
> > >> Commons DBCP, Commons Configuration, Commons Beanutils, Commons JEXL,
> > and Commons Validator. All of these have a compile dependency to Commons
> > Logging. So it wouldn't be creating a new precedent.
> > >
> > >
> > >
> > >> Commons Pool and Commons Compress have some optional dependencies, but
> > none for logging... maybe an optional dependency, with disabling the
> > logging by default **could** work?
> > >
> > >
> > >
> > >> Cheers
> > >
> > >> Bruno
> > >
> > >
> > >
> > >> ________________________________
> > >
> > >> From: Remko Popma <remko.po...@gmail.com>
> > >
> > >> To: Commons Developers List <dev@commons.apache.org>
> > >
> > >> Sent: Monday, 13 August 2018 9:50 AM
> > >
> > >> Subject: Re: [imaging] IMAGING-154 remove Debug class
> > >
> > >
> > >
> > >
> > >> If you want to avoid a dependency I would not create a custom logging
> > abstraction but just use JUL. Most logging libraries have JUL adapters so
> > clients can do the bridging on their side.
> > >
> > >
> > >> (Shameless plug) Every java main() method deserves
> http://picocli.info
> > >
> > >
> > >>> On Aug 13, 2018, at 0:17, Matt Sicker <boa...@gmail.com> wrote:
> > >
> > >
> > >>> What I've seen done when trying to avoid a logging API dependency is
> to
> > >
> > >>> create a minimal logging API purely for framework use. This can have
> a
> > >
> > >>> default System.err style implementation, but the idea is to make it
> > easy
> > >
> > >>> (and performant hopefully) to bridge into the end user's choice of
> > >
> > >>> framework and configuration without actually requiring a real logging
> > >
> > >>> framework (at least until you want to use it in production). While it
> > seems
> > >
> > >>> overkill, the problem is that neither JUL nor System.err are
> > sufficient for
> > >
> > >>> logging. Even a simple API like Android's logging API can be good
> > enough to
> > >
> > >>> abstract it in a small library.
> > >
> > >
> > >>> For a look at the very simplest route, you can see how Log4j2 handles
> > >
> > >>> logging before any logging classes have been initialized. It's
> > basically a
> > >
> > >>> configurable wrapper around System.err:
> > >
> > >>>
> >
> https://github.com/apache/logging-log4j2/blob/master/log4j-api/src/main/java/org/apache/logging/log4j/util/LowLevelLogUtil.java
> > >
> > >
> > >
> > >>>> On Sun, 12 Aug 2018 at 09:12, Gary Gregory <garydgreg...@gmail.com>
> > wrote:
> > >
> > >
> > >>>> You could also log to a pluggable print stream which could be sys
> err
> > by
> > >
> > >>>> default. Kind of like what JDBC allows. My bias is to Log4j 2 as
> well
> > :-)
> > >
> > >
> > >>>> Gary
> > >
> > >
> > >>>>> On Sun, Aug 12, 2018, 08:00 Remko Popma <remko.po...@gmail.com>
> > wrote:
> > >
> > >
> > >>>>> There’s a couple of considerations about doing logging in a
> library,
> > but
> > >
> > >>>>> I’ll just mention a few:
> > >
> > >
> > >>>>> * dependencies
> > >
> > >>>>> * performance
> > >
> > >>>>> * ease of use
> > >
> > >
> > >>>>> * Dependencies*
> > >
> > >>>>> Will the library be less attractive to users if it requires an
> > external
> > >
> > >>>>> dependency? Then don’t introduce one (so: use system err or JUL).
> On
> > the
> > >
> > >>>>> other hand, if the vast majority of usages is in a context with
> many
> > >
> > >>>> other
> > >
> > >>>>> external libraries (like in a web container) you have more freedom.
> > >
> > >
> > >>>>> *Performance*
> > >
> > >>>>> Please take a look at the log4j 2 performance page (
> > >
> > >>>>> https://logging.apache.org/log4j/2.x/performance.html#tradeoffs).
> > >
> > >>>> Console
> > >
> > >>>>> logging is 50x (yes fifty times) slower than file logging.
> > >
> > >>>>> That’s a strong argument against system err logging. I’m not a fan
> of
> > >
> > >>>> JUL,
> > >
> > >>>>> but if you need to avoid dependencies you’re better off using JUL,
> > that’s
> > >
> > >>>>> only 5x slower than log4j. Also depends on how much logging you
> > expect to
> > >
> > >>>>> do in the worst case.
> > >
> > >
> > >>>>> *Ease of use*
> > >
> > >>>>> I’m biased and would say that Log4j 2 has the nicest and richest
> API.
> > >
> > >>>>> Console logging (System.err.printf) probably has the poorest API.
> > Other
> > >
> > >>>>> libraries sit in the middle.
> > >
> > >
> > >>>>> *Final note*
> > >
> > >>>>> I would never log to System out, always use system err instead.
> This
> > >
> > >>>>> allows programs using your library to pipe output to other programs
> > >
> > >>>> without
> > >
> > >>>>> their output getting mixed with your library’s diagnostic output.
> > >
> > >
> > >>>>> Hope this helps,
> > >
> > >
> > >>>>> Remko
> > >
> > >
> > >>>>> (Shameless plug) Every java main() method deserves
> > http://picocli.info
> > >
> > >
> > >>>>>> On Aug 12, 2018, at 21:21, Gilles <gil...@harfang.homelinux.org>
> > >
> > >>>> wrote:
> > >
> > >
> > >>>>>> Hello Bruno.
> > >
> > >
> > >>>>>>> On Sun, 12 Aug 2018 08:56:37 +0000 (UTC), Bruno P. Kinoshita
> wrote:
> > >
> > >>>>>>> Hi all,
> > >
> > >
> > >
> > >>>>>>> I commented on IMAGING-154, but copying the last comment here as
> it
> > >
> > >>>>>>> contains the approach I would like to follow to fix the last
> > change in
> > >
> > >>>>>>> the project blocking
> > >
> > >>>>>>> a 1.0 release:
> > >
> > >
> > >
> > >>>>>>> ---
> > >
> > >
> > >>>>>>> So went ahead to re-design the Debug class, in a way users could
> > >
> > >>>>>>> still enable/disable debugging, and also use a PrintStream so
> that
> > >
> > >>>>>>> other thing rather than System.out could be used.
> > >
> > >
> > >
> > >
> > >>>>>>> Then, realized removing System.out was the natural next step. But
> > >
> > >>>>>>> alas, the library uses System.out for debugging, but sometimes it
> > uses
> > >
> > >>>>>>> it for writing to System.out in a "verbose mode". What is more
> > >
> > >>>>>>> complicated, is that sometimes classes methods like `toString()`
> > are
> > >
> > >>>>>>> calling debug methods that receive a PrintStream already.
> > >
> > >
> > >
> > >
> > >>>>>>> So I spent some more time quickly comparing what other libraries
> > I've
> > >
> > >>>>>>> seen being used / or used for image processing:
> > >
> > >
> > >
> > >>>>
> >
> https://kinoshita.eti.br/2018/08/12/use-of-logging-in-java-image-processing-libraries/
> > >
> > >>>>> .
> > >
> > >>>>>>> Turns out only very low level libraries, such as the JNI bridge
> for
> > >
> > >>>>>>> OpenCV, im4java, and Java's ImageIO can do with just throwing
> > >
> > >>>>>>> Exception's.
> > >
> > >
> > >
> > >
> > >>>>>>> All other libraries have one way or another of logging. Be it
> with
> > >
> > >>>>>>> JUL, SLF4J, custom loggers, or with the ol' System.out/err.
> > >
> > >
> > >
> > >
> > >>>>>>> My preferred compromise for this ticket was to keep Debug, making
> > >
> > >>>>>>> System.out possible but optional, and mark the class internal
> only.
> > >
> > >>>>>>> Now my preferred solution is to keep the Debug internal, but add
> a
> > >
> > >>>>>>> logger to it. And then also add logging to replace where
> > System.out is
> > >
> > >>>>>>> used for the "verbose" mode.
> > >
> > >>>>>>> ---
> > >
> > >
> > >
> > >
> > >>>>>>> Any thoughts? Objections? If none, I will try to work on this
> issue
> > >
> > >>>>>>> next weekend, making the Debug class internal only, and replacing
> > >
> > >>>>>>> System.out by a logging utility. After that, we should be good to
> > >
> > >>>>>>> start preparing the vote for 1.0.
> > >
> > >
> > >
> > >
> > >>>>>>> * I know it's hard to get a consensus on having logging in
> Commons
> > >
> > >>>>>>> components, as we have  normally low level libraries, where using
> > >
> > >>>>>>> logging is not always practical.
> > >
> > >
> > >>>>>> There are Log4j2 experts reading here.  It would be interesting
> > >
> > >>>>>> to hear them about what is practical or not.  There are several
> > >
> > >>>>>> aspects to "practical": simplicity, flexibility, compatibility,
> > >
> > >>>>>> performance, ...
> > >
> > >>>>>> How does Log4j2 fare in these areas?
> > >
> > >>>>>> Is there a known (through experience) limit in where it should
> > >
> > >>>>>> be used?
> > >
> > >
> > >>>>>>> But I would now argue that Java own
> > >
> > >>>>>>> ImageIO is low level. But ImageJ2, Processing, OpenJPEG, and
> > Commons
> > >
> > >>>>>>> Imaging are located at a higher level, some times even using it
> for
> > >
> > >>>>>>> basic image handling/parsing/reading.
> > >
> > >
> > >>>>>> As with many discussions on this list, conflicting arguments occur
> > >
> > >>>>>> because people lack common (!) definitions.
> > >
> > >>>>>> So one goes: "You cannot do <something> in a low-level component"
> > >
> > >>>>>> but does not define "low-level"...
> > >
> > >
> > >>>>>>> * Feel free to cast a counter-argument for it, but please think
> > >
> > >>>>>>> whether you'd still be -0, +0 for this change. We have delayed
> 1.0
> > for
> > >
> > >>>>>>> a while, so if you have a strong opinion on not adding a logger,
> > >
> > >>>>>>> please provide an alternative for IMAGING-154.
> > >
> > >
> > >>>>>>> Otherwise we may fail
> > >
> > >>>>>>> to prepare a 1.0 release yet again, and then somebody else may
> > have to
> > >
> > >>>>>>> work on it in a few months/years...
> > >
> > >
> > >>>>>> We are there because the project is too rigid about itself as
> > >
> > >>>>>> a whole (cf. for example the [RNG] thread about BC).
> > >
> > >>>>>> IMHO, it's not the always least common denominator that is the
> > >
> > >>>>>> best decision...
> > >
> > >>>>>> As you noticed, components most easily stall in their development
> > >
> > >>>>>> for lack of proper review, or risk acceptance (i.e. assume that
> > >
> > >>>>>> those who are closer to the code (at a given time) probably know
> > >
> > >>>>>> best... :-/
> > >
> > >
> > >>>>>> My opinion is that we can take the risk to introduce logging, and
> > >
> > >>>>>> if people complain somehow, take it back later.
> > >
> > >
> > >>>>>>> one possible compromise for this,
> > >
> > >>>>>>> might be i) make Debug internal,
> > >
> > >
> > >>>>>> +1
> > >
> > >
> > >>>>>> [Hmm... Does "internal" mean that minor release can break BC
> > >
> > >>>>>> on such a class?]
> > >
> > >
> > >>>>>>> ii) remove all System.out calls,
> > >
> > >
> > >>>>>> +1 or
> > >
> > >>>>>> -1
> > >
> > >
> > >>>>>> [Depends on what "low-level" means here. "stdout"/"stderr" is
> > >
> > >>>>>> indeed used in low-level utilities but is the intent the same
> > >
> > >>>>>> here?]
> > >
> > >
> > >>>>>>> which means removing the verbose flags, the checks, and calls to
> > >
> > >>>>>>> System.out in there.
> > >
> > >
> > >>>>>> It would be a loss of potentially useful information (e.g. for
> > >
> > >>>>>> debugging).
> > >
> > >
> > >>>>>> Regards,
> > >
> > >>>>>> Gilles
> > >
> > >
> > >
> > >>>>>>> Thanks!
> > >
> > >>>>>>> Bruno
> > >
> > >
> > >>>>>>> ________________________________
> > >
> > >>>>>>> From: Bruno P. Kinoshita <brunodepau...@yahoo.com.br.INVALID>
> > >
> > >>>>>>> To: Commons Developers List <dev@commons.apache.org>
> > >
> > >>>>>>> Sent: Tuesday, 6 February 2018 11:30 PM
> > >
> > >>>>>>> Subject: Re: [imaging] IMAGING-154 remove Debug class
> > >
> > >
> > >
> > >
> > >>>>>>> Hi sebb,
> > >
> > >
> > >>>>>>>> Another aspect of debugging is ensuring that methods are small
> and
> > >
> > >
> > >>>>>>>> easily tested independently.
> > >
> > >>>>>>>> However this is difficult to do, and care must be taken to
> ensure
> > >
> > >>>> that
> > >
> > >>>>>>>> the public API is not unnecessarily extended..
> > >
> > >
> > >>>>>>> A very good point.
> > >
> > >
> > >>>>>>> The parsers in commons-imaging expose some #dump... methods
> > >
> > >>>>>>> (
> > >
> > >
> > >>>>
> >
> https://github.com/apache/commons-imaging/blob/7e7f96857df999175bb614732e13272a82f7962a/src/main/java/org/apache/commons/imaging/ImageParser.java#L794
> > >
> > >>>>> ).
> > >
> > >
> > >>>>>>> While I can see that parsers may need to dump the data they are
> > >
> > >>>>>>> holding in some structured way for inspecting, reporting,
> > serializing,
> > >
> > >>>>>>> etc, it looks like some other classes were affected by it too.
> For
> > >
> > >>>>>>> example...
> > >
> > >
> > >
> > >>>>>>> A JPEG Segment has a #dump() method
> > >
> > >
> > >
> > >
> > >
> > >>>>
> >
> https://github.com/apache/commons-imaging/blob/7e7f96857df999175bb614732e13272a82f7962a/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/Segment.java#L34
> > >
> > >
> > >
> > >>>>>>> which gets defined in each subclass of Segment. It can be
> confusing
> > >
> > >>>>>>> to have a method such as #dump() in a Segment, from the point of
> > view
> > >
> > >>>>>>> of someone writing a photo editor for example. The user could use
> > that
> > >
> > >>>>>>> to pass his/her own logger's PrintWriter, which would make
> > removing or
> > >
> > >>>>>>> changing logging in the future in commons-imaging.
> > >
> > >
> > >
> > >>>>>>> If we keep the Debug class, and make it internal, there would
> still
> > >
> > >>>>>>> be these methods to take care. And there are some methods where
> > users
> > >
> > >>>>>>> can provide a PrintWriter, while others instead use System.out
> > >
> > >>>>>>> (e.g.
> > >
> > >
> > >>>>
> >
> https://github.com/apache/commons-imaging/blob/7e7f96857df999175bb614732e13272a82f7962a/src/main/java/org/apache/commons/imaging/FormatCompliance.java#L70
> > >
> > >>>>> ).
> > >
> > >
> > >>>>>>> Cheers
> > >
> > >>>>>>> Bruno
> > >
> > >
> > >>>>>>> ________________________________
> > >
> > >>>>>>> From: sebb <seb...@gmail.com>
> > >
> > >>>>>>> To: Commons Developers List <dev@commons.apache.org>; Bruno P.
> > >
> > >>>>>>> Kinoshita <brunodepau...@yahoo.com.br>
> > >
> > >>>>>>> Sent: Tuesday, 6 February 2018 11:06 PM
> > >
> > >>>>>>> Subject: Re: [imaging] IMAGING-154 remove Debug class
> > >
> > >
> > >
> > >
> > >>>>>>> On 6 February 2018 at 09:52, Bruno P. Kinoshita
> > >
> > >>>>>>> <brunodepau...@yahoo.com.br.invalid> wrote:
> > >
> > >>>>>>>> Hi Jorg,
> > >
> > >
> > >>>>>>>> I'd be fine with that solution too. I think this one would cause
> > the
> > >
> > >>>>> smaller change to the code as is.
> > >
> > >
> > >>>>>>>> I believe my preference is still to remove the Debug class. But
> > >
> > >>>>> between logging and making Debug internal only, I'd choose making
> it
> > >
> > >>>>> internal.
> > >
> > >
> > >>>>>>> +1
> > >
> > >
> > >>>>>>> I think making it internal means it can still be dropped later.
> > >
> > >
> > >>>>>>>> Looking forward to hearing what others think about these
> options.
> > >
> > >
> > >
> > >>>>>>> Another aspect of debugging is ensuring that methods are small
> and
> > >
> > >>>>>>> easily tested independently.
> > >
> > >>>>>>> However this is difficult to do, and care must be taken to ensure
> > that
> > >
> > >>>>>>> the public API is not unnecessarily extended..
> > >
> > >
> > >>>>>>>> Thanks
> > >
> > >>>>>>>> Bruno
> > >
> > >
> > >
> > >>>>>>>> ________________________________
> > >
> > >>>>>>>> From: Jörg Schaible <joerg.schai...@bpm-inspire.com>
> > >
> > >>>>>>>> To: dev@commons.apache.org
> > >
> > >>>>>>>> Sent: Tuesday, 6 February 2018 9:24 PM
> > >
> > >>>>>>>> Subject: Re: [imaging] IMAGING-154 remove Debug class
> > >
> > >
> > >
> > >
> > >>>>>>>> Hi Bruno,
> > >
> > >
> > >
> > >>>>>>>> if it might also be helpful to our users, why not keep and
> provide
> > >
> > >>>> it.
> > >
> > >>>>> As
> > >
> > >
> > >>>>>>>> I understand it, the Debug class is a tool helping in
> development
> > to
> > >
> > >
> > >>>>>>>> analyze some behavior.
> > >
> > >
> > >
> > >>>>>>>> Nothing stops us from declaring this class internal (we might
> even
> > >
> > >>>> put
> > >
> > >>>>> it
> > >
> > >
> > >>>>>>>> into a package "internal" or "debug") that might be changed
> > without
> > >
> > >
> > >>>>>>>> further comment. Nobody may rely on it in production code, but
> > during
> > >
> > >
> > >>>>>>>> development it might be helpful. With such an approach we might
> > not
> > >
> > >>>>> have
> > >
> > >
> > >>>>>>>> a need to find a better interface to provide this functionality.
> > >
> > >
> > >
> > >>>>>>>> Just my 2¢,
> > >
> > >
> > >>>>>>>> Jörg
> > >
> > >
> > >
> > >
> > >>>>>>>> Am Mon, 05 Feb 2018 12:20:58 +0000 schrieb Bruno P. Kinoshita:
> > >
> > >
> > >
> > >>>>>>>>> Hello,
> > >
> > >
> > >
> > >
> > >>>>>>>>> If memory serves me well, some time ago we had a discussion
> > around
> > >
> > >
> > >>>>>>>>> sanselan & commons-imaging 1.0. One of the issues with
> > >
> > >>>> commons-imaging
> > >
> > >
> > >>>>>>>>> 1.0 was the Debug class.
> > >
> > >
> > >
> > >
> > >>>>>>>>> https://issues.apache.org/jira/browse/IMAGING-154
> > >
> > >
> > >
> > >
> > >>>>>>>>> I finished the pull request, but Gilles raised an important
> > point,
> > >
> > >>>>> about
> > >
> > >
> > >>>>>>>>> discussing other alternatives first.
> > >
> > >
> > >
> > >
> > >>>>>>>>> Initially I am against logging in low level libraries,
> especially
> > >
> > >
> > >>>>>>>>> commons components. But some time ago I had to debug TIFF
> issues
> > in
> > >
> > >
> > >>>>>>>>> commons-imaging, and having the dump methods was a tremendous
> > help.
> > >
> > >
> > >
> > >
> > >
> > >
> > >>>>>>>>> The issue is that some imaging algorithms/processing have a lot
> > of
> > >
> > >
> > >>>>>>>>> variables that can be altered. And keeping an eye on all of
> them
> > in
> > >
> > >>>>> the
> > >
> > >
> > >>>>>>>>> debugger can be quite hard - though not impossible.
> > >
> > >
> > >
> > >
> > >>>>>>>>> So all in all, now I am more confident to proceed without the
> > Debug
> > >
> > >
> > >>>>>>>>> class. But some users could have a hard time investigating
> > possible
> > >
> > >
> > >>>>>>>>> issues in the library without seeing what's going on within the
> > >
> > >>>>> library.
> > >
> > >
> > >
> > >
> > >>>>>>>>> IMO, that could be solved with the logging/dump features... or
> > >
> > >>>>> through a
> > >
> > >
> > >>>>>>>>> better design, especially around exception handling/throwing.
> The
> > >
> > >>>>> latter
> > >
> > >
> > >>>>>>>>> is my preferred approach. Instead of logging, I prefer -
> whenever
> > >
> > >
> > >>>>>>>>> possible - that low level libraries throw exceptions and let me
> > >
> > >>>> handle
> > >
> > >
> > >>>>>>>>> the logging.
> > >
> > >
> > >
> > >
> > >
> > >
> > >>>>>>>>> So, any thoughts? :) I'm +1 to remove the Debug class, and +0
> to
> > a
> > >
> > >
> > >>>>>>>>> logging added to commons-imaging.
> > >
> > >
> > >
> > >
> > >>>>>>>>> Bruno
> > >
> > >
> > >
> > >>>>>>
> > ---------------------------------------------------------------------
> > >
> > >>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > >
> > >>>>>> For additional commands, e-mail: dev-h...@commons.apache.org
> > >
> > >
> > >
> > >
> > >
> > >
> > >>> --
> > >
> > >>> Matt Sicker <boa...@gmail.com>
> > >
> > >
> > >
> > >> ---------------------------------------------------------------------
> > >
> > >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > >
> > >> For additional commands, e-mail: dev-h...@commons.apache.org
> > >
> > >
> > >> ---------------------------------------------------------------------
> > >
> > >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > >
> > >> For additional commands, e-mail: dev-h...@commons.apache.org
> > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > >
> > > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > >
> > > For additional commands, e-mail: dev-h...@commons.apache.org
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > > For additional commands, e-mail: dev-h...@commons.apache.org
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > For additional commands, e-mail: dev-h...@commons.apache.org
> >
> >
>


-- 
Matt Sicker <boa...@gmail.com>

Reply via email to