You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by han hongfang <ha...@gmail.com> on 2011/03/16 04:06:54 UTC

[Discussion] Update a bundle within an EBA

Hi all,

I would like to hear the comments for the solution proposal for updating a
bundle within an EBA, and the related JIRAs are:

https://issues.apache.org/jira/browse/GERONIMODEVTOOLS-718 Update a bundle
within an EBA
https://issues.apache.org/jira/browse/GERONIMO-5861 Update a bundle within
an EBA

The point of the JIRA is to ONLY re-deploy the updated bundle in EBA instead
of re-assembling and re-deploying the whole EBA to save the time in the case
that the EBA is huge.

The rough proposal is:
Step 1. update a specified bundle using osgi:update
Step 2. osgi:refresh the other bundles in the EBA to refresh the links to
the updated bundle

This means that the updated bundle will be only in the cache, and in the
following cases the updated bundle will be lost, and the original bundle
included in EBA archive file comes back.
1. Start geronimo server with -clean option
2. Restart EBA application in Admin console -> Application EBAs

This new feature is designed for application development phase to speed up
application testing, and it can be turned off in GEP in case that user wants
to re-deploy the whole EBA with any update.

Any comments on the solution?

-- 
Best regards,

Han Hong Fang (Janet)
hanhongfang AT apache.org

Re: [Discussion] Update a bundle within an EBA

Posted by Rex Wang <rw...@gmail.com>.
2011/3/16 David Jencks <da...@yahoo.com>

> It looks to me as if the jiras just say you'd like this feature without
> explaining how it would work.
>
> Even though we don't yet have an isolation environment in geronimo, I'd
> like to know how this would work if we did.
>
> Lets say you have an EBA with bundles A, B, and C, B imports packages from
> A and services from A and C, C imports packages and services from A, B, and
> C.  Now you want to replace B with B' .  What are the state changes for A,
> B, B', and C in what order?
>

To make the case clear, the Sample is
SampleEBA:
- A
- B (import A's packages and A&C's services)
- C (import A&B&C's  packages and services)

If we plan to update B, we don't need to take care too much of its imports.
The problem is C. I think, at least for Aries 0.2.1, We can just trigger B
to refresh(i.e. packageAdmin.refreshPackages(B)), which will force the
bundles depending on it to re-resolve. Then C will get the new B's content.
We don't need manually refresh the state of A and C.


>
> Can B' alter the import requirements for the EBA?
>
> If the EBA defines an isolation environment, how does the deployer know
> that it should be putting B' inside the EBA rather than outside the EBA?
>
> If we can make this work, great, I want to be sure we won't have to rip it
> out again or completely reimplement it when we have subsystems.
>
I am afraid this might be the things we can not avoid. Now we are using the
Aries 0.2.1 which only implements very basic isolation. Aries and OSGi
subsystems is still on progress, we have not yet know how much changes in
future that will bring to Geronimo. So this solution is just for the current
user's requirements.


-Rex



> thanks!
> david jencks
>
> On Mar 15, 2011, at 8:06 PM, han hongfang wrote:
>
> Hi all,
>
> I would like to hear the comments for the solution proposal for updating a
> bundle within an EBA, and the related JIRAs are:
>
> https://issues.apache.org/jira/browse/GERONIMODEVTOOLS-718 Update a bundle
> within an EBA
> https://issues.apache.org/jira/browse/GERONIMO-5861 Update a bundle within
> an EBA
>
> The point of the JIRA is to ONLY re-deploy the updated bundle in EBA
> instead of re-assembling and re-deploying the whole EBA to save the time in
> the case that the EBA is huge.
>
> The rough proposal is:
> Step 1. update a specified bundle using osgi:update
> Step 2. osgi:refresh the other bundles in the EBA to refresh the links to
> the updated bundle
>
> This means that the updated bundle will be only in the cache, and in the
> following cases the updated bundle will be lost, and the original bundle
> included in EBA archive file comes back.
> 1. Start geronimo server with -clean option
> 2. Restart EBA application in Admin console -> Application EBAs
>
> This new feature is designed for application development phase to speed up
> application testing, and it can be turned off in GEP in case that user wants
> to re-deploy the whole EBA with any update.
>
> Any comments on the solution?
>
> --
> Best regards,
>
> Han Hong Fang (Janet)
> hanhongfang AT apache.org
>
>
>
>


-- 
Lei Wang (Rex)
rwonly AT apache.org

Re: [Discussion] Update a bundle within an EBA

Posted by David Jencks <da...@yahoo.com>.
It looks to me as if the jiras just say you'd like this feature without explaining how it would work.

Even though we don't yet have an isolation environment in geronimo, I'd like to know how this would work if we did.

Lets say you have an EBA with bundles A, B, and C, B imports packages from A and services from A and C, C imports packages and services from A, B, and C.  Now you want to replace B with B' .  What are the state changes for A, B, B', and C in what order?

Can B' alter the import requirements for the EBA?

If the EBA defines an isolation environment, how does the deployer know that it should be putting B' inside the EBA rather than outside the EBA?

If we can make this work, great, I want to be sure we won't have to rip it out again or completely reimplement it when we have subsystems.

thanks!
david jencks

On Mar 15, 2011, at 8:06 PM, han hongfang wrote:

> Hi all,
> 
> I would like to hear the comments for the solution proposal for updating a bundle within an EBA, and the related JIRAs are:
> 
> https://issues.apache.org/jira/browse/GERONIMODEVTOOLS-718 Update a bundle within an EBA 
> https://issues.apache.org/jira/browse/GERONIMO-5861 Update a bundle within an EBA
> 
> The point of the JIRA is to ONLY re-deploy the updated bundle in EBA instead of re-assembling and re-deploying the whole EBA to save the time in the case that the EBA is huge.
> 
> The rough proposal is:
> Step 1. update a specified bundle using osgi:update
> Step 2. osgi:refresh the other bundles in the EBA to refresh the links to the updated bundle
> 
> This means that the updated bundle will be only in the cache, and in the following cases the updated bundle will be lost, and the original bundle included in EBA archive file comes back.
> 1. Start geronimo server with -clean option
> 2. Restart EBA application in Admin console -> Application EBAs
> 
> This new feature is designed for application development phase to speed up application testing, and it can be turned off in GEP in case that user wants to re-deploy the whole EBA with any update.
> 
> Any comments on the solution?
> 
> -- 
> Best regards,
> 
> Han Hong Fang (Janet)
> hanhongfang AT apache.org
>  
>