You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by mcoyote <mc...@mcoyote.com> on 2011/06/09 02:21:09 UTC

Stripping down a ServiceMix installation for compact redeployment?

Hi there,

I'm new to ServiceMix but not most of its constituent technologies, and was
hoping this group could give us an idea of how to proceed with a requirement
we have.

We're trying to devise the best way to (a) take a ServiceMix installation
with our bundles/dependencies the way we want them and (b) systematically
remove unused bundles from the physical installation, (c) including cached
content/debris. We might also express (b) as "remove all bundles save for
those we identify and respective dependencies" (same difference). 

Either way, we want to avoid manually crawling the catalog, especially as we
draw in more capabilities over time.

In this way, we hope to have an installation we can duplicate wholesale for
specific, constrained (in terms of storage) computing environments.

Thanks for your time, in advance, and for this excellent suite of
capabilities.

-----
"Professional coder on closed source. Do not attempt."
--
View this message in context: http://servicemix.396122.n5.nabble.com/Stripping-down-a-ServiceMix-installation-for-compact-redeployment-tp4471273p4471273.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

RE: Stripping down a ServiceMix installation for compact redeployment?

Posted by Andreas Junius <AJ...@internode.com.au>.
I went in the same direction too. I created a command which spits out all bundles on which a particular one depends on. So, I start with a container containing a full set of bundles, run my app and print the dependency list afterwards. Then I start with a SMX container containing only the system bundles and add the bundles on the list. That works quite well.

Finding unused bundles is nevertheless an issue - someone else may add a bundle and decide not to use it...
So I created a command which prints for a bundle, which packages it exports, which one is importing it, the same for services and it tests if it is a host to some fragments. The output is still just a hint, one has to figure out a bundles purpose manually. I can't see a way to remove "unused" bundles automatically.


-----Original Message-----
From: ajs6f@virginia.edu [mailto:ajs6f@virginia.edu] 
Sent: Thursday, 16 February 2012 12:57 AM
To: users@servicemix.apache.org
Subject: Re: Stripping down a ServiceMix installation for compact redeployment?

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This isn't a direct answer to your question, but it's in the same line.

I have found that I get good and quick results by going in the opposite direction. That is, I start with my own code, deploy it, watch it fail to start (and why), then use SMX's Karaf feature system to incrementally install just enough SMX to get my integration up and running. In truth, I'm not getting a totally minimal system by so doing, but I am getting pretty quick results, and for my purposes, it's very helpful to be able to simply record the features I needed to install and then use that list to create a feature repository for my own project.

- ---
A. Soroka
Software & Systems Engineering
Online Library Environment
the University of Virginia Library



On Feb 13, 2012, at 11:33 PM, andy wrote:

> Hi ServiceMix users,
> 
> I admit this is an old thread, but I'm dealing with the same problem. I
> think the key is how to decide whether or not a bundle is in use and I
> identified some possible hooks:
> 
> A bundle is in use if any of its exports are imported by another bundle
> It is also in use if any of its services are in use
> It may be in use if it is a host for a fragment
> 
> Remains the question if that would be sufficient and how to deal with a
> bunch of bundles which belong together. What do you think?
> 
> Andy
> 


Re: Stripping down a ServiceMix installation for compact redeployment?

Posted by "ajs6f@virginia.edu" <aj...@virginia.edu>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This isn't a direct answer to your question, but it's in the same line.

I have found that I get good and quick results by going in the opposite direction. That is, I start with my own code, deploy it, watch it fail to start (and why), then use SMX's Karaf feature system to incrementally install just enough SMX to get my integration up and running. In truth, I'm not getting a totally minimal system by so doing, but I am getting pretty quick results, and for my purposes, it's very helpful to be able to simply record the features I needed to install and then use that list to create a feature repository for my own project.

- ---
A. Soroka
Software & Systems Engineering
Online Library Environment
the University of Virginia Library



On Feb 13, 2012, at 11:33 PM, andy wrote:

> Hi ServiceMix users,
> 
> I admit this is an old thread, but I'm dealing with the same problem. I
> think the key is how to decide whether or not a bundle is in use and I
> identified some possible hooks:
> 
> A bundle is in use if any of its exports are imported by another bundle
> It is also in use if any of its services are in use
> It may be in use if it is a host for a fragment
> 
> Remains the question if that would be sufficient and how to deal with a
> bunch of bundles which belong together. What do you think?
> 
> Andy
> 
> --
> View this message in context: http://servicemix.396122.n5.nabble.com/Stripping-down-a-ServiceMix-installation-for-compact-redeployment-tp4471273p5481463.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org

iQEcBAEBAgAGBQJPO8ClAAoJEATpPYSyaoIkCnAIANKOgaem30/rYYdwlXfFNraZ
MrisqaVaNYmcFYOfoHX+nROXFdDWzZ/inci7V0fv7zGOczaOdi82jPtEGFoFIkjU
FBc4TJQvdCkJvRvuLWpb/clJftpwTO5WBAt86iPYp5pUAIpqQTFpEFHNdqh8gsYP
Mhsv16xcc81FuLbHXnAvwYc6bSy9bHJ9m8ucjGVTK8E3LQhWDhOQvPPyaA7oa0oV
Q2shkmpAwhOSSZBJLh1lhYDJLG4VJ3tF7wKXqYP2+hFk8yMq5vXSY2WlYHUZLIcx
1SyvSYr/muLJuhmt4h5t0Q1dCkI71HIMFvtwZEDav1kVFdWcngpWvmQZx6nQpp4=
=7oZr
-----END PGP SIGNATURE-----

