Thanks for responding Martin.

Martin wrote: "Your idea of "a small simple feature library" sounds like exactly
what the idea of defining the JUMP Core API was meant to address.  Does
that sound right?"

I am familar with this. If I remember it correctly there was a
jump-api.jar and a jump-workbench.jar. I believe the two jars have now
been rolled into one in our build process. It wouldn't be hard to set
up a separate little Ant script that could build the API jar. I could
probably do in an hour or less.

However, I'm talking about more than just a Jar file. I'm talking
about actually "marketing" the library. That means packaging it
separately with its own Javadoc and documentation. This wouldn't be
geared to an OpenJUMP programmer, but a programmer that was interested
solely in the library.

Ideally this could exist as a GeoTools module. However, there may be
concerns from the GeoTools community about polluting their current
feature model and/or creating confusion with their current
SimpleFeature code.

Martin wrote: "Is there any possibility of someone rolling up their sleeves and
developing an Adapter API which would map the GeoTools SF model in the
JUMP Feature API?  Once this was done, perhaps it would then be much
easier to call GeoTools code?  I realize this is probably a lot of work,
and it really needs to be done with great care in design, since Adapter
layers can get pretty tricky to code."

I'm going to be completely honest here. I think this job will be a
real chore. (At least it will be a real chore for anyone coming from
the OpenJUMP world.) We are talking about 30 methods and 4 interfaces
for a single feature...That seems to be way overkill to me. I've been
trying to implement an AbstractSimpleFeature class for two days, and
my frustration level has hit a peak. :]

Having said that, there are parts of the GeoTools feature model that I
would like to integrate into OpenJUMP in a non-invasive way. For
example, I really like their PropertyType class and their Filter
class, and the way the two classes work together. One example of
possible integration is using the these two classes in an OpenJUMP
plug-in to provide validation of feature attribute values.

I think there are only three (3) practical ways to move forward on this issue:

[1] Talk GeoTools into creating a more simple "Simple Feature" model
that more closely resembles the one we use in OpenJUMP. They don't
have to completely integrate it into the rest of their library, but
they could have it as an optional module. This Simple Feature model
would need to ditch the additional interfaces and make a clear
distinction between the methods that belong to a SimpleFeature and
those that belong to a FeatureSchema or FeatureType.

[2] Talk GeoTools into having a module that contained the Feature
class and related classes from OpenJUMP. This would allow
collaborative development of this code and related code under the
GeoTools umbrella, in a manner independent of the current
GeoAPI/GeoTools feature model. I would champion this effort if it was
acceptable.

[3] Recognize that this level of cooperation with GeoTools is not
possible. Package and promote a simple feature library based on
existing OpenJUMP source code, and use parts of the GeoTools code when
possible, without breaking OpenJUMP. This would mean competing in some
manner with GeoTools as a provider of a the Java GIS community's
primary simple feature library. I would rather not see this happen.

Of course, I say all of the above admitting that I [1] have a limited
knowledge of the GeoTools code base and [2] am not a professional Java
programmer.

The Sunburned Surveyor

P.S. - I will still contunue my effort at participating in GeoTools
programming, just not on anything that involves the feature model. :]

