You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by Sergiy Shyrkov <my...@gmail.com> on 2016/09/15 11:34:07 UTC

Karaf Cellar - updating a bundle in cluster

Hello guys,

I would like to ask you about the recommended way of implementing a  
"bundle update" in cluster with Karaf Cellar.
Basically, Cellar has no notion of an "update" for existing bundle. As we  
are working also with SNAPSHOTs of bundles we are missing the possibility  
to "update" a bundle in cluster.

What would be possible solutions for this?
We were looking at adjusting org.apache.karaf.cellar.bundle.BundleState to  
introduce lastUpdated timestamp there and in the BundleSynchronizer check  
it and perform bundle.update() for those bundles, where "cluster"  
lastUpdated is after the local one.

Thank you in advance!

Kind regards
Sergiy

-- 
Sergiy Shyrkov
Software Architect
Jahia Solutions Group SA
http://www.jahia.com

Re: Karaf Cellar - updating a bundle in cluster

Posted by Sergiy Shyrkov <my...@gmail.com>.
Thank you very much JB!
Will it be available after push here:  
https://github.com/apache/karaf-cellar ?
Or it will be other location?

Kind regards
Sergiy

On Thu, 15 Sep 2016 15:24:44 +0200, Jean-Baptiste Onofré <jb...@nanthrax.net>  
wrote:

> I will rebase & push.
>
> Regards
> JB
>
> On 09/15/2016 02:11 PM, Sergiy Shyrkov wrote:
>> Hello,
>>
>>> I have bundle-update on a local branch (I did feature update too).
>> :-) Is there any chance I can get those changes (even as a diff file for
>> now)?
>>
>> Kind regards
>> Sergiy
>>
>> On Thu, 15 Sep 2016 14:07:10 +0200, Jean-Baptiste Onofré
>> <jb...@nanthrax.net> wrote:
>>
>>> Hi,
>>>
>>> I have bundle-update on a local branch (I did feature update too).
>>>
>>> And good idea for modified (to be tested).
>>>
>>> Regards
>>> JB
>>>
>>> On 09/15/2016 02:00 PM, Sergiy Shyrkov wrote:
>>>> Hello JB,
>>>>
>>>> thank you for the prompt reply!
>>>>> you can perform cluster:bundle-update / cluster:bundle-install, the
>>>>> event will trigger an update on the nodes.
>>>> You mean cluster:bundle-uninstall and then bundle-install here
>>>> (bundle-update does not exist)?
>>>>
>>>>> The synchronizer (during pull) can do: if the bundle is on the
>>>>> cluster, and the cluster is also present locally on the node, then we
>>>>> trigger bundle update (systematically).
>>>> Yes, sounds good. In order to avoid synchronizer from triggering
>>>> unneeded updates, we could perhaps additional check that:
>>>>
>>>> new URL(state.getLocation()).openConnection().getLastModified() >
>>>> localBundle.getLastModified()
>>>>
>>>> What do you think?
>>>>
>>>> Kind regards
>>>> Sergiy
>>>>
>>>> On Thu, 15 Sep 2016 13:40:12 +0200, Jean-Baptiste Onofré
>>>> <jb...@nanthrax.net> wrote:
>>>>
>>>>> Hi Sergiy,
>>>>>
>>>>> It depends at which level.
>>>>>
>>>>> When the cluster is "live", you can perform cluster:bundle-update /
>>>>> cluster:bundle-install, the event will trigger an update on the  
>>>>> nodes.
>>>>>
>>>>> The question is more when a node joins the cluster (and so the
>>>>> Synchronizer is called). IMHO, it's not a good idea to introduce a
>>>>> timestamp. The synchronizer (during pull) can do: if the bundle is on
>>>>> the cluster, and the cluster is also present locally on the node,  
>>>>> then
>>>>> we trigger bundle update (systematically).
>>>>>
>>>>> Regards
>>>>> JB
>>>>>
>>>>> On 09/15/2016 01:34 PM, Sergiy Shyrkov wrote:
>>>>>> Hello guys,
>>>>>>
>>>>>> I would like to ask you about the recommended way of implementing a
>>>>>> "bundle update" in cluster with Karaf Cellar.
>>>>>> Basically, Cellar has no notion of an "update" for existing bundle.  
>>>>>> As
>>>>>> we are working also with SNAPSHOTs of bundles we are missing the
>>>>>> possibility to "update" a bundle in cluster.
>>>>>>
>>>>>> What would be possible solutions for this?
>>>>>> We were looking at adjusting
>>>>>> org.apache.karaf.cellar.bundle.BundleState
>>>>>> to introduce lastUpdated timestamp there and in the  
>>>>>> BundleSynchronizer
>>>>>> check it and perform bundle.update() for those bundles, where
>>>>>> "cluster"
>>>>>> lastUpdated is after the local one.
>>>>>>
>>>>>> Thank you in advance!
>>>>>>
>>>>>> Kind regards
>>>>>> Sergiy
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
>


