Java 8

Mockito-Java8

info.solidsoft.mockito : mockito-java8

Mockito add-ons leveraging Java 8 and lambda expressions to make mocking even more compact

Last Version: 2.5.0

Release Date:

qala-datagen-java8types

io.qala.datagen : qala-datagen-java8types

Java lib to generate random data to facilitate Randomized Testing.

Last Version: 2.5.1

Release Date:

future-converter-spring-java8

net.javacrumbs.future-converter : future-converter-spring-java8

Sonatype helps open source projects to set up Maven repositories on https://oss.sonatype.org/

Last Version: 1.2.0

Release Date:

Super CSV Java 8 Extension

net.sf.supercsv : super-csv-java8

An extension for Super CSV for use with Java 8

Last Version: 2.4.0

Release Date:

Context propagation (java-8)

nl.talsmasoftware.context : context-propagation-java8

Standardized context propagation in concurrent systems.

Last Version: 1.0.11

Release Date:

Functional Java

org.functionaljava : functionaljava-java8

Functional Java is an open source library that supports closures for the Java programming language

Last Version: 4.8.1

Release Date:

Last Version: 0.0.19

Release Date:

Last Version: 0.0.19

Release Date:

ObjectosMultiRelease

br.com.objectos.oss-java8 : objectos-multirelease

Annotations for the multi-release processor and code generator

Last Version: 1.0.0

Release Date:

Objectos Collections :: List

br.com.objectos.oss-java8 : objectos-collections-list

The Objectos Collections List implementations and utilities.

Last Version: 3.1.0

Release Date:

Objectos Core :: Object

br.com.objectos.oss-java8 : objectos-core-object

Defines the Objectos Core Utilities for java.lang.Object instances. Provides utitities for implementing equals(Object), hashCode() and toString() methods. Also provides a utitliy that helps constructors and methods check if they were invoked correctly or not.

Last Version: 3.1.0

Release Date:

Objectos Core :: Throwable

br.com.objectos.oss-java8 : objectos-core-throwable

Defines the Objectos Core Utilities for java.lang.Throwable and java.lang.StackTraceElement instances.

Last Version: 3.1.0

Release Date:

Objectos FS

br.com.objectos.oss-java8 : objectos-fs

A Java multi-release library for filesystem access. Uses java.io for Java6 and java.nio.file for Java7+ while providing the same public API.

Last Version: 3.1.0

Release Date:

cherry-java8

io.magentys : cherry-java8

A syntactical sugar project for BDD oriented tests

Last Version: 1.0.7

Release Date:

Last Version: 1.0.3

Release Date:

Last Version: 1.4.11_1

Release Date:

Last Version: 1.0

Release Date:

Last Version: 1.0.0

Release Date:

Objectos Collections :: base

br.com.objectos.oss-java8 : objectos-collections-base

Provides base interfaces and implementations common to all Objectos Collections modules.

Last Version: 3.1.0

Release Date:

Objectos Core :: System

br.com.objectos.oss-java8 : objectos-core-system

System properties utilities. In particular it eases handling 'os.*' properties.

Last Version: 3.1.0

Release Date:

error-reporting-java

com.exasol : error-reporting-java8

Builder for exasol error codes.

Last Version: 0.4.1

Release Date:

Last Version: 1.1.1

Release Date:

Working day arithmetic (Java 8)

io.github.striped : wdcalc-java8

Utilities for calculation calendar days by workday and vise versa for Java 8. Not intended to be used / distributed by people who identify themselves as russian.

Last Version: 0.0.3

Release Date:

Axis1.4 Java8

org.langrid : axis-java8

Axis1.4 patched for Java8 bytecodes.

Last Version: 1.4-patch.2

Release Date:

Last Version: 3.3.2

Release Date:

Exasol SQL Statement Builder

com.exasol : sql-statement-builder-java8

This module provides a Builder for SQL statements that helps creating the correct structure and validates variable parts of the statements.

Last Version: 4.5.0

Release Date:

Last Version: 1.0.0

Release Date:

Last Version: 1.0.0

Release Date:

Objectos Collections :: Map

br.com.objectos.oss-java8 : objectos-collections-map

The Objectos Collections Map implementations and utilities.

Last Version: 3.1.0

Release Date:

Objectos Collections :: Set

br.com.objectos.oss-java8 : objectos-collections-set

The Objectos Collections Set implementations and utilities.

Last Version: 3.1.0

Release Date:

Objectos Core :: Runtime

br.com.objectos.oss-java8 : objectos-core-runtime

Provides utilities for the java.lang.Runtime class, includes a facility for running operations in a shutdown hook.

Last Version: 3.1.0

Release Date:

Objectos Core :: Service

br.com.objectos.oss-java8 : objectos-core-service

Defines the Objectos Core Service API. Provides an interface for defining a service and a static utility class for service instances. Service is any class whose instances must be started during an application initialization and must be stopped at the application shutdown.

Last Version: 3.1.0

Release Date:

Last Version: 3.1.0

Release Date:

pact-jvm-consumer-java8_2.12

au.com.dius : pact-jvm-consumer-java8_2.12

