A service-oriented component model framework
Project description
iPOPO : A component model for Python
iPOPO is a Python-based Service-Oriented Component Model (SOCM) based on Pelix, a dynamic service platform. They 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.
See https://ipopo.coderxpress.net for documentation and more information.
iPOPO is available on PyPI and is released under the terms of the Apache License 2.0.
Feedback
Feel free to send feedback on your experience of Pelix/iPOPO, via the mailing lists :
User list: http://groups.google.com/group/ipopo-users (don’t be shy)
Development list: http://groups.google.com/group/ipopo-dev
More information at https://ipopo.coderxpress.net/
Compatibility
Pelix and iPOPO are tested using Tox and Travis-CI with Python 2.6, 2.7, 3.2 and 3.3.
It is also manually tested with Pypy 1.9 and Python 3.4.
To use iPOPO on Python 2.6, it is necessary to install the importlib module back-port, using pip install importlib. To execute iPOPO tests on this version, you also need to install the unittest2 module.
Release notes
See the CHANGELOG.rst file to see what changed in previous releases.
iPOPO 0.5.6
Project
Added samples to the project repository
Removed the static website from the repository
Added the project to Coveralls
Increased code coverage
Framework
Added a @BundleActivator decorator, to define the bundle activator class. The activator module variable should be replaced by this decorator.
Renamed specifications constants: from XXX_SPEC to SERVICE_XXX
iPOPO
Added a waiting list service: instantiates components as soon as the iPOPO service and the component factory are registered
Added @RequiresMap handler
Added an if_valid parameter to binding callbacks decorators: @Bind, @Update, @Unbind, @BindField, @UpdateField, @UnbindField. The decorated method will be called if and only if the component valid.
The get_factory_context() from decorators becomes public to ease the implementation of new decorators
Remote Services
Large rewriting of Remote Service core modules
Now using OSGi Remote Services properties
Added support for the OSGi EDEF file format (XML)
Added an abstract class to easily write RPC implementations
Added mDNS service discovery
Added an MQTT discovery protocol
Added an MQTT-RPC protocol, based on Node.js MQTT-RPC module
Added a Jabsorb-RPC transport. Pelix can now use Java services and vice-versa, using:
Shell
Enhanced completion with readline
Enhanced commands help generation
Added arguments to filter the output of bl, sl, factories and instances
Corrected prompt when using readline
Corrected write_lines() when not giving format arguments
Added an echo command, to test string parsing
Services
Added support for managed service factories in ConfigurationAdmin
Added an EventAdmin-MQTT bridge: events from EventAdmin with an event.propage property are published over MQTT
Added an early version of an MQTT Client Factory service
Miscellaneous
Added a misc package, with utility modules and bundles:
eventadmin_printer: an EventAdmin handler that prints or logs the events it receives
jabsorb: converts dictionary from and to the Jabsorb-RPC format
mqtt_client: a wrapper for the Paho MQTT client, used in MQTT discovery and MQTT-RPC.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.