You just CANNOT compile DS with Java 6 and CDI 2.0 on classpath. You'll get errors like this:
[ERROR] deltaspike/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/navigation/NavigationParameter.java:[24,-1] cannot access javax.enterprise.util.Nonbinding [ERROR] bad class file: javax/enterprise/util/Nonbinding.class(javax/enterprise/util:Nonbinding.class) [ERROR] class file has wrong version 52.0, should be 50.0 And Weld depends on CDI (suprisingly) and therefore brings in this version. Both, CDI 2.0 and Weld 3 require Java 8. So as long as you use Weld3 (from Beta1 version above) profile in DS, it will blow up. If you are suggesting to separate compilation (against prehistoric CDI version) and then run tests against different, then I am about -50 for that. It's a nasty workaround and a nice way to bloat POMs. Not to mention there might be other hindrances especially in Weld-only modules (where you will need that CDI 2.0) like Weld container control. In such case^, I will rather run our jobs with `-Djava.version=1.8` (effectively setting source and target to Java 8) and be done with it. Matej ----- Original Message ----- > From: "Romain Manni-Bucau" <[email protected]> > To: [email protected] > Cc: "Martin Kouba" <[email protected]> > Sent: Tuesday, December 20, 2016 10:44:11 AM > Subject: Re: DS and CDI 2.0? > > Romain Manni-Bucau > @rmannibucau <https://twitter.com/rmannibucau> | Blog > <https://blog-rmannibucau.rhcloud.com> | Old Blog > <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> > | > LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory > <https://javaeefactory-rmannibucau.rhcloud.com> > > 2016-12-20 10:26 GMT+01:00 Matej Novotny <[email protected]>: > > > Not sure I am following you - how would you fix this then? > > > > If you now take DS (master), and upgrade the CDI to 2.0.Beta1. Then have > > your JAVA_HOME point at 1.8 JDK. > > Try to compile (I ran Weld build ofc, so "mvn clean install -PWeld3 > > -Dweld.version=3.0.0.Beta1" but anything will do). > > This gives you a bunch of compilation errors in `deltaspike-core-api` such > > as: > > > > [ERROR] /home/manovotn/GitRepo/deltaspike/deltaspike/core/ > > api/src/main/java/org/apache/deltaspike/core/util/metadata/builder/ > > AnnotatedParameterImpl.java:[29,0] error: AnnotatedParameterImpl is not > > abstract and does not override abstract method <T>getAnnotations(Class<T>) > > in Annotated > > [ERROR] where T is a type-variable: > > [ERROR] T extends Annotation declared in method <T>getAnnotations(Class<T>) > > > > This is because CDI added default methods to interfaces which you > > implement. > > Unless I set -source and -target to 1.8 both, there is no way it sees the > > default method. > > > > > this way, adding a variable for source and target and > -Djava.compilation.version=xxx > > Or simply compiling with java 6 and running with java 8 tests - this > supposes weld is able to handle it but if not compatibility is broken which > is not an option for an EE spec. > > > > Matej > > > > ----- Original Message ----- > > > From: "Romain Manni-Bucau" <[email protected]> > > > To: [email protected] > > > Cc: "Martin Kouba" <[email protected]> > > > Sent: Tuesday, December 20, 2016 9:36:26 AM > > > Subject: Re: DS and CDI 2.0? > > > > > > Hi Matej, > > > > > > about running DS it should be fine with a jdk 8 (or maven toolchain using > > > java 6 to compile and 8 to run for weld 3 tests) > > > > > > About CDI 2.0 I think it is a bit early and discussions - IIRC - didnt > > lead > > > to any feature yet, just a "if we are blocked on 1 we can do a 2" but > > > nothing yet motivating it. That said time is the only blocker if we find > > > any feature deeply requiring CDI 2. > > > > > > > > > Romain Manni-Bucau > > > @rmannibucau <https://twitter.com/rmannibucau> | Blog > > > <https://blog-rmannibucau.rhcloud.com> | Old Blog > > > <http://rmannibucau.wordpress.com> | Github <https://github.com/ > > rmannibucau> > > > | > > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory > > > <https://javaeefactory-rmannibucau.rhcloud.com> > > > > > > 2016-12-20 9:33 GMT+01:00 Matej Novotny <[email protected]>: > > > > > > > Hello > > > > > > > > Since we got CDI 2.0 knocking on the door, I wanted to ask what are the > > > > plans for DS in this regard? > > > > > > > > ATM CDI 2.0.Beta1 is out and Weld 3.0.0.Beta1 will follow shortly. > > > > I tried building DS and running tests (with the above^) just out of > > habit, > > > > but I realized that won't work. > > > > Currently, DS has compilation source/target set to 1.6 and CDI 2.0 uses > > > > default methods hence requiring 1.8. > > > > > > > > So before rushing into any duck tape fixing, I would like to know, what > > > > are the plans? > > > > I recall there was some mail discussion about new branch, but I don't > > > > think there was any outcome. > > > > > > > > > > > > Regards > > > > Matej > > > > > > > > > >
