Skip to content

Revisit spring-aspects 4.0.0 dependency on AspectJ 1.8.0.M1 [SPR-11248] #15873

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
spring-projects-issues opened this issue Dec 19, 2013 · 5 comments
Assignees
Labels
type: task A general task
Milestone

Comments

@spring-projects-issues
Copy link
Collaborator

spring-projects-issues commented Dec 19, 2013

Mark Janssen opened SPR-11248 and commented

spring-aspects 4.0.0 uses AspectJ 1.8.0.M1 which is compatible only with Java 8, which is unreleased at this time (http://eclipse.org/aspectj/doc/released/README-180.html).

A workaround is to locally exclude org.aspectj dependencies from the spring-aspects dependency.


Affects: 4.0 GA

Reference URL: 5ccbc80

Issue Links:

@spring-projects-issues
Copy link
Collaborator Author

Juergen Hoeller commented

On which basis do you assume that AspectJ 1.8.0.M1 is only compatible with Java 8? It should run fine on JDK 1.6 and 1.7 as well... Did you encounter concrete issues at runtime?

Juergen

@spring-projects-issues
Copy link
Collaborator Author

Mark Janssen commented

By looking at the README linked in the original file.

Apart from that, I'm really not looking forward to using milestone release dependencies in production.

@spring-projects-issues
Copy link
Collaborator Author

Juergen Hoeller commented

Point taken about the milestone nature of AspectJ 1.8; however, aside from the early Java 8 support, it's basically identical to AspectJ 1.7. Andy Clement, the AspectJ project lead, confirms that there are no issues with running it on JDK 1.6 and 1.7 either.

That said, we are generally aiming for a dependency on a production release. If that still takes a while, we might have to officially document how to replace that dependency with AspectJ 1.7 for anyone concerned there.

Note that the spring-aspects module itself has no dependencies on AspectJ 1.8 per se; it just happens to be built against it. We officially support running against AspectJ 1.6 and 1.7 as well, next to AspectJ 1.8 (even M1).

Juergen

@spring-projects-issues
Copy link
Collaborator Author

Andy Clement commented

Juergen pinged me to chip-in (as AspectJ project lead). Just confirming what has been said really. AspectJ 1.8.0.M1 passes all the same tests as the early 1.7 levels. The AspectJ testsuite is thousands of tests and they are the only thing used to verify the quality of a build. Every snapshot build must pass them all. And then a milestone is just a snapshot with a special name and a release is just a milestone with a special name. There are tests for numerous levels of Java, so AspectJ 1.8 will happily build 1.5/1.6/1.7/1.8 source code.

Will it have bugs, well yes, because it was based on a work-in-progress Eclipse Java8 compiler, but unless you are using it to build Java8 code you will be unlikely to trigger them. The Eclipse compiler has to pass 10s of thousands of tests for each build.

I do, however, understand the hesitancy around this being a milestone dependency but I can't make AspectJ 1.8 a release until Java8 is released.

@spring-projects-issues
Copy link
Collaborator Author

Juergen Hoeller commented

Let's consider this as resolved for the time being: either use AspectJ 1.8.0.M1 which we fully support - for the purposes of the spring-aspects module, that is - on Java 6 and 7 as well. Or explicitly switch that dependency to AspectJ 1.7 which Spring 4's spring-aspects module remains fully compatible with at runtime.

Juergen

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: task A general task
Projects
None yet
Development

No branches or pull requests

2 participants