Ipopo

Latest version: v1.0.2

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

Scan your dependencies

Page 3 of 5

0.6.0

***********

Project
=======

* The support of Python 2.6 has been removed


Utilities
=========

* The XMPP bot class now supports anonymous connections using SSL or StartTLS.
This is a workaround for
`issue 351 <https://github.com/fritzy/SleekXMPP/issues/351>`_
of SleekXMPP.

0.5.9

***********

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.

0.5.8

***********

Framework
=========

* ``FrameworkFactory.delete_framework()`` can be called with ``None`` or
without argument. This simplifies the clean up afters tests, etc.
* The list returned by ``Framework.get_bundles()`` is always sorted by
bundle ID.


iPOPO
=====

* Added the ``immediate_rebind`` option to the ``Requires`` decorator.
This indicates iPOPO to not invalidate then revalidate a component if a
service can replace an unbound required one. This option inly applies to
non-optional, non-aggregate requirements.


Shell
=====

* The I/O handler is now part of a ShellSession bean. The latter has the same
API as the I/O handler so there is no need to update existing commands.
I/O Handler write methods are now synchronized.
* The shell supports variables as arguments, e.g. ``echo $var``.
See `string.Template <https://docs.python.org/3/library/string.html#template-strings>`_
for more information. The Template used in Pelix Shell allows ``.`` (dot)
in names.
* A special variable ``$?`` stores the result of the last command which
returned a result, i.e. anything but None or False.
* Added *set* and *unset* commands to work with variables
* Added the *run* command to execute a script file.
* Added protection against ``AttributeError`` in *threads* and *thread*

0.5.7

***********

Project
=======

* Code review to be more PEP-8 compliant
* `jsonrpclib-pelix <https://pypi.python.org/pypi/jsonrpclib-pelix>`_ is now an
install requirement (instead of an optional one)


Framework
=========

* Forget about previous global members when calling ``Bundle.update()``. This
ensures to have a fresh dictionary of members after a bundle update
* Removed ``from pelix.constants import *`` in ``pelix.framework``:
only use ``pelix.constants`` to access constants


Remote Services
===============

* Added support for endpoint name reuse
* Added support for synonyms: specifications that can be used on the remote
side, or which describe a specification of another language
(e.g. a Java interface)
* Added support for a *pelix.remote.export.reject* service property: the
specifications it contains won't be exported, event if indicated in
*service.exported.interfaces*.
* Jabsorb-RPC:

* Use the common dispatch() method, like JSON-RPC

* MQTT(-RPC):

* Explicitly stop the reading loop when the MQTT client is disconnecting
* Handle unknown correlation ID


Shell
=====

* Added a ``loglevel`` shell command, to update the log level of any logger
* Added a ``--verbose`` argument to the shell console script
* Remote shell module can be ran as a script


HTTP
====

* Remove double-slashes when looking for a servlet


XMPP
====

* Added base classes to write a XMPP client based on
`SleekXMPP <http://sleekxmpp.com/>`_
* Added a XMPP shell interface, to control Pelix/iPOPO from XMPP


Miscellaneous
=============

* Added an IPv6 utility module, to setup double-stack and to avoids missing
constants bugs in Windows versions of Python
* Added a ``EventData`` class: it acts like ``Event``, but it allows to store
a data when setting the event, or to raise an exception in all callers of
``wait()``
* Added a ``CountdownEvent`` class, an ``Event`` which is set until a given
number of calls to ``step()`` is reached
* ``threading.Future`` class now supports a callback methods, to avoid to
actively wait for a result.

0.5.6

***********

Project
=======

* Added samples to the project repository
* Removed the static website from the repository

* Added the project to `Coveralls <https://coveralls.io/>`_
* 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 <https://github.com/wolfeidau/mqtt-rpc>`_
* Added a Jabsorb-RPC transport. Pelix can now use Java services and vice-versa,
using:

* `Cohorte Remote Services <https://github.com/isandlaTech/cohorte-remote-services>`_
* `Eclipse ECF <http://wiki.eclipse.org/ECF>`_ and the
`Jabsorb-RPC provider <https://github.com/isandlaTech/cohorte-remote-services/tree/master/org.cohorte.ecf.provider.jabsorb>`_


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.propagate* 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 <http://www.eclipse.org/paho/>`_
MQTT client, used in MQTT discovery and MQTT-RPC.

0.5.5

***********

Project
=======

The license of the iPOPO project is now an Apache License 2.0.


Framework
=========

* ``get_*_service_reference*()`` methods have a default LDAP filter set to
``None``. Only the service specification is required, event if set to
``None``.

* Added a context ``use_service(context, svc_ref)``, that allows to consume a
service in a ``with`` block:

.. code-block:: python

from pelix.utilities import use_service
with use_service(bundle_context, svc_ref) as svc:
svc.foo()

Service will be released automatically.


iPOPO
=====

* Added the *Handler Factory* pattern : all instance handlers are created by
their factory, called by iPOPO according to the handler IDs found in the
factory context.
This will simplify the creation of new handlers.

* Added a context ``use_ipopo(context)``, that allows to use the iPOPO service
in a ``with`` block:

.. code-block:: python

from pelix.ipopo.constants import use_ipopo
with use_ipopo(bundle_context) as ipopo:
ipopo.instantiate('my.factory', 'my.instance', {})

The iPOPO service will be released automatically.


Services
========

* Added the ConfigurationAdmin service
* Added the FileInstall service

Page 3 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.