You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by jweathers777 <jo...@gmail.com> on 2009/11/12 23:41:07 UTC

Ordering of Hotdeploy For Shared Libraries and Service Assemblies

I've noticed that when starting up a fresh 'data' folderless ServiceMix that
when the auto-deploment service encounters a ServiceMix component that
depends upon the ServiceMix shared-library, it suspends deployment until
after the shared library gets loaded.

I would like to duplicate this behavior with some service assemblies that
all depend upon a shared library. I would like to be able to simply copy the
packaged service assemblies and the packaged shared library all at once into
the hotdeploy and have the service assemblies deployment suspended until the
shared library can be loaded.

Is this possible? I couldn't find any documentation about it. I cracked open
the installers for the components and found that in a component's jbi.xml
there is a <shared-library> element inside the <component> element that
references the servicemix-shared library. Is it possible to have the jbi.xml
that gets generated by the maven build process have a similar
<shared-library> element inside the <service-assembly> or <service-unit>
elements so that deployment is suspended until my shared library is
deployed?
-- 
View this message in context: http://old.nabble.com/Ordering-of-Hotdeploy-For-Shared-Libraries-and-Service-Assemblies-tp26327864p26327864.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Ordering of Hotdeploy For Shared Libraries and Service Assemblies

Posted by Guillaume Nodet <gn...@gmail.com>.
We already have custom extensions to JBI.  Furthermore, if you want to
deploy the JBI artifacts in a JBI compliant way, you'd use JMX (which
does not wait the way we talked about iirc) and not the hot deploy
folder.
Last, it's just a hint to the deployed that it should wait a bit, and
this extension would clearly be indicated by a servicemix custom
namespace in the JBI descriptor, so i'd think we're quite safe here.

2009/11/13 Maciej Próchniak <mp...@touk.pl>:
> Hello,
>
> Wouldn't such feature break JBI compatibility - in the spec it is said that
> only
> components can define dependencies on shared libraries - not sure why,
> maybe
> because of classloading issues? The same is with classloader delegation -
> can
> only be specified in component/shared library :/
>
> For sure it would be v. useful feature, but I was always thinking that
> JBI deployment would be JBI compliant, while OSGI deployment is the
> easy to use one ;)
>
> br,
> maciek
>
> On Fri, 13 Nov 2009 08:39:13 +0100, Jean-Baptiste Onofré <jb...@nanthrax.net>
> wrote:
>> Ah yes,
>>
>> ok understood.
>>
>> Yes, it makes sense, we can raise a Jira task around this.
>>
>> Regards
>> JB
>>
>> Guillaume Nodet wrote:
>>> I think what John is referring to is the fact that when a bunch of JBI
>>> artifacts have been deployed (in both smx3 and smx4), the JBI deployer
>>> actually wait for the dependencies of the JBI artifacts to be
>>> available: i.e. if you hot deploy a SA when the component is not
>>> installed yet, you should have a log message and the SA will actually
>>> be deployed when the component is installed at a later time.  Same for
>>> components / shared libraries.
>>>
>>> As for dependencies between SA / SL, it might be doable through
>>> extending the JBI descriptor as John indicates.  This would also need
>>> to enhance the JBI maven plugin to generate such information if
>>> available.
>>>
>>> On Fri, Nov 13, 2009 at 08:30, Jean-Baptiste Onofré <jb...@nanthrax.net>
>>> wrote:
>>>> Hi,
>>>>
>>>> By default the deployer takes the file ordered by timestamp.
>>>> So if you are on Unix, you can use:
>>>>
>>>> touch myfile.zip
>>>>
>>>> to force a file redeployment.
>>>>
>>>> Currently, there is no alternative to this deployer. We can add a
>>>> PrefixDeploymentScanner that can use prefix to define the deployment
>>>> order
>>>> (01-myfile.zip, 02-myfile2.zip, etc).
>>>>
>>>> Regards
>>>> JB
>>>>
>>>> jweathers777 wrote:
>>>>> I've noticed that when starting up a fresh 'data' folderless
> ServiceMix
>>>>> that
>>>>> when the auto-deploment service encounters a ServiceMix component that
>>>>> depends upon the ServiceMix shared-library, it suspends deployment
>>>>> until
>>>>> after the shared library gets loaded.
>>>>>
>>>>> I would like to duplicate this behavior with some service assemblies
>>>>> that
>>>>> all depend upon a shared library. I would like to be able to simply
>>>>> copy
>>>>> the
>>>>> packaged service assemblies and the packaged shared library all at
> once
>>>>> into
>>>>> the hotdeploy and have the service assemblies deployment suspended
>>>>> until
>>>>> the
>>>>> shared library can be loaded.
>>>>>
>>>>> Is this possible? I couldn't find any documentation about it. I
> cracked
>>>>> open
>>>>> the installers for the components and found that in a component's
>>>>> jbi.xml
>>>>> there is a <shared-library> element inside the <component> element
> that
>>>>> references the servicemix-shared library. Is it possible to have the
>>>>> jbi.xml
>>>>> that gets generated by the maven build process have a similar
>>>>> <shared-library> element inside the <service-assembly> or
>>>>> <service-unit>
>>>>> elements so that deployment is suspended until my shared library is
>>>>> deployed?
>>>
>>>
>>>
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com