On Tue, Jun 3, 2008 at 1:31 PM, Martin Davis <[EMAIL PROTECTED]> wrote:
> Excellent question, SS.  I'm not surprised to see this come up.  Greater
> integration with GeoTools has often been suggested as the ultimate goal
> for future JUMP design, but I've always been concerned that GeoTools
> imposes an undesirable level of complexity.  It would be nice to find a
> good path forward between the Scylla of incompatibility and the
> Charybdis of code complexity... (yes, it's Obscure Classical Allusions
> day today...)
>
> A couple of comments:
>
> 1. Your idea of "a small simple feature library" sounds like exactly
> what the idea of defining the JUMP Core API was meant to address.  Does
> that sound right?  (Are you familiar with this idea, or did it not make
> it over to OpenJUMP?)
>
> 2. Is there any possibility of someone rolling up their sleeves and
> developing an Adapter API which would map the GeoTools SF model in the
> JUMP Feature API?  Once this was done, perhaps it would then be much
> easier to call GeoTools code?  I realize this is probably a lot of work,
> and it really needs to be done with great care in design, since Adapter
> layers can get pretty tricky to code.
>
> I'll cc this to Jody, since he's probably best placed to comment on this
> from the GT perspective.
>
> Sunburned Surveyor wrote:
>> I want to ask a question about a "strategic" move for OpenJUMP. I
>> thought it best to ask here, before I mention the subject on the
>> java-collaboration mailing list that was just set up at the OSGeo.
>>
>> Let me give you some background info, and then I will aske my question.
>>
>> A couple of weeks ago I decided that I would try to participate in
>> some programming at GeoTools. My goals with this endeavor were to [1]
>> become more acquainted with the GeoTools programming process and [2]
>> determine what type of collaboration would be possible.
>>
>> I decided to do some work on adding support for GPX files in GeoTools.
>> There was some existing code, but I wanted to allow low-level access
>> to GPX files and also provide simple feature objects from GPX files.
>>
>> I was cruising along fine until it came time to implement to the
>> SimpleFeature interface in GeoTools. This interface is actually from
>> the GeoAPI project but is used by GeoTools.
>>
>> The SimpleFeature interface extends four (4) other GeoAPI interfaces
>> and a total of 30 different methods. In contrast, the JUMP Feature
>> interface defines only 17 methods and extends no other classes or
>> interfaces.
>>
>> After digging into the GeoTools SimpleFeature code for a while, I have
>> realized that they don't really have a "pure" simple feature
>> implementation. Instead they've tried to force fit their complex
>> feature model into a simple feature interface. This is very akward for
>> me. For example, the implementer of SimpleFeature must implement
>> several methods that really seem to belong to SimpleFeatureType, which
>> is similar to JUMP's FeatureSchema.
>>
>> Here is my question:
>>
>> Is it worth trying to address the complexity in the GeoTools
>> SimpleFeature interface and related code, or should I focus my energy
>> on extracting and maintaining a very lightweight library with the
>> simple feature code from JUMP? (This would be a small JAR containing
>> the Feature interface, FeatuerSchema, interface, AbstractFeature class
>> and maybe a couple of other related classes.)
>>
>> This may seem like an unimportant question, but I think it is more
>> important over the long term. Let me briefly explain why:
>>
>> GeoTools has been set up as the "flagship" of open source Java GIS
>> collaboration. I believe it will be the project most people go to when
>> looking for a simple feature implementation to use in their own
>> projects. This isn't a bad thing if GeoTools is willing to address
>> issues of complexity or is willing to include a module with a "pure"
>> simple feature implementation that would be more compatible with
>> OpenJUMP. This would allow us to become a participant in GeoTools
>> development and tap into the outside interest for a simple feature
>> implementation.
>>
>> If this is not possible, I really think it would be prudent of us to
>> maintain a small library that could be used by other parties outside
>> of OpenJUMP for projects that require a simple feature implementation.
>> This would be set up as an alternative to the simple feature
>> implementation in GeoTools. This would be of interest to organizations
>> that need simple features, but that don't need all of OpenJUMP and
>> don't want to deal with the complexity of GeoTools. We could then tap
>> into improvements or utilities that they contribute to JUMP's simple
>> feature model.
>>
>> Do you guys have any thoughts on this? I was really hoping the
>> SimpleFeature code in GeoTools would be workable, but I'm on my third
>> or fourth day of trying to create an abstract class that implements
>> SimpleFeature and its related interfaces. I'f like to hear what
>> programmers from our OpenJUMP community have to say about this before
>> I mention it in a larger, more public, discussion.
>>
>> The Sunburned Surveyor
>>
>> P.S. - I know that I can be an annoying distraction to this community
>> and others, but I will note that at least two (2) of the messages that
>> I sent to the GeoAPI mailing list with questions about the
>> SimpleFeature interface and related code remain unanswered. Jody has
>> been great about explaining things from the GeoTools side, but I
>> wonder if the GeoAPI folks are that interested in explaining design
>> logic and working with our community...
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by: Microsoft
>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>> _______________________________________________
>> Jump-pilot-devel mailing list
>> Jump-pilot-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>
>>
>
> --
> Martin Davis
> Senior Technical Architect
> Refractions Research, Inc.
> (250) 383-3022
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Jump-pilot-devel mailing list
> Jump-pilot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to