[ 
https://issues.apache.org/jira/browse/ARIES-373?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bartosz Kowalewski updated ARIES-373:
-------------------------------------

    Attachment: aries-373-updated.patch

Notes:

1. This approach still lacks some features and I would call it a prototype. 
Some questions are still unanswered.

2. As it was mentioned above, there are following problems:
- this piece of code is based on Equinox Aspects/Weaving; this will not work 
with 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; that is why currently the itests 
project has its own copy of the aspect that was originally defined in the core 
project;

3. This only works with ServiceLoader.

4. AspectJ is set to print verbose information. Currently the aspect itself 
uses System.out.println() and printstacktrace() to print debug info.

5. The itests project is quite complex when it comes to test bundle generation. 
This causes a minor issue when running tests using Maven. Due to the fact that 
Maven initializes the test twice (first when the test set is identified and 
later when the test is invoked), some jars are left after the test is finished. 
This does not spoil anything, but looks ugly and must be investigated and fixed 
in the nearest future.

If you have problems with the patch, let me know and I'll try to 
help/regenerate it.

Thanks,
  Bartek

> 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
>         Attachments: aries-373-updated.patch, ARIES-373.patch, 
> org.aspectj.runtime-1.6.7.20100105084524.jar, 
> org.aspectj.weaver-1.6.7.20100105084524.jar, 
> org.eclipse.equinox.weaving.aspectj-1.0.0.200906171200.jar, 
> org.eclipse.equinox.weaving.hook-1.0.0.200905261348.jar
>
>
> 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 contribute an enhanced version 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 is 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.

Reply via email to