Re: Ordering of Hotdeploy For Shared Libraries and Service Assemblies

Posted by Maciej Próchniak <mp...@touk.pl>.
Hello,

Wouldn't such feature break JBI compatibility - in the spec it is said that
only
components can define dependencies on shared libraries - not sure why,
maybe
because of classloading issues? The same is with classloader delegation -
can
only be specified in component/shared library :/

For sure it would be v. useful feature, but I was always thinking that 
JBI deployment would be JBI compliant, while OSGI deployment is the 
easy to use one ;)

br, 
maciek

On Fri, 13 Nov 2009 08:39:13 +0100, Jean-Baptiste Onofré <jb...@nanthrax.net>
wrote:
> Ah yes,
> 
> ok understood.
> 
> Yes, it makes sense, we can raise a Jira task around this.
> 
> Regards
> JB
> 
> Guillaume Nodet wrote:
>> I think what John is referring to is the fact that when a bunch of JBI
>> artifacts have been deployed (in both smx3 and smx4), the JBI deployer
>> actually wait for the dependencies of the JBI artifacts to be
>> available: i.e. if you hot deploy a SA when the component is not
>> installed yet, you should have a log message and the SA will actually
>> be deployed when the component is installed at a later time.  Same for
>> components / shared libraries.
>> 
>> As for dependencies between SA / SL, it might be doable through
>> extending the JBI descriptor as John indicates.  This would also need
>> to enhance the JBI maven plugin to generate such information if
>> available.
>> 
>> On Fri, Nov 13, 2009 at 08:30, Jean-Baptiste Onofré <jb...@nanthrax.net>
>> wrote:
>>> Hi,
>>>
>>> By default the deployer takes the file ordered by timestamp.
>>> So if you are on Unix, you can use:
>>>
>>> touch myfile.zip
>>>
>>> to force a file redeployment.
>>>
>>> Currently, there is no alternative to this deployer. We can add a
>>> PrefixDeploymentScanner that can use prefix to define the deployment
>>> order
>>> (01-myfile.zip, 02-myfile2.zip, etc).
>>>
>>> Regards
>>> JB
>>>
>>> jweathers777 wrote:
>>>> I've noticed that when starting up a fresh 'data' folderless
ServiceMix
>>>> that
>>>> when the auto-deploment service encounters a ServiceMix component that
>>>> depends upon the ServiceMix shared-library, it suspends deployment
>>>> until
>>>> after the shared library gets loaded.
>>>>
>>>> I would like to duplicate this behavior with some service assemblies
>>>> that
>>>> all depend upon a shared library. I would like to be able to simply
>>>> copy
>>>> the
>>>> packaged service assemblies and the packaged shared library all at
once
>>>> into
>>>> the hotdeploy and have the service assemblies deployment suspended
>>>> until
>>>> the
>>>> shared library can be loaded.
>>>>
>>>> Is this possible? I couldn't find any documentation about it. I
cracked
>>>> open
>>>> the installers for the components and found that in a component's
>>>> jbi.xml
>>>> there is a <shared-library> element inside the <component> element
that
>>>> references the servicemix-shared library. Is it possible to have the
>>>> jbi.xml
>>>> that gets generated by the maven build process have a similar
>>>> <shared-library> element inside the <service-assembly> or
>>>> <service-unit>
>>>> elements so that deployment is suspended until my shared library is
>>>> deployed?
>> 
>> 
>>

Re: Ordering of Hotdeploy For Shared Libraries and Service Assemblies

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

ok understood.

Yes, it makes sense, we can raise a Jira task around this.

Regards
JB

