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: 0.5.9

See the CHANGELOG.rst file to see what changed in previous releases.

Project

  • iPOPO now works with IronPython (tested inside Unity 3D)

iPOPO

  • Components raising an error during validation goes in the ERRONEOUS state, instead of going back to INVALID. This avoids trying to validate them automatically.

  • The retry_erroneous() method of the iPOPO service and the retry shell command allows to retry the validation of an ERRONEOUS component.

  • The @SingletonFactory decorator can replace the @ComponentFactory one. It ensures that only one component of this factory can be instantiated at a time.

  • The @Temporal requirement decorator allows to require a service and to wait a given amount of time for its replacement before invalidating the component or while using the requirement.

  • @RequiresBest ensures that it is always the service with the best ranking that is injected in the component.

  • The @PostRegistration and @PreUnregistration callbacks allows the component to be notified right after one of its services has been registered or will be unregistered.

HTTP

  • The generated 404 page shows the list of registered servlets paths.

  • The 404 and 500 error pages can be customized by a hook service.

  • The default binding address is back to “0.0.0.0” instead of “localhost”. (for those who used the development version)

Utilities

  • The ThreadPool class is now a cached thread pool. It now has a minimum and maximum number of threads: only the required threads are alive. A thread waits for a task during 60 seconds (by default) before stopping.

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.9.tar.gz (166.6 kB view hashes)

Uploaded Source

Built Distribution

iPOPO-0.5.9-py2.py3-none-any.whl (229.5 kB view hashes)

Uploaded Python 2 Python 3

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