A service-oriented component model framework
Project description
iPOPO : A component model for Python
This is iPOPO, a component model framework for Python based on SOA principles. It is based on Pelix, an SOA framework.
See http://ipopo.coderxpress.net for documentation and more information.
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
Development list : http://groups.google.com/group/ipopo-dev
More information at http://ipopo.coderxpress.net/
Compatibility
The package has been tested with:
Python 2.6, 2.7, 3.1 and 3.2
Pypy 1.8, 1.9
To work with Python 2.6, the importlib module back-port must be installed. It is available on PyPI.
Release notes
iPOPO 0.5.2
Additions
iPOPO Decorators
An error is now logged if a class is manipulated twice. Decorators executed after the first manipulation, i.e. upon @ComponentFactory(), are ignored.
HTTP Service
New servlet binding parameters:
http.name : Name of HTTP service. The name of component instance in the case of the basic implementation.
http.extra : Extra properties of the HTTP service. In the basic implementation, this the content of the http.extra property of the HTTP server component
New method accept_binding(path, params) in servlets. This allows to refuse the binding with a server before to test the availability of the registration path, thus to avoid raising a meaningless exception.
Remote Services
End points are stored according to their framework
Added a method lost_framework(uid) in the registry of imported services, which unregisters all the services provided by the given framework.
Shell
Shell help command now accepts a command name to print a specific documentation
Bugs fixed
iPOPO Decorators
Better handling of inherited and overridden methods: a decorated method can now be overridden in a child class, with the name, without warnings.
Better error logs, with indication of the error source file and line
iPOPO 0.5.1
Additions
Shell
The remote shell now provides a service, pelix.shell.remote, with a get_access() method that returns the (host, port) tuple where the remote shell is waiting for clients.
HTTP Service
The HTTP service now supports the update of servlet services properties. A servlet service can now update its registration path property after having been bound to a HTTP service.
A 500 server error page containing an exception trace is now generated when a servlet fails.
Bugs fixed
Framework
Bundle.update() now logs the SyntaxError exception that be raised in Python 3.
Shell
Fixed the threads command that wasn’t working on Python 3.
HTTP Service
The bound_to() method of a servlet is called only after the HTTP service is ready to accept clients.
iPOPO 0.5
API Changes
Framework
BundleContext.install_bundle() now returns the Bundle object instead of the bundle ID. BundleContext.get_bundle() has been updated to accept both IDs and Bundle objects in order to keep a bit of compatibility
Framework.get_symbolic_name() now returns pelix.framework instead of org.psem2m.pelix
ServiceEvent.get_type() is renamed get_kind(). The other name is still available but is declared deprecated (a warning is logged on its first use).
Shell
Shell command methods now take an IOHandler object in parameter instead of input and output file-like streams. This hides the compatibility tricks between Python 2 and 3 and simplifies the output formatting.
Additions
Project
Added this “release notes” page to the web site
Framework
BundleContext.install_visiting(path, visitor):
Visits the given path and installs the found modules if the visitor accepts them
BundleContext.install_package(path) (experimental):
Installs all the modules found in the package at the given path
Based on install_visiting()
iPOPO
Components with a pelix.ipopo.auto_restart property set to True are automatically re-instantiated after their bundle has been updated.
Services
Remote Services: use services of a distant Pelix instance
Multicast discovery
XML-RPC transport (not fully usable)
JSON-RPC transport (based on a patched version of jsonrpclib)
EventAdmin: send events (a)synchronously
iPOPO 0.4
Version 0.4 fixes many bugs and provides new features:
Pelix
create_framework() utility method
The framework has been refactored, allowing more efficient services and events handling
iPOPO
A component can provide multiple services
A service controller can be injected for each provided service, to activate or deactivate its registration
Dependency injection and service providing mechanisms have been refactored, using a basic handler concept.
Services
Added a HTTP service component, using the concept of servlet
Added an extensible shell, interactive and remote, simplifying the usage of a framework instance
iPOPO 0.3
Packages have been renamed. As the project goes public, it may not have relations to isandlaTech projects anymore.
Previous name |
New name |
---|---|
psem2m |
pelix |
psem2m.service.pelix |
pelix.framework |
psem2m.component |
pelix.ipopo |
psem2m.component.ipopo |
pelix.ipopo.core |
iPOPO 0.2
Version 0.2 is the first public release, under GPLv3 license (see LICENSE).
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.