Jody,
No problem, it looks great now. As a sanity check, I did the following:
I pulled the head of GeoTools master, verified that it had the
reflection fix, and built GeoTools locally.
Then, I built a branch of GeoMesa which pointed to 14-SNAPSHOT. I
sorted a build error related to an updated interface and noted a failing
test where we were doing something with GML without a proper namespace.
From our unit tests, I noted the following messages:
Logging JAI messages: javax.media.jai logger redirected
Logging JAI messages: Unable to redirect to javax.media.jai
Since we expect to 'work with' JAI at times, the first message is
expected in our modules which have jai_core as a test dependency.
Otherwise, without JAI as a test dependency, the other message was observed.
I think this covers things thoroughly; there may be some more GeoMesa
work to help users know when they are doing something which requires JAI.
Thanks,
Jim
On 04/22/2015 10:40 PM, Jody Garnett wrote:
Cleaned up to be pure reflection based, merged in and a note added to
the docs:
http://docs.geotools.org/latest/userguide/library/metadata/geotools.html
(I would of course love you to test this one, you should be able to
watch it redirect by adding -DLOGGING_TRACE=true on the command line)
--
Jody Garnett
On 21 April 2015 at 12:37, Jody Garnett <[email protected]
<mailto:[email protected]>> wrote:
I would like to revert to the reflection based solution, just so
it stays solved. I know it is not pretty, but since when is
logging code pretty.
--
Jody Garnett
On 21 April 2015 at 11:44, Jim Hughes <[email protected]
<mailto:[email protected]>> wrote:
Hi all,
As a background, I'm trying to use GeoTools while excluding
jai-core as
a dependency. This will likely be the required state of
LocationTech
projects using GeoTools.
I goofed testing Jody's initial solution to the problem after
a final
commit was added which used less reflection. I definitely
appreciate
the goal of relying on reflection as little as possible, but
it may be
one of the easier solutions to this problem.
Anyhow, as I was testing, if a call to jai.setImagingListener
is present
without jai-core on the class path, then any calls into
org.geotools.util.logging.Logging will throw an ClassNotFound for
javax.media.jai.util.ImagingListener.*
As I see it, there are two options:
1. Use reflection. I pushed up a PR which does that here:
https://github.com/geotools/geotools/pull/826.**
2. Construct a second class (say JAILogging) which will have
a static
method to configure JAI. In Logging.java, if Class.forName
succeeds,
delegate to a static method in that makes the actual call to
setImagingListener. I haven't tried this out, but it may work
since the
ClassLoader will never try to look for ImagingListener. Plus
side, less
reflection. Downside, we'd have to be careful about calling
that class
from outside of a 'safe' scope.
Anyhow, I apologize for not testing correctly in the first place.
Thoughts?
Jim
*
https://github.com/geotools/geotools/blob/master/modules/library/metadata/src/main/java/org/geotools/util/logging/Logging.java#L122
NB: I tried adding
Class.forName("javax.media.jai.util.ImagingListener")
and that didn't help.
Original PR: https://github.com/geotools/geotools/pull/731
------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through
live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual-
event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
GeoTools-Devel mailing list
[email protected]
<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/geotools-devel
------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
GeoTools-Devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel