Download JAR files tagged by accross with all dependencies
microdocs-core-java from group com.maxxton (version 3.0.0)
MicroDocs core functionalities to share accross various projects
0 downloads
Artifact microdocs-core-java
Group com.maxxton
Version 3.0.0
Last update 21. October 2021
Organization not specified
URL https://github.com/MaxxtonGroup/microdocs
License The Apache Software License, Version 2.0
Dependencies amount 2
Dependencies jackson-databind, unirest-java,
There are maybe transitive dependencies!
Group com.maxxton
Version 3.0.0
Last update 21. October 2021
Organization not specified
URL https://github.com/MaxxtonGroup/microdocs
License The Apache Software License, Version 2.0
Dependencies amount 2
Dependencies jackson-databind, unirest-java,
There are maybe transitive dependencies!
opentracing-spanmanager from group io.opentracing.contrib (version 0.0.5)
Manager of current span and propagating it accross threads
Group: io.opentracing.contrib Artifact: opentracing-spanmanager
Show all versions Show documentation Show source
Show all versions Show documentation Show source
0 downloads
Artifact opentracing-spanmanager
Group io.opentracing.contrib
Version 0.0.5
Last update 05. May 2017
Organization not specified
URL https://github.com/opentracing-contrib/java-spanmanager
License Apache License, Version 2.0
Dependencies amount 2
Dependencies opentracing-api, opentracing-noop,
There are maybe transitive dependencies!
Group io.opentracing.contrib
Version 0.0.5
Last update 05. May 2017
Organization not specified
URL https://github.com/opentracing-contrib/java-spanmanager
License Apache License, Version 2.0
Dependencies amount 2
Dependencies opentracing-api, opentracing-noop,
There are maybe transitive dependencies!
fabric3-messaging from group org.codehaus.fabric3 (version 0.6.5)
Group: org.codehaus.fabric3 Artifact: fabric3-messaging
Show all versions Show documentation Show source
Show all versions Show documentation Show source
0 downloads
localian from group com.infinum.localian (version 1.1.0)
Group: com.infinum.localian Artifact: localian
Show all versions Show documentation
Show all versions Show documentation
There is no JAR file uploaded. A download is not possible! Please choose another version.
0 downloads
flex-lock from group com.nofacepress (version 1.0.1)
Simple generic lock interface, designed for remote locking accross network nodes.
0 downloads
Artifact flex-lock
Group com.nofacepress
Version 1.0.1
Last update 03. March 2020
Organization No Face Press, LLC
URL https://github.com/nofacepress/flex-lock
License Apache License, Version 2.0
Dependencies amount 1
Dependencies commons-dbcp2,
There are maybe transitive dependencies!
Group com.nofacepress
Version 1.0.1
Last update 03. March 2020
Organization No Face Press, LLC
URL https://github.com/nofacepress/flex-lock
License Apache License, Version 2.0
Dependencies amount 1
Dependencies commons-dbcp2,
There are maybe transitive dependencies!
component-runtime-junit-base from group org.talend.sdk.component (version 10.57.0)
Some JUnit utilities, reused accross the other testing module.
IMPORTANT: this module must not depend on the runtime/framework.
Group: org.talend.sdk.component Artifact: component-runtime-junit-base
Show all versions Show documentation Show source
Show all versions Show documentation Show source
0 downloads
Artifact component-runtime-junit-base
Group org.talend.sdk.component
Version 10.57.0
Last update 12. May 2023
Organization not specified
URL Not specified
License not specified
Dependencies amount 0
Dependencies No dependencies
There are maybe transitive dependencies!
Group org.talend.sdk.component
Version 10.57.0
Last update 12. May 2023
Organization not specified
URL Not specified
License not specified
Dependencies amount 0
Dependencies No dependencies
There are maybe transitive dependencies!
core-uber from group eu.mais-h.mathsync (version 0.6.2)
0 downloads
core from group eu.mais-h.mathsync (version 0.6.2)
0 downloads
parent from group eu.mais-h.mathsync (version 0.6.2)
Group: eu.mais-h.mathsync Artifact: parent
Show all versions
Show all versions
There is no JAR file uploaded. A download is not possible! Please choose another version.
0 downloads
pact-jvm-consumer-java8_2.12 from group au.com.dius (version 3.6.15)
# 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();
```
Group: au.com.dius Artifact: pact-jvm-consumer-java8_2.12
Show all versions Show documentation Show source
Show all versions Show documentation Show source
0 downloads
Artifact pact-jvm-consumer-java8_2.12
Group au.com.dius
Version 3.6.15
Last update 29. April 2020
Organization not specified
URL https://github.com/DiUS/pact-jvm
License Apache 2
Dependencies amount 1
Dependencies pact-jvm-consumer_2.12,
There are maybe transitive dependencies!
Group au.com.dius
Version 3.6.15
Last update 29. April 2020
Organization not specified
URL https://github.com/DiUS/pact-jvm
License Apache 2
Dependencies amount 1
Dependencies pact-jvm-consumer_2.12,
There are maybe transitive dependencies!
Page 1 from 2 (items total 13)
© 2015 - 2024 Weber Informatics LLC | Privacy Policy