I'm happy to announce that iPOPO v0.7.0 has just been released!
What is iPOPO
iPOPO is a Service-Oriented Component Model (SOCM) based on Pelix,
a dynamic service platform. Both are inspired on two popular Java
technologies for the development of long-lived applications:
the iPOJO component model and the OSGi Service Platform.
iPOPO enables to conceive long-running and modular IT services.
It is based on the concepts specified by OSGi:
- Bundle: a Python module imported using Pelix and associated to a
context. A bundle has a life-cycle (install, start, updated, stop,
- Service: a Python object registered in a service registry,
associated to a specification and to properties.
- Component: the instance of a class described/manipulated by iPOPO
Components are bound together by the specification(s) of the service(s)
they provide. The required services are injected into components by iPOPO.
iPOPO provides many services out-of-the-box, like an HTTP server,
local and remote shell, remote services...
iPOPO is released under the terms of Apache Software License 2.0
What's new in 0.7.0
This version mainly adds:
* Prototype Service Factories
* Automatic release of consumed services when a bundle stops.
This will avoid some stale references when using service
WARNING: This is an important change in behavior, which might
break some projects which use stale references to pass
information from one bundle version to another during an
update (which is a bad way to do it).
* Deprecation handling of the imp package
* Added a Framework.delete() method to avoid the need to know
about the FrameworkFactory class.
This release also removes some Python 2.6 compatibility code that was
remaining and which is not necessary anymore, as this version of
Python is not supported anymore by iPOPO.
Due to the behavior change caused by the automatic release of
consumed services, this release is version 0.7.0 instead of 0.6.6,
as it could break some existing code.
What's coming in 2018
2018 will be the year when iPOPO will get its Web Console. It will be
developed as a separate project (in fact, the project already exists
but is staled).