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

Reply via email to