Re: Stripping down a ServiceMix installation for compact redeployment?

Posted by andy <an...@internode.com.au>.
Hi ServiceMix users,

I admit this is an old thread, but I'm dealing with the same problem. I
think the key is how to decide whether or not a bundle is in use and I
identified some possible hooks:

A bundle is in use if any of its exports are imported by another bundle
It is also in use if any of its services are in use
It may be in use if it is a host for a fragment

Remains the question if that would be sufficient and how to deal with a
bunch of bundles which belong together. What do you think?

Andy

--
View this message in context: http://servicemix.396122.n5.nabble.com/Stripping-down-a-ServiceMix-installation-for-compact-redeployment-tp4471273p5481463.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Re: Stripping down a ServiceMix installation for compact redeployment?

Posted by Achim Nierbeck <bc...@googlemail.com>.
Hi,

here my 2 cents regarding on building a custom assembly.
Last time I needed a custom assembly I did start with Karaf.

I used the maven-assembly plugin in conjunction with the
maven-features-plugin of karaf (beware the latest one is
being renamed right now in 3.0.0-SNAPSHOT)

This way it's quite easy building a custom assembly for your
project. So I would start with a standard Karaf and add the
features needed, most project already have features.xml.

Regards, Achim


Am 14.06.2011 19:21, schrieb mcoyote:
> Gert Vanthienen wrote:
>> L.S.,
>>
>> If you need a really trimmed down assembly, it's probably easier to
>> start with a plain Karaf and adding bundles for features using the
>> plugin as we do in ServiceMix itself - this will get you an assembly
>> with only the bundles for your features in there, which is what you
>> want, right?  There's no tooling/commands/... for adding/removing
>> bundles from the /system folder in an existing assembly at the moment.
>>  However...
>>
> I think this is the crux of the issue -- when I examine what's along for the
> ride in our current, development ServiceMix footprint there are at least a
> few bundles which have snuck in over time that don't appear to be used by
> anyone (nice-to-haves) and, even though I can establish this by trial and
> error, I'd like to be able to systematically purge any that are unnecessary
> for our intentional capabilities.
>
>
> Gert Vanthienen wrote:
>> We regularly get questions like 'my server is not connected to the
>> internet, could you add bundle x to the system folder', how about we
>> provide a means for people to start an assembly, tweak it by
>> adding/removing bundles and then export the result so it can be moved
>> into a constrained environment afterwards?  We already have the
>> features-maven-plugin and an archetype for creating your own assembly,
>> but perhaps we should provide an easier way for people that are only
>> interested in preparing an assembly for a production deployment.
>>
>> Wdyt?
>>
> I think this is a fine idea, actually, and would help our cause at least a
> little.
>
>
> -----
> "Professional coder on closed source. Do not attempt."
> --
> View this message in context: http://servicemix.396122.n5.nabble.com/Stripping-down-a-ServiceMix-installation-for-compact-redeployment-tp4471273p4488613.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Stripping down a ServiceMix installation for compact redeployment?

Posted by mcoyote <mc...@mcoyote.com>.
Gert Vanthienen wrote:
> 
> L.S.,
> 
> If you need a really trimmed down assembly, it's probably easier to
> start with a plain Karaf and adding bundles for features using the
> plugin as we do in ServiceMix itself - this will get you an assembly
> with only the bundles for your features in there, which is what you
> want, right?  There's no tooling/commands/... for adding/removing
> bundles from the /system folder in an existing assembly at the moment.
>  However...
> 

I think this is the crux of the issue -- when I examine what's along for the
ride in our current, development ServiceMix footprint there are at least a
few bundles which have snuck in over time that don't appear to be used by
anyone (nice-to-haves) and, even though I can establish this by trial and
error, I'd like to be able to systematically purge any that are unnecessary
for our intentional capabilities.


Gert Vanthienen wrote:
> 
> We regularly get questions like 'my server is not connected to the
> internet, could you add bundle x to the system folder', how about we
> provide a means for people to start an assembly, tweak it by
> adding/removing bundles and then export the result so it can be moved
> into a constrained environment afterwards?  We already have the
> features-maven-plugin and an archetype for creating your own assembly,
> but perhaps we should provide an easier way for people that are only
> interested in preparing an assembly for a production deployment.
> 
> Wdyt?
> 

I think this is a fine idea, actually, and would help our cause at least a
little.


-----
"Professional coder on closed source. Do not attempt."
--
View this message in context: http://servicemix.396122.n5.nabble.com/Stripping-down-a-ServiceMix-installation-for-compact-redeployment-tp4471273p4488613.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Re: Stripping down a ServiceMix installation for compact redeployment?