# pact-jvm-consumer-java8 Provides a Java8 lambda based DSL for use with Junit to build consumer tests. # A Lambda DSL for Pact This is an extension for the pact DSL provided by [pact-jvm-consumer](../pact-jvm-consumer). The difference between the default pact DSL and this lambda DSL is, as the name suggests, the usage of lambdas. The use of lambdas makes the code much cleaner. ## Why a new DSL implementation? The lambda DSL solves the following two main issues. Both are visible in the following code sample: ```java new PactDslJsonArray() .array() # open an array .stringValue("a1") # choose the method that is valid for arrays .stringValue("a2") # choose the method that is valid for arrays .closeArray() # close the array .array() # open an array .numberValue(1) # choose the method that is valid for arrays .numberValue(2) # choose the method that is valid for arrays .closeArray() # close the array .array() # open an array .object() # now we work with an object .stringValue("foo", "Foo") # choose the method that is valid for objects .closeObject() # close the object and we're back in the array .closeArray() # close the array ``` ### The existing DSL is quite error-prone Methods may only be called in certain states. For example `object()` may only be called when you're currently working on an array whereas `object(name)` is only allowed to be called when working on an object. But both of the methods are available. You'll find out at runtime if you're using the correct method. Finally, the need for opening and closing objects and arrays makes usage cumbersome. The lambda DSL has no ambiguous methods and there's no need to close objects and arrays as all the work on such an object is wrapped in a lamda call. ### The existing DSL is hard to read When formatting your source code with an IDE the code becomes hard to read as there's no indentation possible. Of course, you could do it by hand but we want auto formatting! Auto formatting works great for the new DSL! ```java array.object((o) -> { o.stringValue("foo", "Foo"); # an attribute o.stringValue("bar", "Bar"); # an attribute o.object("tar", (tarObject) -> { # an attribute with a nested object tarObject.stringValue("a", "A"); # attribute of the nested object tarObject.stringValue("b", "B"); # attribute of the nested object }) }); ``` ## Installation ### Maven ``` <dependency> <groupId>au.com.dius</groupId> <artifactId>pact-jvm-consumer-java8_2.12</artifactId> <version>${pact.version}</version> </dependency> ``` ## Usage Start with a static import of `LambdaDsl`. This class contains factory methods for the lambda dsl extension. When you come accross the `body()` method of `PactDslWithProvider` builder start using the new extensions. The call to `LambdaDsl` replaces the call to instance `new PactDslJsonArray()` and `new PactDslJsonBody()` of the pact library. ```java io.pactfoundation.consumer.dsl.LambdaDsl.* ``` ### Response body as json array ```java import static io.pactfoundation.consumer.dsl.LambdaDsl.newJsonArray; ... PactDslWithProvider builder = ... builder.given("some state") .uponReceiving("a request") .path("/my-app/my-service") .method("GET") .willRespondWith() .status(200) .body(newJsonArray((a) -> { a.stringValue("a1"); a.stringValue("a2"); }).build()); ``` ### Response body as json object ```java import static io.pactfoundation.consumer.dsl.LambdaDsl.newJsonBody; ... PactDslWithProvider builder = ... builder.given("some state") .uponReceiving("a request") .path("/my-app/my-service") .method("GET") .willRespondWith() .status(200) .body(newJsonBody((o) -> { o.stringValue("foo", "Foo"); o.stringValue("bar", "Bar"); }).build()); ``` ### Examples #### Simple Json object When creating simple json structures the difference between the two approaches isn't big. ##### JSON ```json { "bar": "Bar", "foo": "Foo" } ``` ##### Pact DSL ```java new PactDslJsonBody() .stringValue("foo", "Foo") .stringValue("bar", "Bar") ``` ##### Lambda DSL ```java newJsonBody((o) -> { o.stringValue("foo", "Foo"); o.stringValue("bar", "Bar"); }).build(); ``` #### An array of arrays When we come to more complex constructs with arrays and nested objects the beauty of lambdas become visible! ##### JSON ```json [ ["a1", "a2"], [1, 2], [{"foo": "Foo"}] ] ``` ##### Pact DSL ```java new PactDslJsonArray() .array() .stringValue("a1") .stringValue("a2") .closeArray() .array() .numberValue(1) .numberValue(2) .closeArray() .array() .object() .stringValue("foo", "Foo") .closeObject() .closeArray(); ``` ##### Lambda DSL ```java newJsonArray((rootArray) -> { rootArray.array((a) -> a.stringValue("a1").stringValue("a2")); rootArray.array((a) -> a.numberValue(1).numberValue(2)); rootArray.array((a) -> a.object((o) -> o.stringValue("foo", "Foo"))); }).build(); ``` `object` is a reserved word in Kotlin. To allow using the DSL without escaping, a Kotlin extension `newObject` is available: ```kotlin newJsonArray { rootArray -> rootArray.array { a -> a.stringValue("a1").stringValue("a2") } rootArray.array { a -> a.numberValue(1).numberValue(2) } rootArray.array { a -> a.newObject { o -> o.stringValue("foo", "Foo") } } }.build(); ```

Last Version: 3.6.15

Release Date:

jQAssistant Java 8 Plugin

com.buschmais.jqassistant.plugin : java8

Plugin for jQAssistant to be able to scan and to analyze Java 8 related artifacts.

Last Version: 1.9.0

Release Date:

annotations-java8

com.github.adedayo.intellij.sdk : annotations-java8

A packaging of the IntelliJ Community Edition annotations-java8 library. This is release number 1 of trunk branch 142.

Last Version: 142.1

Release Date:

Last Version: 1.6.1

Release Date:

Fernet Java

com.macasaet.fernet : fernet-java8

A Java implementation of the Fernet encrypted token specification.

Last Version: 1.5.0

Release Date:

Dropwizard with Java 8 support

io.dropwizard.modules : dropwizard-java8

Addon bundle for Dropwizard to support Java 8 features

Last Version: 0.9.0-1

Release Date:

Tyrus Java8 Client Extension

org.glassfish.tyrus.ext : tyrus-client-java8

Tyrus is the reference implementation of Java API for WebSocket (JSR-356)

Last Version: 2.1.0-M4

Release Date:

jsqlbox-java8

com.github.drinkjava2 : jsqlbox-java8

This is the java8 version of jSqlBox

Last Version: 3.0.0

Release Date: