Sample implementention of AspectJ-based SPI mechanisms for SPI-Fly
------------------------------------------------------------------
Key: ARIES-373
URL: https://issues.apache.org/jira/browse/ARIES-373
Project: Aries
Issue Type: Improvement
Environment: SPI-Fly
Reporter: Bartosz Kowalewski
David Bosschaert some time ago contributed a set of Equinox Aspects-based
examples showing how to use aspects to make SPI work inside an OSGi container.
I promised to contributed an enhanced verion of these mechanisms and integrate
these into SPI-Fly /Maven projects, Pax Exam, etc./. I'll attach a patch with
those changes in a moment.
Few important notes:
1. This not intended to be committed directly to Aries SVN. The only purpose of
this patch is to provide initial impl that could be used when doing additional
experiments and evaluation. The patch is dirty, I was in hurry when doing it
and there are lots of ugly pieces of code inside :). If we decide to go with
this approach, I'll prepare a clean patch once I'm back from vacation - in two
weeks' time.
2. The problems that were identified in the discussion about using AspectJ in
SPI-Fly haven't been resolved yet. This includes (but is not limited to):
- being tightly coupled to Equinox; this piece of code is based on Equinox
Aspects/Weaving; this will not work wit any other container
- inability to tell AspectJ to run an aspect on behalf of other bundle; each
bundle that wants to use these new features, needs to contain an aspect and
other settings like a Require-Bundle header
3. This patch introduces a SPI-Consumer header and enhances the SPI-Provider
header. A Pax Exam test show how to use this new functionality once you copy
the aspect to your bundle and configure Require-Bundle header.
4. I haven't found the latest version of Equinox Weaving in any of publicly
available Maven repos. That is why, these libraries will need to be copied
manually to the itests project (to the weaverBundles subdirectory). I'll attach
these bundles to this JIRA.
This patch is huge, so I guess there might some issues with applying it. If you
have problems with that, let me know and I'll try to generate it again.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.