I'm happy to announce that iPOPO has been relased in v1.0.1.
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, uninstall) - 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 decorators
Components are bound together by the specification(s) of the service(s) they provide. The required services are injected into components by iPOPO.
For more information about those concepts, see https://ipopo.readthedocs.io/en/latest/refcards/index.html#refcards
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 1.0.1 ===================
This release adds few features and only concerns the v1 branch.
* Added a RequiresBroadcast decorator, which injects a proxy that broadcasts calls to all services matched by the requirement. It also transparently ignores calls when no service matches the requirement. * ConfigurationAdmin default persistence can now be disabled by setting the pelix.configadmin.persistence.default.disable framework property to any non-empty value. See #113 for more details: https://github.com/tcalmant/ipopo/issues/113 * Added a to_record() method in LogEntry objects. This converts the Pelix entry to a logging.LogRecord object, which can then be formatted using standard formatters. Note that some information is missing, like the place the log record is from (file path and line).
You can take a look at the documentation at https://ipopo.readthedocs.io/ iPOPO is available on PyPI: https://pypi.python.org/pypi/iPOPO Source is available on GitHub: https://github.com/tcalmant/ipopo Feel free to send feedback on your experience of Pelix/iPOPO, via the mailing lists: