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

Reply via email to