-- 
Sergiy Shyrkov
Software Architect
Jahia Solutions Group SA
http://www.jahia.com

Re: Karaf Cellar - updating a bundle in cluster

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
I will rebase & push.

Regards
JB

On 09/15/2016 02:11 PM, Sergiy Shyrkov wrote:
> Hello,
>
>> I have bundle-update on a local branch (I did feature update too).
> :-) Is there any chance I can get those changes (even as a diff file for
> now)?
>
> Kind regards
> Sergiy
>
> On Thu, 15 Sep 2016 14:07:10 +0200, Jean-Baptiste Onofr
> <jb...@nanthrax.net> wrote:
>
>> Hi,
>>
>> I have bundle-update on a local branch (I did feature update too).
>>
>> And good idea for modified (to be tested).
>>
>> Regards
>> JB
>>
>> On 09/15/2016 02:00 PM, Sergiy Shyrkov wrote:
>>> Hello JB,
>>>
>>> thank you for the prompt reply!
>>>> you can perform cluster:bundle-update / cluster:bundle-install, the
>>>> event will trigger an update on the nodes.
>>> You mean cluster:bundle-uninstall and then bundle-install here
>>> (bundle-update does not exist)?
>>>
>>>> The synchronizer (during pull) can do: if the bundle is on the
>>>> cluster, and the cluster is also present locally on the node, then we
>>>> trigger bundle update (systematically).
>>> Yes, sounds good. In order to avoid synchronizer from triggering
>>> unneeded updates, we could perhaps additional check that:
>>>
>>> new URL(state.getLocation()).openConnection().getLastModified() >
>>> localBundle.getLastModified()
>>>
>>> What do you think?
>>>
>>> Kind regards
>>> Sergiy
>>>
>>> On Thu, 15 Sep 2016 13:40:12 +0200, Jean-Baptiste Onofr
>>> <jb...@nanthrax.net> wrote:
>>>
>>>> Hi Sergiy,
>>>>
>>>> It depends at which level.
>>>>
>>>> When the cluster is "live", you can perform cluster:bundle-update /
>>>> cluster:bundle-install, the event will trigger an update on the nodes.
>>>>
>>>> The question is more when a node joins the cluster (and so the
>>>> Synchronizer is called). IMHO, it's not a good idea to introduce a
>>>> timestamp. The synchronizer (during pull) can do: if the bundle is on
>>>> the cluster, and the cluster is also present locally on the node, then
>>>> we trigger bundle update (systematically).
>>>>
>>>> Regards
>>>> JB
>>>>
>>>> On 09/15/2016 01:34 PM, Sergiy Shyrkov wrote:
>>>>> Hello guys,
>>>>>
>>>>> I would like to ask you about the recommended way of implementing a
>>>>> "bundle update" in cluster with Karaf Cellar.
>>>>> Basically, Cellar has no notion of an "update" for existing bundle. As
>>>>> we are working also with SNAPSHOTs of bundles we are missing the
>>>>> possibility to "update" a bundle in cluster.
>>>>>
>>>>> What would be possible solutions for this?
>>>>> We were looking at adjusting
>>>>> org.apache.karaf.cellar.bundle.BundleState
>>>>> to introduce lastUpdated timestamp there and in the BundleSynchronizer
>>>>> check it and perform bundle.update() for those bundles, where
>>>>> "cluster"
>>>>> lastUpdated is after the local one.
>>>>>
>>>>> Thank you in advance!
>>>>>
>>>>> Kind regards
>>>>> Sergiy
>>>>>
>>>>
>>>
>>>
>>
>
>

-- 
Jean-Baptiste Onofr
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

Re: Karaf Cellar - updating a bundle in cluster

Posted by Sergiy Shyrkov <my...@gmail.com>.
Hello,

> I have bundle-update on a local branch (I did feature update too).
:-) Is there any chance I can get those changes (even as a diff file for  
now)?

Kind regards
Sergiy

On Thu, 15 Sep 2016 14:07:10 +0200, Jean-Baptiste Onofré <jb...@nanthrax.net>  
wrote:

