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
3.5.5 pact-jvm-provider-lein_2.11 2017-09-11 23:12:27 UTC
2.4.4 pact-jvm-provider-lein_2.11 2016-01-20 23:50:50 UTC
2.4.6 pact-jvm-provider-lein_2.11 2016-02-19 23:32:54 UTC
2.4.0 pact-jvm-provider-lein_2.11 2015-11-22 04:11:33 UTC
2.4.1 pact-jvm-provider-lein_2.11 2015-11-28 06:40:00 UTC
2.4.2 pact-jvm-provider-lein_2.11 2015-12-12 22:12:07 UTC
3.3.10 pact-jvm-provider-lein_2.11 2017-05-18 04:03:31 UTC
2.4.3 pact-jvm-provider-lein_2.11 2016-01-17 03:02:05 UTC
3.2.3 pact-jvm-provider-lein_2.11 2016-02-11 06:21:37 UTC
3.2.4 pact-jvm-provider-lein_2.11 2016-02-20 00:46:07 UTC
3.2.1 pact-jvm-provider-lein_2.11 2015-12-12 22:35:57 UTC
3.2.2 pact-jvm-provider-lein_2.11 2016-01-17 03:29:51 UTC
3.5.0 pact-jvm-provider-lein_2.11 2017-06-24 08:12:47 UTC
3.5.1 pact-jvm-provider-lein_2.11 2017-07-09 08:18:51 UTC
3.2.7 pact-jvm-provider-lein_2.11 2016-05-04 05:00:42 UTC
3.5.2 pact-jvm-provider-lein_2.11 2017-07-12 01:12:45 UTC
3.2.8 pact-jvm-provider-lein_2.11 2016-06-18 04:28:39 UTC
3.2.5 pact-jvm-provider-lein_2.11 2016-03-25 01:58:56 UTC
3.4.1 pact-jvm-provider-lein_2.11 2017-06-11 02:04:40 UTC
3.2.6 pact-jvm-provider-lein_2.11 2016-03-29 03:21:54 UTC
3.4.0 pact-jvm-provider-lein_2.11 2017-05-18 05:39:56 UTC
3.2.0 pact-jvm-provider-lein_2.11 2015-11-28 20:56:45 UTC
3.5.10 pact-jvm-provider-lein_2.11 2017-11-21 21:57:15 UTC
3.5.6-jre7.0 pact-jvm-provider-lein_2.11 2017-09-28 05:17:18 UTC
3.5.4-jre7.0 pact-jvm-provider-lein_2.11 2017-08-19 07:59:32 UTC
3.5.8 pact-jvm-provider-lein_2.11 2017-10-13 02:42:39 UTC
3.2.9 pact-jvm-provider-lein_2.11 2016-07-06 05:38:31 UTC
3.5.5-jre7.0 pact-jvm-provider-lein_2.11 2017-09-14 02:37:44 UTC
3.0.3 pact-jvm-provider-lein_2.11 2015-09-07 09:34:15 UTC
3.0.4 pact-jvm-provider-lein_2.11 2015-09-17 09:30:04 UTC