Ipopo

Latest version: v3.0.0

Safety actively analyzes 714815 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 5

0.7.0

:::{admonition} Release Date
:class: info

2017-12-30
:::

Project

* Removed Python 2.6 compatibility code
* New version of the logo, with SVG sources in the repository
* Added some tests for `install_package()`

Pelix

* When a bundle is stopped, the framework now automatically releases
the services it consumed. This was required to avoid stale
references when using (prototype) service factories.

**WARNING:** this can lead to issues if you were using stale references to
pass information from one bundle version to another (which is bad).
* Added support for Prototype Service Factories, which were missing
from issue [Service Factories (75)](https://github.com/tcalmant/ipopo/issues/75).
* Handle deprecation of the `imp` module (see 85)
* Added a `delete()` method to the `Framework` class.
The `FrameworkFactory` class can now be fully avoided by developers.

0.6.5

:::{admonition} Release Date
:class: info

2017-09-17
:::

Project

* Project documentation migrated to [Read The Docs](https://ipopo.readthedocs.io/)
as the previous documentation server crashed.
All references to the previous server (`coderxpress.net`) have been removed.
* The documentation is being completely rewritten while it is converted from
Dokuwiki to Sphinx.
* Removed Pypy 3 from Travis-CI/Tox tests, as it is not compatible with pip.

Pelix

* The import path normalization now ensures that the full path of the
initial working directory is stored in the path, and that the
current working directory marker (empty string) is kept as the first
entry of the Python path.
* Merged [65](https://github.com/tcalmant/ipopo/pull/65), to ignore import
errors when normalizing the Python path.
* Merged [68](https://github.com/tcalmant/ipopo/pull/68), correcting the
behaviour of the thread pool.

iPOPO

* The `Validate` method of components is now always called after the
bundle activator has returned.
([66](https://github.com/tcalmant/ipopo/issues/66))
* Added a `get_instance(name)` method to access to the component
instance object by its name.
([74](https://github.com/tcalmant/ipopo/issues/74))

HTTP

* Added some utility methods to `HttpServletRequest`:
* `get_command()`: get the HTTP command of the request
* `get_prefix_path()`: get the servlet prefix path
* `get_sub_path()`: get the part of the path corresponding to the servlet
(*i.e.* without the prefix path)
* `get_servlet()` now returns the servlet prefix along with the
servlet and the server parameters.
* Added a `pelix.https` service property and an `is_https()` service
method to indicate that the server uses HTTPS.
* Added a utility module, `pelix.http.routing`, which eases the
routing of HTTP requests with decorators like `Http`, `HttpGet`, ...
* Merged [70](https://github.com/tcalmant/ipopo/pull/70), avoiding remote
HTTP servlets to be used by the local HTTP server.

Remote Services

* JSON-RPC and XML-RPC transports providers now support HTTPS.
* Added a [Redis](https://redis.io/)-based discovery provider, working
with all HTTP-based transport providers.

Shell

* Added the *Configuration Handler*, which allows to give a JSON file
to set the initial configuration of a framework: properties,
bundles, instances, ...

0.6.4

:::{admonition} Release Date
:class: info

2016-06-12
:::

iPOPO

* Added `RequiresVariableFilter`, which works like `Requires` but
also supports the use of component properties as variables in LDAP
filter.
* Added `HiddenProperty`, which extends `Property`, but ensures that
the property key and value won't be seen in the description API nor
in the shell. (it will stay visible using the standard reflection
API of Python)

HTTP Service

* The HTTP basic component now support HTTPS. It is activated when
given two files (a certificate and a key) in its component
properties. A password can also be given if the key file is
encrypted. This is a prototype feature and should be used carefully.
Also, it should not be used with remote services.

Services

* A new *log service* has been added to this version, though the
`pelix.misc.log` bundle. It provides the OSGi API to log traces, but
also keeps track of the traces written with the `logging` module.
The log entries can be accessed locally (but not through remote
services). They can be printed in the shell using commands provided
by pelix.shell.log.

0.6.3

:::{admonition} Release Date
:class: info

2015-10-23
:::

Project

* iPOPO now has a logo ! (thanks to debbabi)
* README file has been rewritten
* Better PEP-8 compliance
* Updated `jsonrpclib-pelix` requirement version to 0.2.6

Framework

* Optimization of the service registry (less dictionaries, use of sets, ...)
* Added the `hide_bundle_services()` to the service registry. It is by
the framework to hide the services of a stopping bundle from
`get_service_reference` methods, and before those services will be
unregistered.
* Removed the deprecated `ServiceEvent.get_type()` method

iPOPO

* Optimization of StoredInstance (handlers, use of sets, ...)

HTTP Service

* Added a `is_header_set()` method to the HTTPServletResponse bean.
* Response headers are now sent on `end_headers()`, not on
`set_header()`, to avoid duplicate headers.
* The request queue size of the basic HTTP server can now be set as a
component property (`pelix.http.request_queue_size`)

Remote Services

* Added support for keyword arguments in most of remote services
transports (all except XML-RPC)
* Added support for `pelix.remote.export.only` and
`pelix.remote.export.none` service properties.
`pelix.remote.export.only` tells the exporter to export the given
specifications only, while `pelix.remote.export.none` forbids the
export of the service.

Shell

* The `pelix.shell.console` module can now be run as a main script
* Added the *report* shell command
* Added the name of *varargs* in the signature of commands
* Corrected the signature shown in the help description for static methods
* Corrected the *thread* and *threads* shell commands for Pypy

Utilities

* Updated the MQTT client to follow the new API of Eclipse Paho MQTT Client

Tests

* Travis-CI: Added Python 3.5 and Pypy3 targets
* Better configuration of coverage
* Added tests for the remote shell
* Added tests for the MQTT client and for MQTT-RPC

0.6.2

:::{admonition} Release Date
:class: info

2015-06-17
:::

iPOPO

* The properties of a component can be updated when calling the
`retry_erroneous()` method. This allows to modify the configuration
of a component before trying to validate it again (HTTP port, ...).
* The `get_instance_details()` dictionary now always contains a
*filter* entry for each of the component requirement description,
even if not filter has been set.

HTTP Service

* Protection of the `ServletRequest.read_data()` method against empty
or invalid `Content-Length` headers

Shell

* The `ipopo.retry` shell command accepts properties to be reconfigure
the instance before trying to validate it again.
* The bundle commands (*start*, *stop*, *update*, *uninstall*) now
print the name of the bundle along with its ID.
* The `threads` and `threads` shell commands now accept a stack depth
limit argument.

0.6.1

:::{admonition} Release Date
:class: info

2015-04-20
:::

iPOPO

* The stack trace of the exception that caused a component to be in
the `ERRONEOUS` state is now kept, as a string. It can be seen
through the `instance` shell command.

Shell

* The command parser has been separated from the shell core service.
This allows to create custom shells without giving access to Pelix
administration commands.
* Added `cd` and `pwd` shell commands, which allow changing the
working directory of the framework and printing the current one.
* Corrected the encoding of the shell output string, to avoid
exceptions when printing special characters.

Remote Services

* Corrected a bug where an imported service with the same endpoint
name as an exported service could be exported after the
unregistration of the latter.

Page 2 of 5

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.