Guillaume Nodet wrote:
> I think what John is referring to is the fact that when a bunch of JBI
> artifacts have been deployed (in both smx3 and smx4), the JBI deployer
> actually wait for the dependencies of the JBI artifacts to be
> available: i.e. if you hot deploy a SA when the component is not
> installed yet, you should have a log message and the SA will actually
> be deployed when the component is installed at a later time.  Same for
> components / shared libraries.
> 
> As for dependencies between SA / SL, it might be doable through
> extending the JBI descriptor as John indicates.  This would also need
> to enhance the JBI maven plugin to generate such information if
> available.
> 
> On Fri, Nov 13, 2009 at 08:30, Jean-Baptiste Onofré <jb...@nanthrax.net> wrote:
>> Hi,
>>
>> By default the deployer takes the file ordered by timestamp.
>> So if you are on Unix, you can use:
>>
>> touch myfile.zip
>>
>> to force a file redeployment.
>>
>> Currently, there is no alternative to this deployer. We can add a
>> PrefixDeploymentScanner that can use prefix to define the deployment order
>> (01-myfile.zip, 02-myfile2.zip, etc).
>>
>> Regards
>> JB
>>
>> jweathers777 wrote:
>>> I've noticed that when starting up a fresh 'data' folderless ServiceMix
>>> that
>>> when the auto-deploment service encounters a ServiceMix component that
>>> depends upon the ServiceMix shared-library, it suspends deployment until
>>> after the shared library gets loaded.
>>>
>>> I would like to duplicate this behavior with some service assemblies that
>>> all depend upon a shared library. I would like to be able to simply copy
>>> the
>>> packaged service assemblies and the packaged shared library all at once
>>> into
>>> the hotdeploy and have the service assemblies deployment suspended until
>>> the
>>> shared library can be loaded.
>>>
>>> Is this possible? I couldn't find any documentation about it. I cracked
>>> open
>>> the installers for the components and found that in a component's jbi.xml
>>> there is a <shared-library> element inside the <component> element that
>>> references the servicemix-shared library. Is it possible to have the
>>> jbi.xml
>>> that gets generated by the maven build process have a similar
>>> <shared-library> element inside the <service-assembly> or <service-unit>
>>> elements so that deployment is suspended until my shared library is
>>> deployed?
> 
> 
> 

Re: Ordering of Hotdeploy For Shared Libraries and Service Assemblies

Posted by Guillaume Nodet <gn...@gmail.com>.
I think what John is referring to is the fact that when a bunch of JBI
artifacts have been deployed (in both smx3 and smx4), the JBI deployer
actually wait for the dependencies of the JBI artifacts to be
available: i.e. if you hot deploy a SA when the component is not
installed yet, you should have a log message and the SA will actually
be deployed when the component is installed at a later time.  Same for
components / shared libraries.

As for dependencies between SA / SL, it might be doable through
extending the JBI descriptor as John indicates.  This would also need
to enhance the JBI maven plugin to generate such information if
available.

On Fri, Nov 13, 2009 at 08:30, Jean-Baptiste Onofré <jb...@nanthrax.net> wrote:
> Hi,
>
> By default the deployer takes the file ordered by timestamp.
> So if you are on Unix, you can use:
>
> touch myfile.zip
>
> to force a file redeployment.
>
> Currently, there is no alternative to this deployer. We can add a
> PrefixDeploymentScanner that can use prefix to define the deployment order
> (01-myfile.zip, 02-myfile2.zip, etc).
>
> Regards
> JB
>
> jweathers777 wrote:
>>
>> I've noticed that when starting up a fresh 'data' folderless ServiceMix
>> that
>> when the auto-deploment service encounters a ServiceMix component that
>> depends upon the ServiceMix shared-library, it suspends deployment until
>> after the shared library gets loaded.
>>
>> I would like to duplicate this behavior with some service assemblies that
>> all depend upon a shared library. I would like to be able to simply copy
>> the
>> packaged service assemblies and the packaged shared library all at once
>> into
>> the hotdeploy and have the service assemblies deployment suspended until
>> the
>> shared library can be loaded.
>>
>> Is this possible? I couldn't find any documentation about it. I cracked
>> open
>> the installers for the components and found that in a component's jbi.xml
>> there is a <shared-library> element inside the <component> element that
>> references the servicemix-shared library. Is it possible to have the
>> jbi.xml
>> that gets generated by the maven build process have a similar
>> <shared-library> element inside the <service-assembly> or <service-unit>
>> elements so that deployment is suspended until my shared library is
>> deployed?
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com

Re: Ordering of Hotdeploy For Shared Libraries and Service Assemblies

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

By default the deployer takes the file ordered by timestamp.
So if you are on Unix, you can use:

touch myfile.zip

to force a file redeployment.

Currently, there is no alternative to this deployer. We can add a 
PrefixDeploymentScanner that can use prefix to define the deployment 
order (01-myfile.zip, 02-myfile2.zip, etc).

Regards
JB

jweathers777 wrote:
> I've noticed that when starting up a fresh 'data' folderless ServiceMix that
> when the auto-deploment service encounters a ServiceMix component that
> depends upon the ServiceMix shared-library, it suspends deployment until
> after the shared library gets loaded.
> 
> I would like to duplicate this behavior with some service assemblies that
> all depend upon a shared library. I would like to be able to simply copy the
> packaged service assemblies and the packaged shared library all at once into
> the hotdeploy and have the service assemblies deployment suspended until the
> shared library can be loaded.
> 
> Is this possible? I couldn't find any documentation about it. I cracked open
> the installers for the components and found that in a component's jbi.xml
> there is a <shared-library> element inside the <component> element that
> references the servicemix-shared library. Is it possible to have the jbi.xml
> that gets generated by the maven build process have a similar
> <shared-library> element inside the <service-assembly> or <service-unit>
> elements so that deployment is suspended until my shared library is
> deployed?