Not sure if you are talking about the patching system, but if yes you would provide a patch file that removes all the contents of file.
If we are just using versions it is indeed a bit more tricky. We would also need to have a way to list the definitions to remove. Regards, Serge... On Tue, Sep 18, 2018 at 11:23 AM Romain Gauthier <rgauth...@jahia.com> wrote: > > Hi Serge, > > In that context, how would we manage objects deletion from a plugin? > > Thanks! > > Romain > > On Tue, Sep 18, 2018 at 10:45 AM Serge Huber <shu...@apache.org> wrote: > > > Sorry, I didn't get around to this discussion but I think that > > versions would probably be cleaner. I was even looking at solutions > > such as JSON patch (https://github.com/java-json-tools/json-patch) to > > be able to perform modifications on parts of definitions instead of > > having to deploy a whole definition again. > > > > We had discussions about adding lots of metadata, including last > > modification dates, maybe even hashes for the definition files, to > > know if a definition has been changed or not. > > > > I think that one of the advantages of the patch idea is that you could > > try to patch something if it's compatible, and if it's not you would > > not deploy it. But this idea would mostly be for use cases where you > > are interested in modifying something that comes out of the box in > > Unomi, not for upgrading a plugin. > > > > With versions at least we could also track if a definition is on the > > "default" version or has been modified somehow. > > > > For the cfg idea it feels weird to use a config file that way, maybe > > we should put the marker file elsewhere but to be honest I don't have > > a better idea :) > > > > Would love some input from JB or other Karaf experts :) > > > > Regards, > > Serge... > > > > On Tue, Sep 18, 2018 at 9:51 AM Thomas Draier <tdra...@jahia.com> wrote: > > > > > > Hi, > > > > > > I have to check, but the idea would be to be able to package this cfg > > file > > > beside the bundle. I'm not familiar with unomi:migrate command, but we > > can > > > imagine that this command would extract and deploy the cfg file from the > > > bundle - which would make the packaging easier (cfg directly inside the > > > plugin). The thing is that we need to be able to remove the file once the > > > definition has been "overridden" so that it's only done once, so the cfg > > > file should not be deployed automatically on each startup. > > > > > > Another idea I had was to store sort of "version" of the definition > > inside > > > the metadata, and check if the json file has a greater "version" defined. > > > That makes things even more easier when developing plugin and looks a > > > little more clean, but I don't know if it would cover correctly all use > > > cases. > > > > > > We should also extends the DeployDefinition shell command to be able to > > > redeploy all definitions of a bundle. > > > > > > Thomas > > > > > > > > > On Tue, Sep 18, 2018 at 1:33 AM Romain Gauthier <rgauth...@jahia.com> > > wrote: > > > > > > > Hello Thomas, > > > > > > > > Nice proposition.How would it work for developers that are building > > > > plugins? Would we have to add our own cfg file or somehow update the > > cfg > > > > file that you want to add? > > > > > > > > Since there is already a "unomi:migrate" command would you reuse that > > > > trigger to update / delete the definitions of the objects? > > > > > > > > Same question regarding the plugins, should we also implement "migrate" > > > > command? > > > > > > > > Thanks, > > > > > > > > Romain > > > > > > > > On Thu, Sep 13, 2018 at 6:22 PM Thomas Draier <tdra...@jahia.com> > > wrote: > > > > > > > > > Hi, > > > > > > > > > > I'm having some issues with the deployment and redeployment of the > > json > > > > > files containing default definitions (segments, properties, etc..). > > Many > > > > > services have these loadPredefined* methods which load data into ES, > > > > based > > > > > on json definition files. These methods only load the content once, > > if > > > > the > > > > > object does not exist yet in ES. So if a bundle comes with an update > > of > > > > one > > > > > of these file, it will just be ignored. > > > > > > > > > > Actually there was one ticket about this : > > > > > https://issues.apache.org/jira/browse/UNOMI-182 , where definitions > > are > > > > > always redeployed when a bundle is in "snapshot" version - but never > > for > > > > a > > > > > release version. So that's nice when you are in development, but not > > > > > possible when upgrading a production environment. > > > > > > > > > > There also a console command to manually deploy a definition - which > > is > > > > > also nice but cannot be automated in a migration. > > > > > > > > > > Of course there's a reason - these objects can be modified > > afterwards by > > > > > using the API, and so restarting should not overwrite the > > modifications > > > > by > > > > > reimporting the file. Even if a module is updated and object is > > modified, > > > > > the user may not want to overwrite his changes. > > > > > > > > > > However in some cases the developer may want to force the update of > > some > > > > > specific objects ( it actually happened to us ). I'm looking for some > > > > > additional solution to force redeployment of a definition. > > > > > > > > > > So far i was thinking of adding a cfg file, which would list the > > > > properties > > > > > to redeploy. This file would be removed once the properties are > > updated, > > > > so > > > > > that they are reloaded only once and not on every startup. > > > > > > > > > > As a bonus, I would also need to be able to remove definitions the > > same > > > > > way. There's no way to do that now except using the REST API , it > > could > > > > be > > > > > good to also have a console command and to be able to remove > > definitions > > > > > with the same cfg file. > > > > > > > > > > What do you think .. ? > > > > > > > > > > Regards, > > > > > > > > > > > > > > > > > -- > > > > Romain Gauthier > > > > Product Manager at Jahia > > > > + 33 6 20 18 35 25 <+33%206%2020%2018%2035%2025> > > > > 8 Rue du sentier | 75002 Paris | France > > > > <https://www.jahia.com/about-us/news-events/events-webinars/jahiadays> > > > > > > > > > -- > Romain Gauthier > Product Manager at Jahia > + 33 6 20 18 35 25 > 8 Rue du sentier | 75002 Paris | France > <https://www.jahia.com/about-us/news-events/events-webinars/jahiadays>