Versions of artifact au.com.dius:pact-jvm-provider-lein_2.11

pact-jvm-provider-lein_2.11

# Leiningen plugin to verify a provider [version 2.2.14+, 3.0.3+] Leiningen plugin for verifying pacts against a provider. The plugin provides a `pact-verify` task which will verify all configured pacts against your provider. ## To Use It ### 1. Add the plugin to your project plugins, preferably in it's own profile. ```clojure :profiles { :pact { :plugins [[au.com.dius/pact-jvm-provider-lein_2.11 "3.2.11" :exclusions [commons-logging]]] :dependencies [[ch.qos.logback/logback-core "1.1.3"] [ch.qos.logback/logback-classic "1.1.3"] [org.apache.httpcomponents/httpclient "4.4.1"]] }}} ``` ### 2. Define the pacts between your consumers and providers You define all the providers and consumers within the `:pact` configuration element of your project. ```clojure :pact { :service-providers { ; You can define as many as you need, but each must have a unique name :provider1 { ; All the provider properties are optional, and have sensible defaults (shown below) :protocol "http" :host "localhost" :port 8080 :path "/" :has-pact-with { ; Again, you can define as many consumers for each provider as you need, but each must have a unique name :consumer1 { ; pact file can be either a path or an URL :pact-file "path/to/provider1-consumer1-pact.json" } } } } } ``` ### 3. Execute `lein with-profile pact pact-verify` You will have to have your provider running for this to pass. ## Enabling insecure SSL For providers that are running on SSL with self-signed certificates, you need to enable insecure SSL mode by setting `:insecure true` on the provider. ```clojure :pact { :service-providers { :provider1 { :protocol "https" :host "localhost" :port 8443 :insecure true :has-pact-with { :consumer1 { :pact-file "path/to/provider1-consumer1-pact.json" } } } } } ``` ## Specifying a custom trust store For environments that are running their own certificate chains: ```clojure :pact { :service-providers { :provider1 { :protocol "https" :host "localhost" :port 8443 :trust-store "relative/path/to/trustStore.jks" :trust-store-password "changeme" :has-pact-with { :consumer1 { :pact-file "path/to/provider1-consumer1-pact.json" } } } } } ``` `:trust-store` is relative to the current working (build) directory. `:trust-store-password` defaults to `changeit`. NOTE: The hostname will still be verified against the certificate. ## Modifying the requests before they are sent Sometimes you may need to add things to the requests that can't be persisted in a pact file. Examples of these would be authentication tokens, which have a small life span. The Leiningen plugin provides a request filter that can be set to an anonymous function on the provider that will be called before the request is made. This function will receive the HttpRequest object as a parameter. ```clojure :pact { :service-providers { :provider1 { ; function that adds an Authorization header to each request :request-filter #(.addHeader % "Authorization" "oauth-token eyJhbGciOiJSUzI1NiIsIm...") :has-pact-with {

Artifact Version Name Latest uploaded at
2.5.0-beta.0 pact-jvm-provider-lein_2.11 2016-10-22 12:57:22 UTC
3.5.0-beta.4 pact-jvm-provider-lein_2.11 2017-05-14 11:51:49 UTC
3.3.10 pact-jvm-provider-lein_2.11 2017-05-18 04:03:31 UTC
3.4.0 pact-jvm-provider-lein_2.11 2017-05-18 05:39:56 UTC
3.5.0-rc.1 pact-jvm-provider-lein_2.11 2017-05-25 03:44:37 UTC
3.4.1 pact-jvm-provider-lein_2.11 2017-06-11 02:04:40 UTC
3.5.0-rc.2 pact-jvm-provider-lein_2.11 2017-06-11 07:14:44 UTC
3.5.0-rc.3 pact-jvm-provider-lein_2.11 2017-06-20 23:41:45 UTC
3.5.0 pact-jvm-provider-lein_2.11 2017-06-24 08:12:47 UTC
3.5.0-jre7 pact-jvm-provider-lein_2.11 2017-06-24 11:27:57 UTC
3.5.0-jre7.1 pact-jvm-provider-lein_2.11 2017-06-24 13:17:54 UTC
3.5.1-jre7.1 pact-jvm-provider-lein_2.11 2017-07-09 06:57:25 UTC
3.5.1 pact-jvm-provider-lein_2.11 2017-07-09 08:18:51 UTC
3.5.2-jre7.0 pact-jvm-provider-lein_2.11 2017-07-12 00:38:34 UTC
3.5.2 pact-jvm-provider-lein_2.11 2017-07-12 01:12:45 UTC
3.5.3 pact-jvm-provider-lein_2.11 2017-08-06 07:59:03 UTC