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 details)

Uploaded Source

File details

Details for the file iPOPO-0.5.6.tar.gz.

File metadata

  • Download URL: iPOPO-0.5.6.tar.gz
  • Upload date:
  • Size: 150.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for iPOPO-0.5.6.tar.gz
Algorithm Hash digest
SHA256 6cf5e0362e331ac850babd307438d936f1b77c8699a01c1df17c81de64f56938
MD5 7810fe1f6a5725d4893f517c10a93be9
BLAKE2b-256 b55ee98a565eb9a8c534784c71cd74e52bd03568eb71ccd670c98490af10d171

See more details on using hashes here.

Supported by

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