> Hi,
>
> I have bundle-update on a local branch (I did feature update too).
>
> And good idea for modified (to be tested).
>
> Regards
> JB
>
> On 09/15/2016 02:00 PM, Sergiy Shyrkov wrote:
>> Hello JB,
>>
>> thank you for the prompt reply!
>>> you can perform cluster:bundle-update / cluster:bundle-install, the
>>> event will trigger an update on the nodes.
>> You mean cluster:bundle-uninstall and then bundle-install here
>> (bundle-update does not exist)?
>>
>>> The synchronizer (during pull) can do: if the bundle is on the
>>> cluster, and the cluster is also present locally on the node, then we
>>> trigger bundle update (systematically).
>> Yes, sounds good. In order to avoid synchronizer from triggering
>> unneeded updates, we could perhaps additional check that:
>>
>> new URL(state.getLocation()).openConnection().getLastModified() >
>> localBundle.getLastModified()
>>
>> What do you think?
>>
>> Kind regards
>> Sergiy
>>
>> On Thu, 15 Sep 2016 13:40:12 +0200, Jean-Baptiste Onofré
>> <jb...@nanthrax.net> wrote:
>>
>>> Hi Sergiy,
>>>
>>> It depends at which level.
>>>
>>> When the cluster is "live", you can perform cluster:bundle-update /
>>> cluster:bundle-install, the event will trigger an update on the nodes.
>>>
>>> The question is more when a node joins the cluster (and so the
>>> Synchronizer is called). IMHO, it's not a good idea to introduce a
>>> timestamp. The synchronizer (during pull) can do: if the bundle is on
>>> the cluster, and the cluster is also present locally on the node, then
>>> we trigger bundle update (systematically).
>>>
>>> Regards
>>> JB
>>>
>>> On 09/15/2016 01:34 PM, Sergiy Shyrkov wrote:
>>>> Hello guys,
>>>>
>>>> I would like to ask you about the recommended way of implementing a
>>>> "bundle update" in cluster with Karaf Cellar.
>>>> Basically, Cellar has no notion of an "update" for existing bundle. As
>>>> we are working also with SNAPSHOTs of bundles we are missing the
>>>> possibility to "update" a bundle in cluster.
>>>>
>>>> What would be possible solutions for this?
>>>> We were looking at adjusting  
>>>> org.apache.karaf.cellar.bundle.BundleState
>>>> to introduce lastUpdated timestamp there and in the BundleSynchronizer
>>>> check it and perform bundle.update() for those bundles, where  
>>>> "cluster"
>>>> lastUpdated is after the local one.
>>>>
>>>> Thank you in advance!
>>>>
>>>> Kind regards
>>>> Sergiy
>>>>
>>>
>>
>>
>


-- 
Sergiy Shyrkov
Software Architect
Jahia Solutions Group SA
http://www.jahia.com

Re: Karaf Cellar - updating a bundle in cluster

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Hi,

I have bundle-update on a local branch (I did feature update too).

And good idea for modified (to be tested).

Regards
JB

On 09/15/2016 02:00 PM, Sergiy Shyrkov wrote:
> Hello JB,
>
> thank you for the prompt reply!
>> you can perform cluster:bundle-update / cluster:bundle-install, the
>> event will trigger an update on the nodes.
> You mean cluster:bundle-uninstall and then bundle-install here
> (bundle-update does not exist)?
>
>> The synchronizer (during pull) can do: if the bundle is on the
>> cluster, and the cluster is also present locally on the node, then we
>> trigger bundle update (systematically).
> Yes, sounds good. In order to avoid synchronizer from triggering
> unneeded updates, we could perhaps additional check that:
>
> new URL(state.getLocation()).openConnection().getLastModified() >
> localBundle.getLastModified()
>
> What do you think?
>
> Kind regards
> Sergiy
>
> On Thu, 15 Sep 2016 13:40:12 +0200, Jean-Baptiste Onofr
> <jb...@nanthrax.net> wrote:
>
>> Hi Sergiy,
>>
>> It depends at which level.
>>
>> When the cluster is "live", you can perform cluster:bundle-update /
>> cluster:bundle-install, the event will trigger an update on the nodes.
>>
>> The question is more when a node joins the cluster (and so the
>> Synchronizer is called). IMHO, it's not a good idea to introduce a
>> timestamp. The synchronizer (during pull) can do: if the bundle is on
>> the cluster, and the cluster is also present locally on the node, then
>> we trigger bundle update (systematically).
>>
>> Regards
>> JB
>>
>> On 09/15/2016 01:34 PM, Sergiy Shyrkov wrote:
>>> Hello guys,
>>>
>>> I would like to ask you about the recommended way of implementing a
>>> "bundle update" in cluster with Karaf Cellar.
>>> Basically, Cellar has no notion of an "update" for existing bundle. As
>>> we are working also with SNAPSHOTs of bundles we are missing the
>>> possibility to "update" a bundle in cluster.
>>>
>>> What would be possible solutions for this?
>>> We were looking at adjusting org.apache.karaf.cellar.bundle.BundleState
>>> to introduce lastUpdated timestamp there and in the BundleSynchronizer
>>> check it and perform bundle.update() for those bundles, where "cluster"
>>> lastUpdated is after the local one.
>>>
>>> Thank you in advance!
>>>
>>> Kind regards
>>> Sergiy
>>>
>>
>
>

