Hi Jody, Thanks for the extra explanation and information, that helps a lot. I think that's a good path forward, I'll run with that and update the PR so users can select an implementation.
Cheers, Travis On Fri, Jun 26, 2020 at 11:47 AM Jody Garnett <jody.garn...@gmail.com> wrote: > Travis: > > You are in charge and this is a community module. > > You can have more than one datastore implementation in a single jar (the > shapefile shipped with distinct "indexed" datastore for a while). Why not > make a new optional parameter to select which implementation is used, and > then you can remove it when you are happy with the new implementation. > > For wfs and wfs-ng applications changed their dependency, the new jar > responded to the same connection parameters as the old one. > -- > Jody Garnett > > > On Fri, 26 Jun 2020 at 09:45, Travis Brundage <travislbrund...@gmail.com> > wrote: > >> Hi all, >> >> Jumping back into this issue, I was hoping to confirm my understanding of >> the suggestion. >> >> Is the idea to create a separate new DataStore for my changes, and then a >> separate new DataStoreFactory which can create the new DataStore using >> params from the old one? Would this require a whole separate module in the >> way gt-wfs-ng was? >> >> I can sort of imagine how those would look, but what's missing for me is >> how to actually use them. Unfortunately, I couldn't find much in the way of >> how to upgrade gt-wfs to gt-wfs-ng. >> >> Essentially, I am not sure what a migration looks like or how a user >> would activate it. Is it something a user does manually, or happens >> automatically in GeoServer somehow? >> >> Cheers, >> Travis >> >> On Fri, May 29, 2020 at 8:56 PM Jody Garnett <jody.garn...@gmail.com> >> wrote: >> >>> I think you can also be a little relaxed as this is a community module; >>> if folks wanted stability they would be helping you. >>> -- >>> Jody Garnett >>> >>> >>> On Fri, 29 May 2020 at 17:14, Travis Brundage <travislbrund...@gmail.com> >>> wrote: >>> >>>> Hey Jody, thanks for the tip! I'll check out that gt-wfsng and gt-wfs >>>> and update my PR with a proper migration strategy with a datastore factory >>>> like you suggest. >>>> >>>> Cheers, >>>> Travis >>>> >>>> On Fri, May 29, 2020 at 4:11 PM Jody Garnett <jody.garn...@gmail.com> >>>> wrote: >>>> >>>>> We have done this before, you can set up an additional datastore >>>>> factory that reads the old parameter values and creates he new datastore >>>>> instance to give folks a chance to migrate smoothly. This is how we made >>>>> the change from things like gt-wfs to gt-wfsng >>>>> -- >>>>> Jody Garnett >>>>> >>>>> >>>>> On Tue, 26 May 2020 at 17:51, Travis Brundage < >>>>> travislbrund...@gmail.com> wrote: >>>>> >>>>>> Greetings all, >>>>>> >>>>>> I've pushed some changes to my local branch which allow this to work >>>>>> with any newly created data stores, but the problem is I've changed the >>>>>> internal DataStore itself, which means old data stores won't function >>>>>> properly. Are there any guidelines for migration strategies when making >>>>>> changes to a DataStore? i.e. How can old versions migrate existing data >>>>>> stores without needing to recreate them? >>>>>> >>>>>> Specifically, I've changed the attribute's date format from a String >>>>>> to a List of valid date formats: >>>>>> https://github.com/travisb-fe/geotools/commit/c1e02e0992413453186ab1a649e99791eb6c27d9#diff-c85157669720c9cf0ac769fd6c8b09a1R56 >>>>>> >>>>>> Cheers, >>>>>> Travis >>>>>> >>>>>> On Wed, May 20, 2020 at 10:09 AM Travis Brundage < >>>>>> travislbrund...@gmail.com> wrote: >>>>>> >>>>>>> Hey Jody, >>>>>>> >>>>>>> Thanks for the suggestion here - I think you're right, and it turns >>>>>>> out the plugin is already using this, but it just isn't splitting on >>>>>>> multiple date formats (it's just ingesting it all as a string). So, I >>>>>>> think >>>>>>> that will work - I will just split the incoming string on the logical >>>>>>> or, >>>>>>> and add valid date formats to this property descriptor's user mapping >>>>>>> (as >>>>>>> it already was doing), but now with multiple valid date formats instead >>>>>>> of >>>>>>> just the one. So, same idea, but using the architecture already >>>>>>> available, >>>>>>> sounds great. :) >>>>>>> >>>>>>> Cheers, >>>>>>> Travis >>>>>>> >>>>>>> On Fri, May 8, 2020 at 5:20 PM Jody Garnett <jody.garn...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Thanks for keeping communication up on this Travis, I do not have >>>>>>>> any reason to use Elasticgeo at present but I recognize the effort you >>>>>>>> are >>>>>>>> putting in and thank you. >>>>>>>> >>>>>>>> A quick question - doe each column have a specific date format in >>>>>>>> mind? You could always use the attribute descriptor user map to store >>>>>>>> the >>>>>>>> date format to use. The design recognizes that the "basic" information >>>>>>>> stored in attribute descriptor and attribute type (name/descritor/java >>>>>>>> binding/etc...) may not be enough to get the job done and provides a >>>>>>>> user >>>>>>>> map for you as the developer to track your own extra information such >>>>>>>> as >>>>>>>> this. >>>>>>>> >>>>>>>> If enough datastore's run into the same need that is when we start >>>>>>>> pulling out additional methods to address a common need. >>>>>>>> >>>>>>>> Reference: >>>>>>>> - >>>>>>>> https://docs.geotools.org/latest/javadocs/org/opengis/feature/type/PropertyDescriptor.html#getUserData-- >>>>>>>> -- >>>>>>>> Jody Garnett >>>>>>>> >>>>>>>> >>>>>>>> On Fri, 8 May 2020 at 17:02, Travis Brundage < >>>>>>>> travislbrund...@gmail.com> wrote: >>>>>>>> >>>>>>>>> Greetings, >>>>>>>>> >>>>>>>>> I wanted to discuss here some proposed changes to the elasticgeo >>>>>>>>> plugin related to handling multiple valid date formats, as reported in >>>>>>>>> [GEOT-6577] <https://osgeo-org.atlassian.net/browse/GEOT-6577>. >>>>>>>>> >>>>>>>>> As I've mentioned in the ticket, the core reason this issue is >>>>>>>>> happening is that the DataStore expects there to be just one valid >>>>>>>>> date >>>>>>>>> format, and that is what it will use for the attribute. Elasticsearch >>>>>>>>> is >>>>>>>>> not as strict, and permits mappings of multiple valid date formats >>>>>>>>> for an >>>>>>>>> index, meaning we can get data with different date formats for the >>>>>>>>> same >>>>>>>>> attribute. >>>>>>>>> >>>>>>>>> To allow this functionality, I plan to change the dateFormat to a >>>>>>>>> List of String objects, and rename it to validDateFormats. When >>>>>>>>> reading the >>>>>>>>> feature, just iterate through the List looking for a date format which >>>>>>>>> matches the data value. When the data store is parsing the date >>>>>>>>> format from >>>>>>>>> elastic, the List will be assigned to the format received, split on >>>>>>>>> each ||. >>>>>>>>> >>>>>>>>> I welcome input on the design here, if there's a more reasonable >>>>>>>>> way to accomplish this. >>>>>>>>> >>>>>>>>> Cheers, >>>>>>>>> Travis >>>>>>>>> _______________________________________________ >>>>>>>>> GeoTools-Devel mailing list >>>>>>>>> GeoTools-Devel@lists.sourceforge.net >>>>>>>>> https://lists.sourceforge.net/lists/listinfo/geotools-devel >>>>>>>>> >>>>>>>>
_______________________________________________ GeoTools-Devel mailing list GeoTools-Devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-devel