You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@celix.apache.org by GitBox <gi...@apache.org> on 2021/04/21 14:03:52 UTC

[GitHub] [celix] tira-misu opened a new issue #339: Bundle compatibility between celix version?

tira-misu opened a new issue #339:
URL: https://github.com/apache/celix/issues/339


   Hi,
   
   I have some problems upgrading celix from version 2.1 to version 2.2. Old bundles (build with celix 2.1) will not startup proper in celix 2.2. Components of the old bundle are not present in 2.2. The reason is because there is an incompatible change in DependencyManager::createComponent() which is part of the public interface of celix.
   
   My Question: Is it intendet that bundles build with celix 2.1 will work in celix 2.2? Celix takes so much care about version handling, so its a bit confusing that this will not work.
   
   regards
   Gunter


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] pnoltes closed issue #339: Bundle compatibility between celix version?

Posted by GitBox <gi...@apache.org>.
pnoltes closed issue #339:
URL: https://github.com/apache/celix/issues/339


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] pnoltes commented on issue #339: Bundle compatibility between celix version?

Posted by GitBox <gi...@apache.org>.
pnoltes commented on issue #339:
URL: https://github.com/apache/celix/issues/339#issuecomment-829200374


   > 
   > In general: Binary compatibility should be a main goal of a modular software framework. In particular if major version did not change. What about to implement a component test for this? I would like to offer a contribution of such a test.
   > 
   
   That is a good point and also something which is possible for the C api. My issue is that if we want to "officially" support binary backwards compatibility this needs to be tested. If not, this cannot be assured. 
   
   So yes, a contribution how to test this would be very welcome :)
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] pnoltes commented on issue #339: Bundle compatibility between celix version?

Posted by GitBox <gi...@apache.org>.
pnoltes commented on issue #339:
URL: https://github.com/apache/celix/issues/339#issuecomment-853179529


   Pull request #340 fixes the mentioned issue, closing ticket. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] pnoltes commented on issue #339: Bundle compatibility between celix version?

Posted by GitBox <gi...@apache.org>.
pnoltes commented on issue #339:
URL: https://github.com/apache/celix/issues/339#issuecomment-826663730


   Hi Gunter,
   
   The update from 2.1 to 2.2 was meant to be backwards compatible. (as the version suggest, minor update).
   
   That said, for Celix backwards compatible means that it is backwards compatible on source level. Although backwards compatibility on binary level would be nicer, this is (IMO) hard to achieve in all situations. In other words I expect recompilation is needed, this is especially true for bundles based on Celix's C++ header only API.
   
   Could you retry with a recompilation step?
   
   Greetings,
   Pepijn


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] tira-misu commented on issue #339: Bundle compatibility between celix version?

Posted by GitBox <gi...@apache.org>.
tira-misu commented on issue #339:
URL: https://github.com/apache/celix/issues/339#issuecomment-826798409


   Hi Pepijn,
   
   Thanks for the hint with the C++ header only API. This was indeed the missing link and it helps to be binary compatible with old versions. I had a deep dive in to celix sources (ok - it was more or less only scrathing at the surface) and found the incompatible change between 2.1 and 2.2. Old celix bundles creates an own dependency manager and new celix gives the dependency manager to the bundle. So you set the old C interface to deprecated. Changing the implentation of the deprecated interface to the new behaviour in celix 2.2 solves the issue. Bundles build with 2.1 can now be loaded with 2.2 celix runtime. All components with interfaces will be found and linked to dependent bundles. 
   
   I will make a pull request. Perhaps I have overlooked something. 
   
   In general: Binary compatibility should be a main goal of a modular software framework. In particular if major version did not change. What about to implement a component test for this? I would like to offer a contribution of such a test.
   
   regards
   Gunter


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org