Skip to content
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

Java 8 support? #738

Closed
rmannibucau opened this issue Jun 25, 2014 · 28 comments
Closed

Java 8 support? #738

rmannibucau opened this issue Jun 25, 2014 · 28 comments

Comments

@rmannibucau
Copy link
Contributor

Hi

any plan to add a java 8 module using new language features (an API like scala module surely)?

@aslakhellesoy
Copy link
Contributor

Cucumber-JVM will have to compile and run on Java 7 at least a few more years.

We also want it to run on Java 8, but it cannot use Java 8 features that prevent it from compiling/running on Java 7.

Pull requests are welcome.

@rmannibucau
Copy link
Contributor Author

was more thinking to get a java 8 module (this one would be compiled with j8) where we could use lambda to build a dsl

If the full build needs to build with java 7 then just put this task as "to be done later" and we'll tackle it when java 8 will be ok as default (this is clearly not blocking ATM since cucumber works fine with its current API)

@aslakhellesoy
Copy link
Contributor

Oh I see. Using j8 lambdas would be awesome!

It's fairly easy to tell Maven to conditionally compile a module.

Would you be interested in helping out creating this module?

@rmannibucau
Copy link
Contributor Author

Sure, I'll try to PR over the week end

@rmannibucau
Copy link
Contributor Author

Hi started rmannibucau@d9fa4cc

Basically there are several open points but main ones are:

  1. is the API ok? https://github.com/rmannibucau/cucumber-jvm/blob/d9fa4cc5a2c5467fa5b7746acf695a64a045cfaa/java8/src/test/java/cucumber/runtime/java8/ScenarioTest.java - here the test has the steps but it is not mandatory
  2. it defines another ObjectFactory - should it be merged with java one - worse case we can proxy the java one since it is the same signature if we don't want to share the api between both modules?
  3. arguments are ATM obtained from Arguments interface (to allow java 8 to match the lambda with the expected type), how to handle DataTable, and all convertions?

@rmannibucau
Copy link
Contributor Author

Pushed another commit where the builder API is better and we don't need anymore this ThreadLocal: rmannibucau@91739c5

another nice thing is now build works on java 7 too

so only 2 and 3 needs to be fixed and we can also merge it with java modules directly (not yet done, I still use java8 module of my fork as a sandbox)

@rmannibucau
Copy link
Contributor Author

Fixed lifecycle issue in rmannibucau@6c32061

@rmannibucau
Copy link
Contributor Author

Finally merged both modules: rmannibucau@e603698

@aslakhellesoy
Copy link
Contributor

@rmannibucau any idea how we can achieve an API like this?

Given("I have (\\d+) cukes in my (.*)", (int count, String what) -> {
});

I have played around with Java8 lambdas, but it doesn't seem like it is possible to let the user decide the signature of the parameter list like this. This is the first time I have played with Java8, so I might be missing something. It would be great if it were possible, since it would let us use the automatic type conversion logic that we're using for java 6/7.

I'm assuming you have run into the same problem with signatures and I'm guessing this is why you have introduced the Arguments interface.

I did try to make several generic interfaces in the hope that users could use one of those, but it doesn't seem to work:

https://twitter.com/aslak_hellesoy/status/506359141544509440
https://gist.github.com/aslakhellesoy/3678beba60c109eacbe5