-- 
Jean-Baptiste Onofr
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

Re: Karaf Cellar - updating a bundle in cluster

Posted by Sergiy Shyrkov <my...@gmail.com>.
Hello JB,

thank you for the prompt reply!
> you can perform cluster:bundle-update / cluster:bundle-install, the  
> event will trigger an update on the nodes.
You mean cluster:bundle-uninstall and then bundle-install here  
(bundle-update does not exist)?

> The synchronizer (during pull) can do: if the bundle is on the cluster,  
> and the cluster is also present locally on the node, then we trigger  
> bundle update (systematically).
Yes, sounds good. In order to avoid synchronizer from triggering unneeded  
updates, we could perhaps additional check that:

new URL(state.getLocation()).openConnection().getLastModified() >  
localBundle.getLastModified()

What do you think?

Kind regards
Sergiy

On Thu, 15 Sep 2016 13:40:12 +0200, Jean-Baptiste Onofré <jb...@nanthrax.net>  
wrote:

> Hi Sergiy,
>
> It depends at which level.
>
> When the cluster is "live", you can perform cluster:bundle-update /  
> cluster:bundle-install, the event will trigger an update on the nodes.
>
> The question is more when a node joins the cluster (and so the  
> Synchronizer is called). IMHO, it's not a good idea to introduce a  
> timestamp. The synchronizer (during pull) can do: if the bundle is on  
> the cluster, and the cluster is also present locally on the node, then  
> we trigger bundle update (systematically).
>
> Regards
> JB
>
> On 09/15/2016 01:34 PM, Sergiy Shyrkov wrote:
>> Hello guys,
>>
>> I would like to ask you about the recommended way of implementing a
>> "bundle update" in cluster with Karaf Cellar.
>> Basically, Cellar has no notion of an "update" for existing bundle. As
>> we are working also with SNAPSHOTs of bundles we are missing the
>> possibility to "update" a bundle in cluster.
>>
>> What would be possible solutions for this?
>> We were looking at adjusting org.apache.karaf.cellar.bundle.BundleState
>> to introduce lastUpdated timestamp there and in the BundleSynchronizer
>> check it and perform bundle.update() for those bundles, where "cluster"
>> lastUpdated is after the local one.
>>
>> Thank you in advance!
>>
>> Kind regards
>> Sergiy
>>
>


-- 
Sergiy Shyrkov
Software Architect
Jahia Solutions Group SA
http://www.jahia.com

Re: Karaf Cellar - updating a bundle in cluster

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Hi Sergiy,

It depends at which level.

When the cluster is "live", you can perform cluster:bundle-update / 
cluster:bundle-install, the event will trigger an update on the nodes.

The question is more when a node joins the cluster (and so the 
Synchronizer is called). IMHO, it's not a good idea to introduce a 
timestamp. The synchronizer (during pull) can do: if the bundle is on 
the cluster, and the cluster is also present locally on the node, then 
we trigger bundle update (systematically).

Regards
JB

On 09/15/2016 01:34 PM, Sergiy Shyrkov wrote:
> Hello guys,
>
> I would like to ask you about the recommended way of implementing a
> "bundle update" in cluster with Karaf Cellar.
> Basically, Cellar has no notion of an "update" for existing bundle. As
> we are working also with SNAPSHOTs of bundles we are missing the
> possibility to "update" a bundle in cluster.
>
> What would be possible solutions for this?
> We were looking at adjusting org.apache.karaf.cellar.bundle.BundleState
> to introduce lastUpdated timestamp there and in the BundleSynchronizer
> check it and perform bundle.update() for those bundles, where "cluster"
> lastUpdated is after the local one.
>
> Thank you in advance!
>
> Kind regards
> Sergiy
>

-- 
Jean-Baptiste Onofr
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com