Skip to main content

A service-oriented component model framework

Project description

iPOPO : A component model for Python

https://travis-ci.org/tcalmant/ipopo.svg?branch=master https://coveralls.io/repos/tcalmant/ipopo/badge.png?branch=master

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 :

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iPOPO-0.5.6.tar.gz (150.7 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page