Hey Andrea, thanks for the Strategy suggestion - that actually sounds simpler to me so I'll give that a shot. Of course, I still will need sjudeng's approval on the PR.
Cheers, Travis On Sat, Jun 27, 2020 at 1:56 AM Andrea Aime <andrea.a...@geo-solutions.it> wrote: > I'm reading this thread and scratching my head... an entirely different > store to change the behavior regarding dates? > Can't it be a store parameter leading to the creation of a strategy > object, instantiated from two different classes depending on the > desired behavior, and used by a single datastore implementation? > > Also please remember that while Elasticgeo is a community module, last I > checked it had a maintainer (cc'ed) so > first of all we should check with him (unless I "missed a memo" and the > store is indeed drifting alone with no one to care for it anymore) > > Cheers > Andrea > > > On Fri, Jun 26, 2020 at 8:49 PM 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 >> > > > -- > > Regards, Andrea Aime > > == GeoServer Professional Services from the experts! Visit > http://goo.gl/it488V for more information. == Ing. Andrea Aime @geowolf > Technical Lead GeoSolutions S.A.S. Via di Montramito 3/A 55054 Massarosa > (LU) phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339 8844549 > http://www.geo-solutions.it http://twitter.com/geosolutions_it > ------------------------------------------------------- *Con riferimento > alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - > Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni > circostanza inerente alla presente email (il suo contenuto, gli eventuali > allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i > destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per > errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le > sarei comunque grato se potesse darmene notizia. This email is intended > only for the person or entity to which it is addressed and may contain > information that is privileged, confidential or otherwise protected from > disclosure. We remind that - as provided by European Regulation 2016/679 > “GDPR” - copying, dissemination or use of this e-mail or the information > herein by anyone other than the intended recipient is prohibited. If you > have received this email by mistake, please notify us immediately by > telephone or e-mail.* >
_______________________________________________ GeoTools-Devel mailing list GeoTools-Devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-devel