Posted by Gert Vanthienen <ge...@gmail.com>.
L.S.,

If you need a really trimmed down assembly, it's probably easier to
start with a plain Karaf and adding bundles for features using the
plugin as we do in ServiceMix itself - this will get you an assembly
with only the bundles for your features in there, which is what you
want, right?  There's no tooling/commands/... for adding/removing
bundles from the /system folder in an existing assembly at the moment.
 However...

We regularly get questions like 'my server is not connected to the
internet, could you add bundle x to the system folder', how about we
provide a means for people to start an assembly, tweak it by
adding/removing bundles and then export the result so it can be moved
into a constrained environment afterwards?  We already have the
features-maven-plugin and an archetype for creating your own assembly,
but perhaps we should provide an easier way for people that are only
interested in preparing an assembly for a production deployment.

Wdyt?

Gert Vanthienen
------------------------
FuseSource
Web: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/



On Tue, Jun 14, 2011 at 6:51 PM, mcoyote <mc...@mcoyote.com> wrote:
> Hi there,
>
> Thank you for clarifying that. This begs the question, though -- once you
> have a fully-populated installation, is there a way to systematically
> determine the minimum set to put in the assembly?
>
> -----
> "Professional coder on closed source. Do not attempt."
> --
> View this message in context: http://servicemix.396122.n5.nabble.com/Stripping-down-a-ServiceMix-installation-for-compact-redeployment-tp4471273p4488503.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>

Re: Stripping down a ServiceMix installation for compact redeployment?

Posted by mcoyote <mc...@mcoyote.com>.
Hi there,

Thank you for clarifying that. This begs the question, though -- once you
have a fully-populated installation, is there a way to systematically
determine the minimum set to put in the assembly?

-----
"Professional coder on closed source. Do not attempt."
--
View this message in context: http://servicemix.396122.n5.nabble.com/Stripping-down-a-ServiceMix-installation-for-compact-redeployment-tp4471273p4488503.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Re: Stripping down a ServiceMix installation for compact redeployment?

Posted by Johan Edstrom <se...@gmail.com>.
The packaging of SMX is in the Assembly.
So if you want to cut down on "system" size, you either
need to delete stuff or roll your own assembly.

The previous karaf link is still pertinent as it has to do with what is loaded by default.

/je


On Jun 14, 2011, at 10:02 AM, mcoyote wrote:

> Hi there,
> 
> This is a useful reference (thank you), but unfortunately doesn't help us
> clean out excess content from the repo in advance of packaging. 
> 
> Our target environment has pretty constrained storage, so once we have
> assembled all of our code and dependencies we'd like to discard anything in
> the installation remaining unreferenced. We were hoping to find a systematic
> means of identifying/managing this from (perhaps) karaf or some other
> plumbing.
> 
> -----
> "Professional coder on closed source. Do not attempt."
> --
> View this message in context: http://servicemix.396122.n5.nabble.com/Stripping-down-a-ServiceMix-installation-for-compact-redeployment-tp4471273p4488324.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Stripping down a ServiceMix installation for compact redeployment?

Posted by mcoyote <mc...@mcoyote.com>.
Hi there,

This is a useful reference (thank you), but unfortunately doesn't help us
clean out excess content from the repo in advance of packaging. 

Our target environment has pretty constrained storage, so once we have
assembled all of our code and dependencies we'd like to discard anything in
the installation remaining unreferenced. We were hoping to find a systematic
means of identifying/managing this from (perhaps) karaf or some other
plumbing.

-----
"Professional coder on closed source. Do not attempt."
--
View this message in context: http://servicemix.396122.n5.nabble.com/Stripping-down-a-ServiceMix-installation-for-compact-redeployment-tp4471273p4488324.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Re: Stripping down a ServiceMix installation for compact redeployment?

Posted by Andreas Pieber <an...@gmail.com>.
well, smx is based on karaf; I think [1] could be what you're looking for?

Kind regards,
Andreas

[1] http://karaf.apache.org/manual/2.2.0/developers-guide/custom-distribution.html

On Thu, Jun 9, 2011 at 2:21 AM, mcoyote <mc...@mcoyote.com> wrote:
> Hi there,
>
> I'm new to ServiceMix but not most of its constituent technologies, and was
> hoping this group could give us an idea of how to proceed with a requirement
> we have.
>
> We're trying to devise the best way to (a) take a ServiceMix installation
> with our bundles/dependencies the way we want them and (b) systematically
> remove unused bundles from the physical installation, (c) including cached
> content/debris. We might also express (b) as "remove all bundles save for
> those we identify and respective dependencies" (same difference).
>
> Either way, we want to avoid manually crawling the catalog, especially as we
> draw in more capabilities over time.
>
> In this way, we hope to have an installation we can duplicate wholesale for
> specific, constrained (in terms of storage) computing environments.
>
> Thanks for your time, in advance, and for this excellent suite of
> capabilities.
>
> -----
> "Professional coder on closed source. Do not attempt."
> --
> View this message in context: http://servicemix.396122.n5.nabble.com/Stripping-down-a-ServiceMix-installation-for-compact-redeployment-tp4471273p4471273.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>