(I'll push my code later)

Any ideas?

@rmannibucau
Copy link
Contributor Author

That's sadly the case and why I introduced Arguments API. Lambdas (java 8 ones) are strongly typed impl so you can't change the signature (if you check my java 7 test it is 100% equivalent and since it uses interfaces you can't change the signature).

@aslakhellesoy
Copy link
Contributor

@rmannibucau I just updated my gist to make it a little more clear how I want to to work. It works nicely with anonymous inner classes, but not with lambdas. Any idea how to make it work?

https://gist.github.com/aslakhellesoy/3678beba60c109eacbe5

@rmannibucau
Copy link
Contributor Author

that's because of type erasure I think and the way the JVM generates lambdas ATM (can change). I wouldn't go this way since even if it would be working it could be broken in a minor java 8 release.

The feature you expect is under discussion for java 9 AFAIK

An alternative today would be to have N functional interfaces (BTW @FunctionalInterface is useless) so then it can match the closer one.

@aslakhellesoy
Copy link
Contributor

My plan was to have N functional interfaces (arity 0, arity 1 ... arity 9). That should be sufficient.
But in order to support different types (Integer, String, Long etc) there would be an explosion of signature combinations. Not doable in practice.

If we go your route with Arguments I'd like to see a arguments.convert(int index, java.lang.reflect.Type) method on it. It should use the existing conversion logic already present in Cucumber JVM.

@rmannibucau
Copy link
Contributor Author

Yeah exactly. convert is more or less the arg(Transformer) method.

My first version had the index but it makes it verbose and often you want just next item so maybe we can support arg(xxx) and arg(xxx, index).

I didn't find a nice way to reuse existing conversion but I don't know it enough I guess.

To end with java ability to find it, here is the bytecode:

  public static void main(java.lang.String[]) throws java.lang.Exception;
    Code:
       0: invokedynamic #27,  0             // InvokeDynamic #0:call:()LTypeTest$Block;
       5: invokestatic  #28                 // Method instantitesLambdaArgBasedOnGenericType (LTypeTest$Block;)V
       8: return   

So no generic info :(

@aslakhellesoy
Copy link
Contributor

On the other hand, if users have to do this:

Given("I have (\\d+) cukes in my (.*)", (Arguments args) -> {
    int cukes = args.convert(0, Integer.class);
    String what = args.convert(1, String.class);
});

...then I'm not so sure I'm in love with the use of Java8 lambdas for Cucumber's DSL. It seems very clunky.

@aslakhellesoy
Copy link
Contributor

Oh I see. Yes we could do this:

Given("I have (\\d+) cukes in my (.*)", (Arguments args) -> {
    int cukes = args.shift(Integer.class);
    String what = args.shift(String.class);
});

Still not very pretty.

BTW - shift is like pop, but from the beginning of a list. Inspired from various scripting languages' shift method. It's a little nicer than .remove(0).

@rmannibucau
Copy link
Contributor Author

shift works for me too

For standard/basic types I don't expect convert to be called:

int number = args.shiftInt();

That's the main issue with lambdas but once this handled it is really nice.

For basic types we can surely generate them in the Generator.groovy so wonder if that's a blocker.

Having a single type (Arguments) is cool cause you don't need to specify its type:

Given("I have (\\d+) cukes in my (.*)", (args) -> {
    int cukes = args.xxx(...);
});

@aslakhellesoy
Copy link
Contributor

@rmannibucau I have created a branch for Java8 in the main repo, and a WIP pull request: #767

This branch implements all the Java8 support in the java module - the java8 module is exclusively for the generated i18n lambda DSL.

I prefer this build structure. Can you carry on your work by branching off from this? It would be nice to add your recent improvements. I'm still undecided on whether we should use Arguments as discussed in #767 or if we should have a String-only "vararg" style as on my branch. (We'd have to provide an easy static API for conversion if we do this).

@rmannibucau
Copy link
Contributor Author

Well about Arguments: I'm like you ;)

About the dsl I think last version is better (since it works on java 7 too): do you want me to backport it? That said java8 module doesn't make any sense anymore.

@aslakhellesoy
Copy link
Contributor

With some help from @danielbodart I updated the gist: https://gist.github.com/aslakhellesoy/3678beba60c109eacbe5

Pretty amazing.

I'll update the #767 PR to use this technique.

@rmannibucau
Copy link
Contributor Author

Sound great, it means it can work with java 7 with new MyCallback() and java 8 with this solution! Only issue is you can't handle multiple params then

@rmannibucau
Copy link
Contributor Author

Hi

any move on it? maybe SerializedLambda hack is better for java 8 but then it doesn't work on java 7 at all

any news on the fluent DSL proposal?

@aslakhellesoy
Copy link
Contributor

I work Fridays on open source. Will take a week or two before I have time next time.

@danielbodart
Copy link

Hey Aslak, someone on stack overflow pointed out you can make the method
reference info look up a bit safer (So it works on both Oracle and Open JDK)

change

constantPool.getMemberRefInfoAt(20);

to

constantPool.getMemberRefInfoAt(constantPool.size() - 2);

On 12 September 2014 at 09:37, Aslak Hellesøy [email protected]
wrote:

I work Fridays on open source. Will take a week or two before I have time
next time.


Reply to this email directly or view it on GitHub
#738 (comment)
.

@aslakhellesoy
Copy link
Contributor

Thanks @danielbodart !

@ShijunK
Copy link

ShijunK commented Jan 5, 2017

Just find out that cucumber.runtime.ParameterInfo#fromTypes always using null for format and transformer.

Where is documentation of Java 8 support? If there is one, could it be updated to include a warning?

The following two annotations are not supported with Java 8 lambda step definitions 
cucumber.api.Format
cucumber.api.Transform

And if the following bug is the reason behind, now it is reported being fixed and backported to 8u112, any plan to adopt it?

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8147585

Or should I just switch back to method based implementation if need @Format and @Transform?

@zyablic
Copy link

zyablic commented May 22, 2017

Is it feasible to implement the following feature:

When("I click (.*)", Element::click);

Using method reference we can make the steps defining process more convenient.

@lock
Copy link

lock bot commented Oct 25, 2018

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@lock lock bot locked as resolved and limited conversation to collaborators Oct 25, 2018
mpkorstanje pushed a commit that referenced this issue Oct 4, 2019
Squashed commit of the following:

commit a50a5a7
Author: Aslak Hellesøy <[email protected]>
Date:   Fri Dec 12 12:48:11 2014 +0000

    Re-register stepdefs for each scenario in Java8

commit aa5ce2b
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Dec 11 13:28:28 2014 +0000

    Failing test for java8 state isolation

commit d8cce7b
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Dec 11 13:23:31 2014 +0000

    Clean up

commit ef1cf06
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Dec 11 12:07:04 2014 +0000

    Clean up the .io package

commit c38de32
Merge: 461beb9 cce054f
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Dec 9 15:49:35 2014 +0000

    Merge branch 'master' into java8

commit 461beb9
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Dec 9 15:48:47 2014 +0000

    More robust lookup of memberRef. Thanks @danielbodart. Ref #738

commit af0844e
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 13:14:39 2014 +0000

    [maven-release-plugin] prepare for next development iteration

commit 9a3bded
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 13:14:33 2014 +0000

    [maven-release-plugin] prepare release v1.2.0

commit 9e00d6d
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 13:05:30 2014 +0000

    Fix stupid javadoc errors that failed the build

commit 51117d0
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 12:36:32 2014 +0000

    Bump versions and misc cleanup

commit 8c0e4f1
Author: Björn Rasmusson <[email protected]>
Date:   Fri Oct 31 21:30:13 2014 +0100

    Update the java8 module to version 1.2.1-SNAPSHOT

    All other modules are updated when merged to master.

commit 363642a
Author: Björn Rasmusson <[email protected]>
Date:   Fri Oct 31 20:05:52 2014 +0100

    Create the java8 profile, remove @FunctionalInterface from java

    Move the java8 module to a separate maven profile. Remove the
    @FunctionalInterface annotation from the java module so it build on
    java7. Add a java8 job to the Travis configuration to build the java8
    module.

commit 9b5e9c0
Merge: 111e6f2 834f2bd
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 11:25:54 2014 +0000

    Merge branch 'master' into java8

commit 111e6f2
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 12:42:42 2014 +0100

    Generate more methods so we don't need casting in the lambda DSL

commit 1fa81c1
Merge: 0f518b1 8e232b4
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 11:03:18 2014 +0100

    Merge branch 'master' into java8

commit 0f518b1
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 09:38:20 2014 +0100

    Add Java8 hooks

commit e9375f1
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 08:00:49 2014 +0100

    Use generics for Java8 lamdas. Use @danielbodart's hack

commit 3c15868
Author: Aslak Hellesøy <[email protected]>
Date:   Mon Sep 1 13:09:42 2014 +0100

    More work on Java8

commit 48f4ba5
Author: Aslak Hellesøy <[email protected]>
Date:   Sun Aug 31 13:57:57 2014 +0100

    Java8 DSL, based on work by @rmannibucau. WIP.
mpkorstanje pushed a commit that referenced this issue Oct 4, 2019
Squashed commit of the following:

commit a50a5a7
Author: Aslak Hellesøy <[email protected]>
Date:   Fri Dec 12 12:48:11 2014 +0000

    Re-register stepdefs for each scenario in Java8

commit aa5ce2b
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Dec 11 13:28:28 2014 +0000

    Failing test for java8 state isolation

commit d8cce7b
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Dec 11 13:23:31 2014 +0000

    Clean up

commit ef1cf06
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Dec 11 12:07:04 2014 +0000

    Clean up the .io package

commit c38de32
Merge: 461beb9 cce054f
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Dec 9 15:49:35 2014 +0000

    Merge branch 'master' into java8

commit 461beb9
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Dec 9 15:48:47 2014 +0000

    More robust lookup of memberRef. Thanks @danielbodart. Ref #738

commit af0844e
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 13:14:39 2014 +0000

    [maven-release-plugin] prepare for next development iteration

commit 9a3bded
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 13:14:33 2014 +0000

    [maven-release-plugin] prepare release v1.2.0

commit 9e00d6d
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 13:05:30 2014 +0000

    Fix stupid javadoc errors that failed the build

commit 51117d0
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 12:36:32 2014 +0000

    Bump versions and misc cleanup

commit 8c0e4f1
Author: Björn Rasmusson <[email protected]>
Date:   Fri Oct 31 21:30:13 2014 +0100

    Update the java8 module to version 1.2.1-SNAPSHOT

    All other modules are updated when merged to master.

commit 363642a
Author: Björn Rasmusson <[email protected]>
Date:   Fri Oct 31 20:05:52 2014 +0100

    Create the java8 profile, remove @FunctionalInterface from java

    Move the java8 module to a separate maven profile. Remove the
    @FunctionalInterface annotation from the java module so it build on
    java7. Add a java8 job to the Travis configuration to build the java8
    module.

commit 9b5e9c0
Merge: 111e6f2 834f2bd
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 11:25:54 2014 +0000

    Merge branch 'master' into java8

commit 111e6f2
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 12:42:42 2014 +0100

    Generate more methods so we don't need casting in the lambda DSL

commit 1fa81c1
Merge: 0f518b1 8e232b4
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 11:03:18 2014 +0100

    Merge branch 'master' into java8

commit 0f518b1
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 09:38:20 2014 +0100

    Add Java8 hooks

commit e9375f1
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 08:00:49 2014 +0100

    Use generics for Java8 lamdas. Use @danielbodart's hack

commit 3c15868
Author: Aslak Hellesøy <[email protected]>
Date:   Mon Sep 1 13:09:42 2014 +0100

    More work on Java8

commit 48f4ba5
Author: Aslak Hellesøy <[email protected]>
Date:   Sun Aug 31 13:57:57 2014 +0100

    Java8 DSL, based on work by @rmannibucau. WIP.
mpkorstanje pushed a commit that referenced this issue Oct 4, 2019
Squashed commit of the following:

commit a50a5a7
Author: Aslak Hellesøy <[email protected]>
Date:   Fri Dec 12 12:48:11 2014 +0000

    Re-register stepdefs for each scenario in Java8

commit aa5ce2b
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Dec 11 13:28:28 2014 +0000

    Failing test for java8 state isolation

commit d8cce7b
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Dec 11 13:23:31 2014 +0000

    Clean up

commit ef1cf06
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Dec 11 12:07:04 2014 +0000

    Clean up the .io package

commit c38de32
Merge: 461beb9 cce054f
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Dec 9 15:49:35 2014 +0000

    Merge branch 'master' into java8

commit 461beb9
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Dec 9 15:48:47 2014 +0000

    More robust lookup of memberRef. Thanks @danielbodart. Ref #738

commit af0844e
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 13:14:39 2014 +0000

    [maven-release-plugin] prepare for next development iteration

commit 9a3bded
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 13:14:33 2014 +0000

    [maven-release-plugin] prepare release v1.2.0

commit 9e00d6d
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 13:05:30 2014 +0000

    Fix stupid javadoc errors that failed the build

commit 51117d0
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 12:36:32 2014 +0000

    Bump versions and misc cleanup

commit 8c0e4f1
Author: Björn Rasmusson <[email protected]>
Date:   Fri Oct 31 21:30:13 2014 +0100

    Update the java8 module to version 1.2.1-SNAPSHOT

    All other modules are updated when merged to master.

commit 363642a
Author: Björn Rasmusson <[email protected]>
Date:   Fri Oct 31 20:05:52 2014 +0100

    Create the java8 profile, remove @FunctionalInterface from java

    Move the java8 module to a separate maven profile. Remove the
    @FunctionalInterface annotation from the java module so it build on
    java7. Add a java8 job to the Travis configuration to build the java8
    module.

commit 9b5e9c0
Merge: 111e6f2 834f2bd
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 11:25:54 2014 +0000

    Merge branch 'master' into java8

commit 111e6f2
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 12:42:42 2014 +0100

    Generate more methods so we don't need casting in the lambda DSL

commit 1fa81c1
Merge: 0f518b1 8e232b4
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 11:03:18 2014 +0100

    Merge branch 'master' into java8

commit 0f518b1
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 09:38:20 2014 +0100

    Add Java8 hooks

commit e9375f1
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 08:00:49 2014 +0100

    Use generics for Java8 lamdas. Use @danielbodart's hack

commit 3c15868
Author: Aslak Hellesøy <[email protected]>
Date:   Mon Sep 1 13:09:42 2014 +0100

    More work on Java8

commit 48f4ba5
Author: Aslak Hellesøy <[email protected]>
Date:   Sun Aug 31 13:57:57 2014 +0100

    Java8 DSL, based on work by @rmannibucau. WIP.
mpkorstanje pushed a commit that referenced this issue Oct 4, 2019
Squashed commit of the following:

commit a50a5a7
Author: Aslak Hellesøy <[email protected]>
Date:   Fri Dec 12 12:48:11 2014 +0000

    Re-register stepdefs for each scenario in Java8

commit aa5ce2b
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Dec 11 13:28:28 2014 +0000

    Failing test for java8 state isolation

commit d8cce7b
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Dec 11 13:23:31 2014 +0000

    Clean up

commit ef1cf06
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Dec 11 12:07:04 2014 +0000

    Clean up the .io package

commit c38de32
Merge: 461beb9 cce054f
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Dec 9 15:49:35 2014 +0000

    Merge branch 'master' into java8

commit 461beb9
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Dec 9 15:48:47 2014 +0000

    More robust lookup of memberRef. Thanks @danielbodart. Ref #738

commit af0844e
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 13:14:39 2014 +0000

    [maven-release-plugin] prepare for next development iteration

commit 9a3bded
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 13:14:33 2014 +0000

    [maven-release-plugin] prepare release v1.2.0

commit 9e00d6d
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 13:05:30 2014 +0000

    Fix stupid javadoc errors that failed the build

commit 51117d0
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 12:36:32 2014 +0000

    Bump versions and misc cleanup

commit 8c0e4f1
Author: Björn Rasmusson <[email protected]>
Date:   Fri Oct 31 21:30:13 2014 +0100

    Update the java8 module to version 1.2.1-SNAPSHOT

    All other modules are updated when merged to master.

commit 363642a
Author: Björn Rasmusson <[email protected]>
Date:   Fri Oct 31 20:05:52 2014 +0100

    Create the java8 profile, remove @FunctionalInterface from java

    Move the java8 module to a separate maven profile. Remove the
    @FunctionalInterface annotation from the java module so it build on
    java7. Add a java8 job to the Travis configuration to build the java8
    module.

commit 9b5e9c0
Merge: 111e6f2 834f2bd
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 11:25:54 2014 +0000

    Merge branch 'master' into java8

commit 111e6f2
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 12:42:42 2014 +0100

    Generate more methods so we don't need casting in the lambda DSL

commit 1fa81c1
Merge: 0f518b1 8e232b4
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 11:03:18 2014 +0100

    Merge branch 'master' into java8

commit 0f518b1
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 09:38:20 2014 +0100

    Add Java8 hooks

commit e9375f1
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 08:00:49 2014 +0100

    Use generics for Java8 lamdas. Use @danielbodart's hack

commit 3c15868
Author: Aslak Hellesøy <[email protected]>
Date:   Mon Sep 1 13:09:42 2014 +0100

    More work on Java8

commit 48f4ba5
Author: Aslak Hellesøy <[email protected]>
Date:   Sun Aug 31 13:57:57 2014 +0100

    Java8 DSL, based on work by @rmannibucau. WIP.
mpkorstanje pushed a commit that referenced this issue Oct 4, 2019
Squashed commit of the following:

commit a50a5a7
Author: Aslak Hellesøy <[email protected]>
Date:   Fri Dec 12 12:48:11 2014 +0000

    Re-register stepdefs for each scenario in Java8

commit aa5ce2b
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Dec 11 13:28:28 2014 +0000

    Failing test for java8 state isolation

commit d8cce7b
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Dec 11 13:23:31 2014 +0000

    Clean up

commit ef1cf06
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Dec 11 12:07:04 2014 +0000

    Clean up the .io package

commit c38de32
Merge: 461beb9 cce054f
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Dec 9 15:49:35 2014 +0000

    Merge branch 'master' into java8

commit 461beb9
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Dec 9 15:48:47 2014 +0000

    More robust lookup of memberRef. Thanks @danielbodart. Ref #738

commit af0844e
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 13:14:39 2014 +0000

    [maven-release-plugin] prepare for next development iteration

commit 9a3bded
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 13:14:33 2014 +0000

    [maven-release-plugin] prepare release v1.2.0

commit 9e00d6d
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 13:05:30 2014 +0000

    Fix stupid javadoc errors that failed the build

commit 51117d0
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 12:36:32 2014 +0000

    Bump versions and misc cleanup

commit 8c0e4f1
Author: Björn Rasmusson <[email protected]>
Date:   Fri Oct 31 21:30:13 2014 +0100

    Update the java8 module to version 1.2.1-SNAPSHOT

    All other modules are updated when merged to master.

commit 363642a
Author: Björn Rasmusson <[email protected]>
Date:   Fri Oct 31 20:05:52 2014 +0100

    Create the java8 profile, remove @FunctionalInterface from java

    Move the java8 module to a separate maven profile. Remove the
    @FunctionalInterface annotation from the java module so it build on
    java7. Add a java8 job to the Travis configuration to build the java8
    module.

commit 9b5e9c0
Merge: 111e6f2 834f2bd
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 11:25:54 2014 +0000

    Merge branch 'master' into java8

commit 111e6f2
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 12:42:42 2014 +0100

    Generate more methods so we don't need casting in the lambda DSL

commit 1fa81c1
Merge: 0f518b1 8e232b4
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 11:03:18 2014 +0100

    Merge branch 'master' into java8

commit 0f518b1
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 09:38:20 2014 +0100

    Add Java8 hooks

commit e9375f1
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 08:00:49 2014 +0100

    Use generics for Java8 lamdas. Use @danielbodart's hack

commit 3c15868
Author: Aslak Hellesøy <[email protected]>
Date:   Mon Sep 1 13:09:42 2014 +0100

    More work on Java8

commit 48f4ba5
Author: Aslak Hellesøy <[email protected]>
Date:   Sun Aug 31 13:57:57 2014 +0100

    Java8 DSL, based on work by @rmannibucau. WIP.
mpkorstanje pushed a commit that referenced this issue Oct 4, 2019
Squashed commit of the following:

commit a50a5a7
Author: Aslak Hellesøy <[email protected]>
Date:   Fri Dec 12 12:48:11 2014 +0000

    Re-register stepdefs for each scenario in Java8

commit aa5ce2b
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Dec 11 13:28:28 2014 +0000

    Failing test for java8 state isolation

commit d8cce7b
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Dec 11 13:23:31 2014 +0000

    Clean up

commit ef1cf06
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Dec 11 12:07:04 2014 +0000

    Clean up the .io package

commit c38de32
Merge: 461beb9 cce054f
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Dec 9 15:49:35 2014 +0000

    Merge branch 'master' into java8

commit 461beb9
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Dec 9 15:48:47 2014 +0000

    More robust lookup of memberRef. Thanks @danielbodart. Ref #738

commit af0844e
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 13:14:39 2014 +0000

    [maven-release-plugin] prepare for next development iteration

commit 9a3bded
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 13:14:33 2014 +0000

    [maven-release-plugin] prepare release v1.2.0

commit 9e00d6d
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 13:05:30 2014 +0000

    Fix stupid javadoc errors that failed the build

commit 51117d0
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 12:36:32 2014 +0000

    Bump versions and misc cleanup

commit 8c0e4f1
Author: Björn Rasmusson <[email protected]>
Date:   Fri Oct 31 21:30:13 2014 +0100

    Update the java8 module to version 1.2.1-SNAPSHOT

    All other modules are updated when merged to master.

commit 363642a
Author: Björn Rasmusson <[email protected]>
Date:   Fri Oct 31 20:05:52 2014 +0100

    Create the java8 profile, remove @FunctionalInterface from java

    Move the java8 module to a separate maven profile. Remove the
    @FunctionalInterface annotation from the java module so it build on
    java7. Add a java8 job to the Travis configuration to build the java8
    module.

commit 9b5e9c0
Merge: 111e6f2 834f2bd
Author: Aslak Hellesøy <[email protected]>
Date:   Thu Oct 30 11:25:54 2014 +0000

    Merge branch 'master' into java8

commit 111e6f2
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 12:42:42 2014 +0100

    Generate more methods so we don't need casting in the lambda DSL

commit 1fa81c1
Merge: 0f518b1 8e232b4
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 11:03:18 2014 +0100

    Merge branch 'master' into java8

commit 0f518b1
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 09:38:20 2014 +0100

    Add Java8 hooks

commit e9375f1
Author: Aslak Hellesøy <[email protected]>
Date:   Tue Sep 2 08:00:49 2014 +0100

    Use generics for Java8 lamdas. Use @danielbodart's hack

commit 3c15868
Author: Aslak Hellesøy <[email protected]>
Date:   Mon Sep 1 13:09:42 2014 +0100

    More work on Java8

commit 48f4ba5
Author: Aslak Hellesøy <[email protected]>
Date:   Sun Aug 31 13:57:57 2014 +0100

    Java8 DSL, based on work by @rmannibucau. WIP.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants