Gang,
I have previously suggested that we migrate to Java 8 right away, and embrace a world of lambdas, streaming and many other jolly bits.
So, I have created a 3.0 branch, which currently has the following large changes to it;
a. Removed Function, Function2 and Specification from org.qi4j.functional, since they are now Function, BiFunction and Predicate in Java 8.
b. Removed dependency on Joda Time, and replaced with Java Time API. Biggest work here is in the DCI sample from Marc Grue, and I am not sure I have gotten it right. I am also dropping support for non-ISO8601 date formats. People should be made to conform.
So far there are several testcase that are failing and I am chasing them down as we speak. I think some of these are not due to my changes, but is in 'develop' branch as well (confirm?), for instance org.qi4j.regression.qi377.IssueTest
Next steps involve
a. Replacing the very very many many anonymous classes with lambdas, to make the code a lot neater.
b. Looking at other superfluous code in org.qi4j.functional
c. Convert
org.qi4j.io to use the Stream API where suitable.
d. Disallow java.util.Date, java.util.Calendar and java.util.TimeZone (others?) as method arguments or parameters in Composite interfaces, to force people to do the right thing. Possibly provide an override mechanism for external libraries.
e. Getting rid of all @deprecated usages. We want to be ahead of curve...
f. Fixing all javadoc warnings.
g. Improving documentation (never ending).
h. And probably much more.
A lot of good fun. Looking forward to comments and opinions.
Cheers
--
Niclas Hedhman, Software Developer