Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-users] Declare parents on interfaces - changed from 1.6 to 1.7

Hi All,

I have an aspect with these two ITDs:

 declare parents: IBaseInterface extends ISuperInterface;
 declare parents: BaseClass extends SuperClass;

The first one is setting a super-interface, the second a superclass.  Not sure if it matters, but BaseClass implements IBaseInterface and SuperClass implements ISuperInterface.

BaseClass and IBaseInterface are in a jar on the inpath.  SuperClass and ISuperInterface are in the sourceroots.

Using AspectJ 1.6.x, this works fine.  From 1.7.0 upwards, the first declare parents that extends the interface is simply ignored.  The second  that adds the superclass one is applied.

UNLESS remove the inpath and just add all the sources to the sourceroots.  Then it works.

So: 1.6, I can extend an interface that is supplied via the inpath; 1.7+, no dice.  Question is - did something change with declare parents in 1.7?

I have added verbosity and lint until I'm blue in the face, and it's as if the ITD simply doesn't exist.  I've checked the change list for 1.7.  And I've tested on versions 1.6.6, 1.6.10, 1.6.12, 1.7.0, 1.7.3, 1.7.4 and 1.8.0.  JDK 1.6 and sourcelevel 1.6 in all cases.

Given that I've spent all day troubleshooting this, I don't really want to throw away more time trying to create a test case if there's someone out there who will go "Oh, yeah, we rewrote module blah in 1.7".

Thanks in advance for any glimmers.

Jaime



Back to the top