If you want to develop complex web application and if you want to break up the application in various madules like one for DAO Layer, view layer and data access layer.
Using OSGi container, you can manage cross dependencies between all these modules and deploy this is also without restarting the server.
If you application is OSGi compliant, you should be able to run your application in any of the below open source OSGi container :
1) Apache Felix
2) Equinox
3) Knopflerfish
For Liferay 7, We are going to user Apache Felix across all the implementation.
Using OSGi container, you can manage cross dependencies between all these modules and deploy this is also without restarting the server.
If you application is OSGi compliant, you should be able to run your application in any of the below open source OSGi container :
1) Apache Felix
2) Equinox
3) Knopflerfish
For Liferay 7, We are going to user Apache Felix across all the implementation.