Category: Cloud & DevOps

  • Continuous Integration & Delivery (CI/CD) for Kubernetes Using CircleCI & Helm

    Introduction

    Kubernetes is getting adopted rapidly across the software industry and is becoming the most preferred option for deploying and managing containerized applications. Once we have a fully functional Kubernetes cluster we need to have an automated process to deploy our applications on it. In this blog post, we will create a fully automated “commit to deploy” pipeline for Kubernetes. We will use CircleCI & helm for it.

    What is CircleCI?

    CircleCI is a fully managed saas offering which allows us to build, test or deploy our code on every check in. For getting started with circle we need to log into their web console with our GitHub or bitbucket credentials then add a project for the repository we want to build and then add the CircleCI config file to our repository. The CircleCI config file is a yaml file which lists the steps we want to execute on every time code is pushed to that repository.

    Some salient features of CircleCI is:

    1. Little or no operational overhead as the infrastructure is managed completely by CircleCI.
    2. User authentication is done via GitHub or bitbucket so user management is quite simple.
    3. It automatically notifies the build status on the github/bitbucket email ids of the users who are following the project on CircleCI.
    4. The UI is quite simple and gives a holistic view of builds.
    5. Can be integrated with Slack, hipchat, jira, etc.

    What is Helm?

    Helm is chart manager where chart refers to package of Kubernetes resources. Helm allows us to bundle related Kubernetes objects into charts and treat them as a single unit of deployment referred to as release.  For example, you have an application app1 which you want to run on Kubernetes. For this app1 you create multiple Kubernetes resources like deployment, service, ingress, horizontal pod scaler, etc. Now while deploying the application you need to create all the Kubernetes resources separately by applying their manifest files. What helm does is it allows us to group all those files into one chart (Helm chart) and then we just need to deploy the chart. This also makes deleting and upgrading the resources quite simple.

    Some other benefits of Helm is:

    1. It makes the deployment highly configurable. Thus just by changing the parameters, we can use the same chart for deploying on multiple environments like stag/prod or multiple cloud providers.
    2. We can rollback to a previous release with a single helm command.
    3. It makes managing and sharing Kubernetes specific application much simpler.

    Note: Helm is composed of two components one is helm client and the other one is tiller server. Tiller is the component which runs inside the cluster as deployment and serves the requests made by helm client. Tiller has potential security vulnerabilities thus we will use tillerless helm in our pipeline which runs tiller only when we need it.

    Building the Pipeline

    Overview:

    We will create the pipeline for a Golang application. The pipeline will first build the binary, create a docker image from it, push the image to ECR, then deploy it on the Kubernetes cluster using its helm chart.

    We will use a simple app which just exposes a `hello` endpoint and returns the hello world message:

    package main
    
    import (
    	"encoding/json"
    	"net/http"
    	"log"
    	"github.com/gorilla/mux"
    )
    
    type Message struct {
    	Msg string
    }
    
    func helloWorldJSON(w http.ResponseWriter, r *http.Request) {
    	m := Message{"Hello World"}
    	response, _ := json.Marshal(m)
    	w.Header().Set("Content-Type", "application/json")
    	w.WriteHeader(http.StatusOK)
    	w.Write(response)
    }
    func main() {
    	r := mux.NewRouter()
    	r.HandleFunc("/hello", helloWorldJSON).Methods("GET")
    	if err := http.ListenAndServe(":8080", r); err != nil {
    		log.Fatal(err)
    	}
    }

    We will create a docker image for hello app using the following Dockerfile:

    FROM centos/systemd
    
    MAINTAINER "Akash Gautam" <akash.gautam@velotio.com>
    
    COPY hello-app  /
    
    ENTRYPOINT ["/hello-app"]

    Creating Helm Chart:

    Now we need to create the helm chart for hello app.

    First, we create the Kubernetes manifest files. We will create a deployment and a service file:

    apiVersion: apps/v1beta1
    kind: Deployment
    metadata:
      name: helloapp
    spec:
      replicas: 1
      strategy:
      type: RollingUpdate
      rollingUpdate:
        maxSurge: 1
        maxUnavailable: 1
      template:
        metadata:
          labels:
            app: helloapp
            env: {{ .Values.labels.env }}
            cluster: {{ .Values.labels.cluster }}
        spec:
          containers:
          - name: helloapp
            image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
            imagePullPolicy: {{ .Values.image.imagePullPolicy }}
            readinessProbe:
              httpGet:
                path: /hello
                port: 8080
                initialDelaySeconds: 5
                periodSeconds: 5
                successThreshold: 1

    apiVersion: v1
    kind: Service
    metadata:
      name: helloapp
    spec:
      type: {{ .Values.service.type }}
      ports:
      - name: helloapp
        port: {{ .Values.service.port }}
        protocol: TCP
        targetPort: {{ .Values.service.targetPort }}
      selector:
        app: helloapp

    In the above file, you must have noticed that we have used .Values object. All the values that we specify in the values.yaml file in our helm chart can be accessed using the .Values object inside the template.

    Let’s create the helm chart now:

    helm create helloapp

    Above command will create a chart helm chart folder structure for us.

    helloapp/
    |
    |- .helmignore # Contains patterns to ignore when packaging Helm charts.
    |
    |- Chart.yaml # Information about your chart
    |
    |- values.yaml # The default values for your templates
    |
    |- charts/ # Charts that this chart depends on
    |
    |- templates/ # The template files

    We can remove the charts/ folder inside our helloapp chart as our chart won’t have any sub-charts. Now we need to move our Kubernetes manifest files to the template folder and update our values.yaml and Chart.yaml

    Our values.yaml looks like:

    image:
      tag: 0.0.1
      repository: 123456789870.dkr.ecr.us-east-1.amazonaws.com/helloapp
      imagePullPolicy: Always
    
    labels:
      env: "staging"
      cluster: "eks-cluster-blog"
    
    service:
      port: 80
      targetPort: 8080
      type: LoadBalancer

    This allows us to make our deployment more configurable. For example, here we have set our service type as LoadBalancer in values.yaml but if we want to change it to nodePort we just need to set is as NodePort while installing the chart (–set service.type=NodePort). Similarly, we have set the image pull policy as Always which is fine for development/staging environment but when we deploy to production we may want to set is as ifNotPresent. In our chart, we need to identify the parameters/values which may change from one environment to another and make them configurable. This allows us to be flexible with our deployment and reuse the same chart

    Finally, we need to update Chart.yaml file. This file mostly contains metadata about the chart like the name, version, maintainer, etc, where name & version are two mandatory fields for Chart.yaml.

    version: 1.0.0
    appVersion: 0.0.1
    name: helloapp
    description: Helm chart for helloapp
    source:
      - https://github.com/akash-gautam/helloapp

    Now our Helm chart is ready we can start with the pipeline. We need to create a folder named .circleci in the root folder of our repository and create a file named config.yml in it. In our config.yml we have defined two jobs one is build&pushImage and deploy.

    Configure the pipeline:

    build&pushImage:
        working_directory: /go/src/hello-app (1)
        docker:
          - image: circleci/golang:1.10 (2)
        steps:
          - checkout (3)
          - run: (4)
              name: build the binary
              command: go build -o hello-app
          - setup_remote_docker: (5)
              docker_layer_caching: true
          - run: (6)
              name: Set the tag for the image, we will concatenate the app verson and circle build number with a `-` char in between
              command:  echo 'export TAG=$(cat VERSION)-$CIRCLE_BUILD_NUM' >> $BASH_ENV
          - run: (7)
              name: Build the docker image
              command: docker build . -t ${CIRCLE_PROJECT_REPONAME}:$TAG
          - run: (8)
              name: Install AWS cli
              command: export TZ=Europe/Minsk && sudo ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > sudo  /etc/timezone && sudo apt-get update && sudo apt-get install -y awscli
          - run: (9)
              name: Login to ECR
              command: $(aws ecr get-login --region $AWS_REGION | sed -e 's/-e none//g')
          - run: (10)
              name: Tag the image with ECR repo name 
              command: docker tag ${CIRCLE_PROJECT_REPONAME}:$TAG ${HELLOAPP_ECR_REPO}:$TAG    
          - run: (11)
              name: Push the image the ECR repo
              command: docker push ${HELLOAPP_ECR_REPO}:$TAG

    1. We set the working directory for our job, we are setting it on the gopath so that we don’t need to do anything additional.
    2. We set the docker image inside which we want the job to run, as our app is built using golang we are using the image which already has golang installed in it.
    3. This step checks out our repository in the working directory
    4. In this step, we build the binary
    5. Here we setup docker with the help of  setup_remote_docker  key provided by CircleCI.
    6. In this step we create the tag we will be using while building the image, we use the app version available in the VERSION file and append the $CIRCLE_BUILD_NUM value to it, separated by a dash (`-`).
    7. Here we build the image and tag.
    8. Installing AWS CLI to interact with the ECR later.
    9. Here we log into ECR
    10. We tag the image build in step 7 with the ECR repository name.
    11. Finally, we push the image to ECR.

    Now we will deploy our helm charts. For this, we have a separate job deploy.

    deploy:
        docker: (1)
            - image: circleci/golang:1.10
        steps: (2)
          - checkout
          - run: (3)
              name: Install AWS cli
              command: export TZ=Europe/Minsk && sudo ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > sudo  /etc/timezone && sudo apt-get update && sudo apt-get install -y awscli
          - run: (4)
              name: Set the tag for the image, we will concatenate the app verson and circle build number with a `-` char in between
              command:  echo 'export TAG=$(cat VERSION)-$CIRCLE_PREVIOUS_BUILD_NUM' >> $BASH_ENV
          - run: (5)
              name: Install and confgure kubectl
              command: sudo curl -L https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl && sudo chmod +x /usr/local/bin/kubectl  
          - run: (6)
              name: Install and confgure kubectl aws-iam-authenticator
              command: curl -o aws-iam-authenticator https://amazon-eks.s3-us-west-2.amazonaws.com/1.10.3/2018-07-26/bin/linux/amd64/aws-iam-authenticator && sudo chmod +x ./aws-iam-authenticator && sudo cp ./aws-iam-authenticator /bin/aws-iam-authenticator
           - run: (7)
              name: Install latest awscli version
              command: sudo apt install unzip && curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip" && unzip awscli-bundle.zip &&./awscli-bundle/install -b ~/bin/aws
          - run: (8)
              name: Get the kubeconfig file 
              command: export KUBECONFIG=$HOME/.kube/kubeconfig && /home/circleci/bin/aws eks --region $AWS_REGION update-kubeconfig --name $EKS_CLUSTER_NAME
          - run: (9)
              name: Install and configuire helm
              command: sudo curl -L https://storage.googleapis.com/kubernetes-helm/helm-v2.11.0-linux-amd64.tar.gz | tar xz && sudo mv linux-amd64/helm /bin/helm && sudo rm -rf linux-amd64
          - run: (10)
              name: Initialize helm
              command:  helm init --client-only --kubeconfig=$HOME/.kube/kubeconfig
          - run: (11)
              name: Install tiller plugin
              command: helm plugin install https://github.com/rimusz/helm-tiller --kubeconfig=$HOME/.kube/kubeconfig        
          - run: (12)
              name: Release helloapp using helm chart 
              command: bash scripts/release-helloapp.sh $TAG

    1. Set the docker image inside which we want to execute the job.
    2. Check out the code using `checkout` key
    3. Install AWS CLI.
    4. Setting the value of tag just like we did in case of build&pushImage job. Note that here we are using CIRCLE_PREVIOUS_BUILD_NUM variable which gives us the build number of build&pushImage job and ensures that the tag values are the same.
    5. Download kubectl and making it executable.
    6. Installing aws-iam-authenticator this is required because my k8s cluster is on EKS.
    7. Here we install the latest version of AWS CLI, EKS is a relatively newer service from AWS and older versions of AWS CLI doesn’t have it.
    8. Here we fetch the kubeconfig file. This step will vary depending upon where the k8s cluster has been set up. As my cluster is on EKS am getting the kubeconfig file via. AWS CLI similarly if your cluster in on GKE then you need to configure gcloud and use the command  `gcloud container clusters get-credentials <cluster-name> –zone=<zone-name>`. We can also have the kubeconfig file on some other secure storage system and fetch it from there.</zone-name></cluster-name>
    9. Download Helm and make it executable
    10. Initializing helm, note that we are initializing helm in client only mode so that it doesn’t start the tiller server.
    11. Download the tillerless helm plugin
    12. Execute the release-helloapp.sh shell script and pass it TAG value from step 4.

    In the release-helloapp.sh script we first start tiller, after this, we check if the release is already present or not if it is present then we upgrade otherwise we make a new release. Here we override the value of tag for the image present in the chart by setting it to the tag of the newly built image, finally, we stop the tiller server.

    #!/bin/bash
    TAG=$1
    echo "start tiller"
    export KUBECONFIG=$HOME/.kube/kubeconfig
    helm tiller start-ci
    export HELM_HOST=127.0.0.1:44134
    result=$(eval helm ls | grep helloapp) 
    if [ $? -ne "0" ]; then 
       helm install --timeout 180 --name helloapp --set image.tag=$TAG charts/helloapp
    else 
       helm upgrade --timeout 180 helloapp --set image.tag=$TAG charts/helloapp
    fi
    echo "stop tiller"
    helm tiller stop 

    The complete CircleCI config.yml file looks like:

    version: 2
    
    jobs:
      build&pushImage:
        working_directory: /go/src/hello-app
        docker:
          - image: circleci/golang:1.10
        steps:
          - checkout
          - run:
              name: build the binary
              command: go build -o hello-app
          - setup_remote_docker:
              docker_layer_caching: true
          - run:
              name: Set the tag for the image, we will concatenate the app verson and circle build number with a `-` char in between
              command:  echo 'export TAG=$(cat VERSION)-$CIRCLE_BUILD_NUM' >> $BASH_ENV
          - run:
              name: Build the docker image
              command: docker build . -t ${CIRCLE_PROJECT_REPONAME}:$TAG
          - run:
              name: Install AWS cli
              command: export TZ=Europe/Minsk && sudo ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > sudo  /etc/timezone && sudo apt-get update && sudo apt-get install -y awscli
          - run:
              name: Login to ECR
              command: $(aws ecr get-login --region $AWS_REGION | sed -e 's/-e none//g')
          - run: 
              name: Tag the image with ECR repo name 
              command: docker tag ${CIRCLE_PROJECT_REPONAME}:$TAG ${HELLOAPP_ECR_REPO}:$TAG    
          - run: 
              name: Push the image the ECR repo
              command: docker push ${HELLOAPP_ECR_REPO}:$TAG
      deploy:
        docker:
            - image: circleci/golang:1.10
        steps:
          - attach_workspace:
              at: /tmp/workspace
          - checkout
          - run:
              name: Install AWS cli
              command: export TZ=Europe/Minsk && sudo ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > sudo  /etc/timezone && sudo apt-get update && sudo apt-get install -y awscli
          - run:
              name: Set the tag for the image, we will concatenate the app verson and circle build number with a `-` char in between
              command:  echo 'export TAG=$(cat VERSION)-$CIRCLE_PREVIOUS_BUILD_NUM' >> $BASH_ENV
          - run:
              name: Install and confgure kubectl
              command: sudo curl -L https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl && sudo chmod +x /usr/local/bin/kubectl  
          - run:
              name: Install and confgure kubectl aws-iam-authenticator
              command: curl -o aws-iam-authenticator https://amazon-eks.s3-us-west-2.amazonaws.com/1.10.3/2018-07-26/bin/linux/amd64/aws-iam-authenticator && sudo chmod +x ./aws-iam-authenticator && sudo cp ./aws-iam-authenticator /bin/aws-iam-authenticator
           - run:
              name: Install latest awscli version
              command: sudo apt install unzip && curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip" && unzip awscli-bundle.zip &&./awscli-bundle/install -b ~/bin/aws
          - run:
              name: Get the kubeconfig file 
              command: export KUBECONFIG=$HOME/.kube/kubeconfig && /home/circleci/bin/aws eks --region $AWS_REGION update-kubeconfig --name $EKS_CLUSTER_NAME
          - run:
              name: Install and configuire helm
              command: sudo curl -L https://storage.googleapis.com/kubernetes-helm/helm-v2.11.0-linux-amd64.tar.gz | tar xz && sudo mv linux-amd64/helm /bin/helm && sudo rm -rf linux-amd64
          - run:
              name: Initialize helm
              command:  helm init --client-only --kubeconfig=$HOME/.kube/kubeconfig
          - run:
              name: Install tiller plugin
              command: helm plugin install https://github.com/rimusz/helm-tiller --kubeconfig=$HOME/.kube/kubeconfig        
          - run:
              name: Release helloapp using helm chart 
              command: bash scripts/release-helloapp.sh $TAG
    workflows:
      version: 2
      primary:
        jobs:
          - build&pushImage
          - deploy:
              requires:
                - build&pushImage

    At the end of the file, we see the workflows, workflows control the order in which the jobs specified in the file are executed and establishes dependencies and conditions for the job. For example, we may want our deploy job trigger only after my build job is complete so we added a dependency between them. Similarly, we may want to exclude the jobs from running on some particular branch then we can specify those type of conditions as well.

    We have used a few environment variables in our pipeline configuration some of them were created by us and some were made available by CircleCI. We created AWS_REGION, HELLOAPP_ECR_REPO, EKS_CLUSTER_NAME, AWS_ACCESS_KEY_ID & AWS_SECRET_ACCESS_KEY variables. These variables are set via. CircleCI web console by going to the projects settings. Other variables that we have used are made available by CircleCI as a part of its environment setup process. Complete list of environment variables set by CircleCI can be found here.

    Verify the working of the pipeline:

    Once everything is set up properly then our application will get deployed on the k8s cluster and should be available for access. Get the external IP of the helloapp service and make a curl request to the hello endpoint

    $ curl http://a31e25e7553af11e994620aebe144c51-242977608.us-west-2.elb.amazonaws.com/hello && printf "n"
    
    {"Msg":"Hello World"}

    Now update the code and change the message “Hello World” to “Hello World Returns” and push your code. It will take a few minutes for the pipeline to complete execution and once it is complete make the curl request again to see the changes getting reflected.

    $ curl http://a31e25e7553af11e994620aebe144c51-242977608.us-west-2.elb.amazonaws.com/hello && printf "n"
    
    {"Msg":"Hello World Returns"}

    Also, verify that a new tag is also created for the helloapp docker image on ECR.

    Conclusion

    In this blog post, we explored how we can set up a CI/CD pipeline for kubernetes and got basic exposure to CircleCI and Helm. Although helm is not absolutely necessary for building a pipeline, it has lots of benefits and is widely used across the industry. We can extend the pipeline to consider the cases where we have multiple environments like dev, staging & production and make the pipeline deploy the application to any of them depending upon some conditions. We can also add more jobs like integration tests. All the codes used in the blog post are available here.

    Related Reads:

    1. Continuous Deployment with Azure Kubernetes Service, Azure Container Registry & Jenkins
    2. Know Everything About Spinnaker & How to Deploy Using Kubernetes Engine
  • An Introduction To Cloudflare Workers And Cloudflare KV store

    Cloudflare Workers

    This post gives a brief introduction to Cloudflare Workers and Cloudflare KV store. They address a fairly common set of problems around scaling an application globally. There are standard ways of doing this but they usually require a considerable amount of upfront engineering work and developers have to be aware of the ‘scalability’ issues to some degree. Serverless application tools target easy scalability and quick response times around the globe while keeping the developers focused on the application logic rather than infra nitty-gritties.

    Global responsiveness

    When an application is expected to be accessed around the globe, requests from users sitting in different time-zones should take a similar amount of time. There can be multiple ways of achieving this depending upon how data intensive the requests are and what those requests actually do.

    Data intensive requests are harder and more expensive to globalize, but again not all the requests are same. On the other hand, static requests like getting a documentation page or a blog post can be globalized by generating markup at build time and deploying them on a CDN.

    And there are semi-dynamic requests. They render static content either with some small amount of data or their content change based on the timezone the request came from.

    The above is a loose classification of requests but there are exceptions, for example, not all the static requests are presentational.

    Serverless frameworks are particularly useful in scaling static and semi-static requests.

    Cloudflare Workers Overview

    Cloudflare worker is essentially a function deployment service. They provide a serverless execution environment which can be used to develop and deploy small(although not necessarily) and modular cloud functions with minimal effort.

    It is very trivial to start with workers. First, lets install wrangler, a tool for managing Cloudfare Worker projects.

    npm i @cloudflare/wrangler -g

    Wrangler handles all the standard stuff for you like project generation from templates, build, config, publishing among other things.

    A worker primarily contains 2 parts: an event listener that invokes a worker and an event handler that returns a response object. Creating a worker is as easy as adding an event listener to a button.

    addEventListener('fetch', event => {
        event.respondWith(handleRequest(event.request))
    })
    
    async function handleRequest(request) {
        return new Response("hello world")
    }

    Above is a simple hello world example. Wrangler can be used to build and get a live preview of your worker.

    wrangler build

    will build your worker. And 

    wrangler preview 

    can be used to take a live preview on the browser. The preview is only meant to be used for testing(either by you or others). If you want the workers to be triggered by your own domain or a workers.dev subdomain, you need to publish it.

    Publishing is fairly straightforward and requires very less configuration on both wrangler and your project.

    Wrangler Configuration

    Just create an account on Cloudflare and get API key. To configure wrangler, just do:

    wrangler config

    It will ask for the registered email and API key, and you are good to go.

    To publish your worker on a workers.dev subdomain, just fill your account ID in the wrangler.toml and hit wrangler publish. The worker will be deployed and live at a generated workers.dev subdomain.

    Regarding Routes

    When you publish on a {script-name}.{subdomain}.workers.dev domain, the script or project associated with script-name will be invoked. There is no way to call a script just from {subdomain}.workers.dev.

    Worker KV

    Workers alone can’t be used to make anything complex without any persistent storage, that’s where Workers KV comes into the picture. Workers KV as it sounds, is a low-latency, high-volume, key-value store that is designed for efficient reads.

    It optimizes the read latency by dynamically spreading the most frequently read entries to the edges(replicated in several regions) and storing less frequent entries centrally.

    Newly added keys(or a CREATE) are immediately reflected in every region while a value change in the keys(or an UPDATE) may take as long as 60 seconds to propagate, depending upon the region.

    Workers KV is only available to paid users of Cloudflare.

    Writing Data in Workers KV

    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/storage/kv/namespaces" 
    -X POST 
    -H "X-Auth-Email: $CLOUDFLARE_EMAIL" 
    -H "X-Auth-Key: $CLOUDFLARE_AUTH_KEY" 
    -H "Content-Type: application/json" 
    --data '{"title": "Requests"}'
    The above HTTP request will create a namespace by the name Requests. The response should look something like this:
    {
        "result": {
            "id": "30b52f55aafb41d88546d01d5f69440a",
            "title": "Requests",
            "supports_url_encoding": true
        },
        "success": true,
        "errors": [],
        "messages": []
    }

    Now we can write KV pairs in this namespace. The following HTTP requests will do the same:

    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/storage/kv/namespaces/$NAMESPACE_ID/values/first-key" 
    -X PUT 
    -H "X-Auth-Email: $CLOUDFLARE_EMAIL" 
    -H "X-Auth-Key: $CLOUDFLARE_AUTH_KEY" 
    --data 'My first value!'

    Here the NAMESPACE_ID is the same ID that we received in the last request. First-key is the key name and the My first value is the value.

    Let’s complicate things a little

    Above overview just introduces the managed cloud workers with a ‘hello world’ app and basics of the Workers KV, but now let’s make something more complicated. We will make an app which will tell how many requests have been made from your country till now. For example, if you pinged the worker from the US then it will return number of requests made so far from the US.

    We will need: 

    • Some place to store the count of requests for each country. 
    • Find from which country the Worker was invoked.

    For the first part, we will use the Workers KV to store the count for every request.

    Let’s start

    First, we will create a new project using wrangler: wrangler generate request-count.

    We will be making HTTP calls to write values in the Workers KV, so let’s add ‘node-fetch’ to the project:

    npm install node-fetch

    Now, how do we find from which country each request is coming from? The answer is the cf object that is provided with each request to a worker.

    The cf object is a special object that is passed with each request and can be accessed with request.cf. This mainly contains region specific information along with TLS and Auth information. The details of what is provided in the cf, can be found here.

    As we can see from the documentation, we can get country from

    request.cf.country.

    The cf object is not correctly populated in the wrangler preview, you will need to publish your worker in order to test cf’s usage. An open issue mentioning the same can be found here.

    Now, the logic is pretty straightforward here. When we get a request from a country for which we don’t have an entry in the Worker’s KV, we make an entry with value 1, else we increment the value of the country key.

    To use Workers KV, we need to create a namespace. A namespace is just a collection of key-value pairs where all the keys have to be unique.

    A namespace can be created under the KV tab in Cloudflare web UI by giving the name or using the API call above. You can also view/browse all of your namespaces from the web UI. Following API call can be used to read the value of a key from a namespace:

    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/storage/kv/namespaces/$NAMESPACE_ID/values/first-key" 
    -H "X-Auth-Email: $CLOUDFLARE_EMAIL" 
    -H "X-Auth-Key: $CLOUDFLARE_AUTH_KEY" 

    But, it is neither the fastest nor the easiest way. Cloudflare provides a better and faster way to read data from your namespaces. It’s called binding. Each KV namespace can be bound to a worker script so to make it available in the script by the variable name. Any namespace can be bound with any worker. A KV namespace can be bound to a worker by going to the editing menu of a worker from the Cloudflare UI. 

    Following steps show you how to bind a namespace to a worker:

    Go to the edit page of the worker in Cloudflare web UI and click on the KV tab:

    Then add a binding by clicking the ‘Add binding’ button.

    You can select the namespace name and the variable name by which it will be bound. More details can be found here. A binding that I’ve made can be seen in the above image.

    That’s all we need to get this to work. Following is the relevant part of the script:

    const fetch = require('node-fetch')
    
    addEventListener('fetch', event => {
    event.respondWith(handleRequest(event.request))
    })
    
    /**
    * Fetch and log a request
    * @param {Request} request
    */
    async function handleRequest(request) {
        const country = request.cf.country
    
        const url = `https://api.cloudflare.com/client/v4/accounts/account-id/storage/kv/namespaces/namespace-id/values/${country}`
    
        let count = await requests.get(country)
    
        if (!count) {
            count = 1
        } else {
            count = parseInt(count) + 1
        }
    
        try {
            response = await fetch(url, {
            method: 'PUT',
            headers: {"X-Auth-Email": "email", "X-Auth-Key": "auth-key"},
            body: `${count}`
            })
        } catch (error) {
            return new Response(error, { status: 500 })
        }
    
        return new Response(`${country}: ${count}`, { status: 200 }) 
    }

    In the above code, I bound the Requests namespace that we created by the requests variable that would be dynamically resolved when we publish.

    The full source of this can be found here.

    This small application also demonstrates some of the practical aspects of the workers. For example, you would notice that the updates take some time to get reflected and response time of the workers is quick, especially when they are deployed on a .workers.dev subdomain here.

    Side note: You will have to recreate the namespace-worker binding everytime you deploy the worker or you do wrangler publish.

    Workers vs. AWS Lambda

    AWS Lambda has been a major player in the serverless market for a while now. So, how is Cloudflare Workers as compared to it? Let’s see.

    Architecture:

    Cloudflare Workers `Isolates` instead of a container based underlying architecture. `Isolates` is the technology that allows V8(Google Chrome’s JavaScript Engine) to run thousands of processes on a single server in an efficient and secure manner. This effectively translates into faster code execution and lowers memory usage. More details can be found here.

    Price:

    The above mentioned architectural difference allows Workers to be significantly cheaper than Lambda. While a Worker offering 50 milliseconds of CPU costs $0.50 per million requests, the equivalent Lambda costs $1.84 per million. A more detailed price comparison can be found here.

    Speed:

    Workers also show significantly better performance numbers than Lambda and Lambda@Edge. Tests run by Cloudflare claim that they are 441% faster than Lambda and 192% faster than Lambda@Edge. A detailed performance comparison can be found here.

    This better performance is also confirmed by serverless-benchmark.

    Wrapping Up:

    As we have seen, Cloudflare Workers along with the KV Store does make it very easy to start with a serverless application. They provide fantastic performance while using less cost along with intuitive deployment. These properties make them ideal for making globally accessible serverless applications.

  • Jenkins X – A Cloud-native Approach to CI/CD

    Jenkins X is a project which rethinks how developers should interact with CI/CD in the cloud with a focus on making development teams productive through automation, tooling and DevOps best practices.

    The difference between Jenkins X and Jenkins

    Jenkins is a tool which was developed long before cloud become the norm and it’s definitely not a cloud-native tool, meaning it doesn’t have out of the box capability to survive outages, seamless scaling, etc.

    Basically, Jenkins X is not just a CI/CD tool to run builds and deployments, it automates the whole development process end to end for containerised applications based on Docker and Kubernetes. 

    With Jenkins X, you get not only Kubernetes pipelines for your apps but also a very scalable CI/CD solution.

    Challenges while setting up CI/CD pipelines for container-based applications:

    • Setup the cloud environment
    • Setup kubernetes cluster and set up multiple environments like development, staging, testing
    • Migrate application to the container so that user can start building docker images
    • Figure out how to deploy the application on Kubernetes and generate some yml and helm charts
    • Figure out how to do continuous delivery including promotion processes – eg Promote versions of the application from testing to staging to production.
    • Store all operational configurations like web application source code on the GitHub repository.
    • Then automate everything

    So all this stuff which developers have to do is kind of unnecessary heavy lifting. Jenkins X is designed to get the above stuff done and focus on delivering actual value to customers.

    How does Jenkins X help?

    • Automate the installation, configuration & upgrade of Jenkins + other s/w components (helm, nexus etc) on Kubernetes
    • Automate CI/CD for your applications on Kubernetes
    • Docker images
    • Helm charts
    • Pipelines
    • Uses GitOps to manage promotions between environments
    • Test – Staging – Promotion
    • Lots of feedback. Eg. commenting on issues as they hit Staging + Production

    What does Jenkins X do?

    By using Jenkins X, the developer can type one command jx create or jx import and the following process : get the source code, the git repository and application created, automatically built and deployed to Kubernetes on each Pull Request or git push with full CI/CD complete with Environments and Promotion.

    Developers and teams don’t have to spend time figuring out how to package software as docker images, create the Kubernetes YAML to run their application on kubernetes, create Preview environments or even learn how to implement CI/CD pipelines with declarative pipeline-as-code Jenkinsfiles. It’s all automated in Jenkins X.

    If you want to see Dockerfile, Jenkinsfile or Helm charts for your apps or their environments then those are all available versioned in Git with the rest of your source code with full CI/CD on it all.

    Jenkins X conceptual model

    Automated CI/CD Pipelines

    Create new projects or import existing source code quickly into Jenkins X via the jx command line tool and:

    • Get a Pipeline automatically set up for you that implements best practice CI/CD features:
    • Creates a Jenkinsfile for defining the CI/CD pipelines through declarative pipeline-as-code
    • Creates a Docker file for packaging the application up as an immutable container image (for applications which generate images)
    • Creates a Helm chart for deploying and running your application on Kubernetes
    • Ensures your code is in a git repository (e.g. GitHub) with the necessary webhooks to trigger the Jenkins CI/CD pipelines on push events
    • Triggers the first release pipeline to promote your application to your teams Staging Environment

    On each Pull Request, a CI pipeline is triggered to build your application and run all the tests ensuring you keep the master branch in a ready to release state. When a Pull Request is merged to the master branch the Release pipeline is triggered to create a new release:

    • A new semantic version number is generated
    • The source code is modified for the new version and then tagged in Git
    • New versioned artifacts are published including docker image, helm chart, and any language-specific artifacts

    Jenkins X functionality

    JX is a command line tool for installing and using Jenkins X. Check out how to install jx. To create a new Kubernetes cluster with Jenkins X installed use the jx create cluster command. The command initialises Pods with the following applications in jx namespace of Kubernetes:

    • Chartmuseum (Open-source Helm Chart repository)
    • Docker registry (Docker image storage)
    • Jenkins (Automation server)
    • MongoDB (NoSQL Database)
    • Nexus repository (Artifact storage)

    Let’s have a look at how the JX processes correlate to Git actions. For simplicity, let’s use only master and one feature branch. The table below details the steps of the flow.

    Prerequisites for setting up Kubernetes + Jenkins X using GKE

    Note: Following steps are for Ubuntu 16.04

    • Install Git and set your account’s default identity using Git config
    • Install gcloud – Google Cloud Platform’s CLI tool
    • Install kubectl – Kubernetes CLI tool
    • Download here
    • Move to /usr/local/bin for path binding:
    $ sudo cp /home//Downloads/kubectl /usr/local/bin/kubectl
    $ sudo chmod +x /usr/local/bin/kubectl

    • Install Helm i.e. Kubernetes package manager
    • Download here
    • Move to /usr/local/bin for path binding:
    $ sudo cp /home//Downloads/linux-amd64/helm /usr/local/bin/helm
    $ sudo chmod +x /usr/local/bin/helm

    $ curl -L https://github.com/jenkins-x/jx/releases/download/v1.2.102/jx-linux-amd64.tar.gz | tar xzv

    $ sudo mv jx /usr/local/bin
    $ sudo chmod +x  /usr/local/bin/jx

    How to create a Kubernetes cluster on GKE and install Jenkins X

    jx create cluster gke

    $ jx create cluster gke
    ? Google Cloud Project: private-cloud-198808
    No cluster name provided so using a generated one: carpcoal
    ? Google Cloud Zone: us-west1-a
    ? Google Cloud Machine Type: n1-standard-2
    ? Minimum number of Nodes 3
    ? Maximum number of Nodes 5
    Creating cluster...
    Initialising cluster ...
    Trying to create ClusterRoleBinding gke-private-cloud-198808-us-west1-a-carpcoal-cluster-admin-binding for role: cluster-admin for user gke-private-cloud-198808-us-west1-a-carpcoal
    Created ClusterRoleBinding gke-private-cloud-198808-us-west1-a-carpcoal-cluster-admin-binding
    Created ServiceAccount tiller in namespace kube-system
    Trying to create ClusterRoleBinding tiller for role: cluster-admin and ServiceAccount: kube-system/tiller
    Created ClusterRoleBinding tiller
    Initialising helm using ServiceAccount tiller in namespace kube-system
    helm installed and configured
    ? No existing ingress controller found in the kube-system namespace, shall we install one? Yes
    NAME:   jxing ingress controller found in the kube-system namespace, shall we install one? [? for help] (Y/n) Y
    LAST DEPLOYED: Fri Jun  8 14:27:52 2018
    NAMESPACE: kube-system
    STATUS: DEPLOYED
    
    RESOURCES:
    ==> v1/ConfigMap
    NAME                            DATA  AGE
    jxing-nginx-ingress-controller  1     2s
    
    ==> v1/ServiceAccount
    NAME                 SECRETS  AGE
    jxing-nginx-ingress  1        2s
    
    ==> v1beta1/ClusterRole
    NAME                 AGE
    jxing-nginx-ingress  2s
    
    ==> v1beta1/Deployment
    NAME                                 DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
    jxing-nginx-ingress-controller       1        1        1           0          1s
    jxing-nginx-ingress-default-backend  1        1        1           0          1s
    
    ==> v1beta1/ClusterRoleBinding
    NAME                 AGE
    jxing-nginx-ingress  2s
    
    ==> v1beta1/Role
    NAME                 AGE
    jxing-nginx-ingress  2s
    
    ==> v1beta1/RoleBinding
    NAME                 AGE
    jxing-nginx-ingress  2s
    
    ==> v1/Service
    NAME                                 TYPE          CLUSTER-IP     EXTERNAL-IP  PORT(S)                     AGE
    jxing-nginx-ingress-controller       LoadBalancer  10.59.244.203  <pending>    80:30890/TCP,443:32429/TCP  2s
    jxing-nginx-ingress-default-backend  ClusterIP     10.59.252.220  <none>       80/TCP                      1s
    
    ==> v1beta1/PodDisruptionBudget
    NAME                                 MIN AVAILABLE  MAX UNAVAILABLE  ALLOWED DISRUPTIONS  AGE
    jxing-nginx-ingress-controller       1              N/A              0                    1s
    jxing-nginx-ingress-default-backend  1              N/A              0                    1s
    
    ==> v1/Pod(related)
    NAME                                                  READY  STATUS             RESTARTS  AGE
    jxing-nginx-ingress-controller-7c4bd99845-kvl59       0/1    ContainerCreating  0         1s
    jxing-nginx-ingress-default-backend-66c54ff74b-z6qj8  0/1    ContainerCreating  0         1s
    
    
    NOTES:
    The nginx-ingress controller has been installed.
    It may take a few minutes for the LoadBalancer IP to be available.
    You can watch the status by running 'kubectl --namespace kube-system get services -o wide -w jxing-nginx-ingress-controller'
    
    An example Ingress that makes use of the controller:
    
      apiVersion: extensions/v1beta1
      kind: Ingress
      metadata:
        annotations:
          kubernetes.io/ingress.class: nginx
        name: example
        namespace: foo
      spec:
        rules:
          - host: www.example.com
            http:
              paths:
                - backend:
                    serviceName: exampleService
                    servicePort: 80
                  path: /
        # This section is only required if TLS is to be enabled for the Ingress
        tls:
            - hosts:
                - www.example.com
              secretName: example-tls
    
    If TLS is enabled for the Ingress, a Secret containing the certificate and key must also be provided:
    
      apiVersion: v1
      kind: Secret
      metadata:
        name: example-tls
        namespace: foo
      data:
        tls.crt: <base64 encoded cert>
        tls.key: <base64 encoded key>
      type: kubernetes.io/tls
    
    Waiting for external loadbalancer to be created and update the nginx-ingress-controller service in kube-system namespace
    Note: this loadbalancer will fail to be provisioned if you have insufficient quotas, this can happen easily on a GKE free account. To view quotas run: gcloud compute project-info describe
    External loadbalancer created
    ? Domain 35.230.49.158.nip.io
    nginx ingress controller installed and configured
    Lets set up a git username and API token to be able to perform CI/CD
    
    ? GitHub username for CI/CD pipelines: grohan2002
    Cloning the Jenkins X cloud environments repo to /home/aditi/.jx/cloud-environments
    ? A local Jenkins X cloud environments repository already exists, recreate with latest? Yes
    Cloning the Jenkins X cloud environments repo to /home/aditi/.jx/cloud-environments
    Counting objects: 574, done.
    Total 574 (delta 0), reused 0 (delta 0), pack-reused 574
    Generated helm values /home/aditi/.jx/extraValues.yaml
    Installing Jenkins X platform helm chart from: /home/aditi/.jx/cloud-environments/env-gke
    helm repo add jenkins-x https://chartmuseum.build.cd.jenkins-x.io
    "jenkins-x" has been added to your repositories
    rm -rf secrets.yaml.dec
    helm repo add jenkins-x https://chartmuseum.build.cd.jenkins-x.io
    "jenkins-x" has been added to your repositories
    helm repo update
    Hang tight while we grab the latest from your chart repositories...
    ...Skip local chart repository
    ...Successfully got an update from the "stable" chart repository
    ...Successfully got an update from the "jenkins-x" chart repository
    Update Complete. ⎈ Happy Helming!⎈ 
    helm install jenkins-x/jenkins-x-platform --name jenkins-x -f ./myvalues.yaml -f ./secrets.yaml --version 0.0.1193 --values=/home/aditi/.jx/gitSecrets.yaml --values=/home/aditi/.jx/adminSecrets.yaml --values=/home/aditi/.jx/extraValues.yaml --namespace=jx --timeout=6000
    NAME:   jenkins-x
    LAST DEPLOYED: Fri Jun  8 14:29:34 2018
    NAMESPACE: jx
    STATUS: DEPLOYED
    
    RESOURCES:
    ==> v1beta1/ClusterRoleBinding
    NAME                  AGE
    jenkins-role-binding  58s
    
    ==> v1beta1/Deployment
    NAME                           DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
    jenkins-x-chartmuseum          1        1        1           1          58s
    jenkins-x-docker-registry      1        1        1           1          58s
    jenkins-x-heapster             1        1        1           1          58s
    jenkins                        1        1        1           0          58s
    jenkins-x-mongodb              1        1        1           0          58s
    jenkins-x-monocular-api        1        1        1           0          57s
    jenkins-x-monocular-prerender  1        1        1           1          57s
    jenkins-x-monocular-ui         1        1        1           1          57s
    jenkins-x-nexus                1        1        1           0          57s
    pipelinecontroller             1        1        1           1          57s
    
    ==> v1beta1/CustomResourceDefinition
    NAME                  AGE
    pipelines.jenkins.io  57s
    runs.jenkins.io       57s
    
    ==> v1/Pod(related)
    NAME                                            READY  STATUS             RESTARTS  AGE
    jenkins-x-chartmuseum-77dcdf7f87-txxrx          1/1    Running            0         58s
    jenkins-x-docker-registry-76dd6bddd4-498dr      1/1    Running            0         58s
    jenkins-x-heapster-57b558bf9b-9nbg8             2/2    Running            0         58s
    jenkins-58848b44cd-fp9kt                        0/1    Running            0         57s
    jenkins-x-mongodb-5fb7868bd-qp6q2               0/1    ContainerCreating  0         57s
    jenkins-x-monocular-api-d7d6cc9b7-2pxn4         0/1    Error              0         57s
    jenkins-x-monocular-prerender-74f49ffdc7-jdbhp  1/1    Running            0         57s
    jenkins-x-monocular-ui-5dcfbf9d7c-mvxgs         1/1    Running            0         57s
    jenkins-x-nexus-786fcdbd98-fgtq7                0/1    ContainerCreating  0         57s
    pipelinecontroller-5c5f5df7ff-4ljj5             1/1    Running            0         57s
    
    ==> v1/Secret
    NAME                              TYPE    DATA  AGE
    jenkins-x-chartmuseum             Opaque  2     58s
    jenkins-x-docker-registry-secret  Opaque  1     58s
    jenkins                           Opaque  2     58s
    jenkins-x-mongodb                 Opaque  2     58s
    nexus                             Opaque  1     58s
    jenkins-docker-cfg                Opaque  1     58s
    jenkins-git-credentials           Opaque  1     58s
    jenkins-hub-api-token             Opaque  1     58s
    jenkins-git-ssh                   Opaque  2     58s
    jx-basic-auth                     Opaque  1     58s
    jenkins-release-gpg               Opaque  4     58s
    jenkins-maven-settings            Opaque  1     58s
    jenkins-npm-token                 Opaque  1     58s
    jenkins-ssh-config                Opaque  1     58s
    
    ==> v1/ConfigMap
    NAME                              DATA  AGE
    jenkins-x-docker-registry-config  1     58s
    exposecontroller                  1     58s
    jenkins                           7     58s
    jenkins-x-git-kinds               2     58s
    jenkins-tests                     1     58s
    jenkins-x-monocular-api-config    1     58s
    jenkins-x-monocular-ui-config     1     58s
    jenkins-x-monocular-ui-vhost      1     58s
    jenkins-x-pod-templates           12    58s
    
    ==> v1/PersistentVolumeClaim
    NAME                       STATUS  VOLUME                                    CAPACITY  ACCESS MODES  STORAGECLASS  AGE
    jenkins-x-chartmuseum      Bound   pvc-43b61a9d-6afa-11e8-818a-42010a8a007f  8Gi       RWO           standard      58s
    jenkins-x-docker-registry  Bound   pvc-43ba02df-6afa-11e8-818a-42010a8a007f  100Gi     RWO           standard      58s
    jenkins                    Bound   pvc-43bda529-6afa-11e8-818a-42010a8a007f  30Gi      RWO           standard      58s
    jenkins-x-mongodb          Bound   pvc-43bedec4-6afa-11e8-818a-42010a8a007f  8Gi       RWO           standard      58s
    jenkins-x-nexus            Bound   pvc-43c0b170-6afa-11e8-818a-42010a8a007f  8Gi       RWO           standard      58s
    
    ==> v1/ServiceAccount
    NAME                SECRETS  AGE
    cleanup             1        58s
    expose              1        58s
    jenkins             1        58s
    pipelinecontroller  1        58s
    
    ==> v1/Role
    NAME     AGE
    cleanup  58s
    expose   58s
    
    ==> v1/RoleBinding
    NAME     AGE
    cleanup  58s
    expose   58s
    
    ==> v1/Service
    NAME                           TYPE       CLUSTER-IP     EXTERNAL-IP  PORT(S)    AGE
    jenkins-x-chartmuseum          ClusterIP  10.59.247.18   <none>       8080/TCP   58s
    jenkins-x-docker-registry      ClusterIP  10.59.251.152  <none>       5000/TCP   58s
    heapster                       ClusterIP  10.59.255.13   <none>       8082/TCP   58s
    jenkins-agent                  ClusterIP  10.59.242.200  <none>       50000/TCP  58s
    jenkins                        ClusterIP  10.59.252.154  <none>       8080/TCP   58s
    jenkins-x-mongodb              ClusterIP  10.59.243.233  <none>       27017/TCP  58s
    jenkins-x-monocular-api        ClusterIP  10.59.242.193  <none>       80/TCP     58s
    jenkins-x-monocular-prerender  ClusterIP  10.59.255.226  <none>       80/TCP     58s
    jenkins-x-monocular-ui         ClusterIP  10.59.242.187  <none>       80/TCP     58s
    nexus                          ClusterIP  10.59.240.56   <none>       80/TCP     58s
    
    
    waiting for install to be ready, if this is the first time then it will take a while to download images
    Jenkins X deployments ready in namespace jx
    
    	
    	********************************************************
    	
    	     NOTE: Your admin password is: pirateclear
    	
    	********************************************************
    	
    	Getting Jenkins API Token
    unable to automatically find API token with chromedp using URL http://jenkins.jx.35.230.49.158.nip.io/me/configure
    Please go to http://jenkins.jx.35.230.49.158.nip.io/me/configure and click Show API Token to get your API Token
    Then COPY the token and enter in into the form below:
    
    Created user admin API Token for Jenkins server jenkins.jx.35.230.49.158.nip.io at http://jenkins.jx.35.230.49.158.nip.io
    Creating default staging and production environments
    Using git provider GitHub at https://github.com
    
    
    About to create repository environment-carpcoal-staging on server https://github.com with user grohan2002
    ? Which organisation do you want to use? grohan2002
    
    
    Creating repository grohan2002/environment-carpcoal-staging
    Creating git repository grohan2002/environment-carpcoal-staging
    Cloning into '/home/aditi/.jx/environments/grohan2002/environment-carpcoal-staging'...
    remote: Counting objects: 67, done.
    remote: Total 67 (delta 0), reused 0 (delta 0), pack-reused 67
    Unpacking objects: 100% (67/67), done.
    Checking connectivity... done.
    [master f2045e1] Use correct namespace for environment
     1 file changed, 1 insertion(+), 1 deletion(-)
    [master 85e3e03] Add environment configuration
     1 file changed, 9 insertions(+)
    Counting objects: 74, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (71/71), done.
    Writing objects: 100% (74/74), 13.71 KiB | 0 bytes/s, done.
    Total 74 (delta 39), reused 0 (delta 0)
    remote: Resolving deltas: 100% (39/39), done.
    To https://grohan2002:0468f81bbf086353d5a03a2a8125d5642bd1d6f6@github.com/grohan2002/environment-carpcoal-staging.git
     * [new branch]      master -> master
    Branch master set up to track remote branch master from origin.
    Pushed git repository to https://github.com/grohan2002/environment-carpcoal-staging
    
    Created environment staging
    ? user name for the Jenkins Pipeline grohan2002
    Created Jenkins Project: http://jenkins.jx.35.230.49.158.nip.io/job/grohan2002/job/environment-carpcoal-staging/
    
    Note that your first pipeline may take a few minutes to start while the necessary docker images get downloaded!
    
    Creating github webhook for grohan2002/environment-carpcoal-staging for url http://jenkins.jx.35.230.49.158.nip.io/github-webhook/
    Using git provider GitHub at https://github.com
    
    
    About to create repository environment-carpcoal-production on server https://github.com with user grohan2002
    ? Which organisation do you want to use? grohan2002
    
    
    Creating repository grohan2002/environment-carpcoal-production
    Creating git repository grohan2002/environment-carpcoal-production
    Cloning into '/home/aditi/.jx/environments/grohan2002/environment-carpcoal-production'...
    remote: Counting objects: 67, done.
    remote: Total 67 (delta 0), reused 0 (delta 0), pack-reused 67
    Unpacking objects: 100% (67/67), done.
    Checking connectivity... done.
    [master 841d795] Use correct namespace for environment
     1 file changed, 1 insertion(+), 1 deletion(-)
    [master 064603d] Add environment configuration
     1 file changed, 9 insertions(+)
    Counting objects: 74, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (71/71), done.
    Writing objects: 100% (74/74), 13.72 KiB | 0 bytes/s, done.
    Total 74 (delta 39), reused 0 (delta 0)
    remote: Resolving deltas: 100% (39/39), done.
    To https://grohan2002:0468f81bbf086353d5a03a2a8125d5642bd1d6f6@github.com/grohan2002/environment-carpcoal-production.git
     * [new branch]      master -> master
    Branch master set up to track remote branch master from origin.
    Pushed git repository to https://github.com/grohan2002/environment-carpcoal-production
    
    Created environment production
    Created Jenkins Project: http://jenkins.jx.35.230.49.158.nip.io/job/grohan2002/job/environment-carpcoal-production/
    
    Note that your first pipeline may take a few minutes to start while the necessary docker images get downloaded!
    
    Creating github webhook for grohan2002/environment-carpcoal-production for url http://jenkins.jx.35.230.49.158.nip.io/github-webhook/
    
    Jenkins X installation completed successfully
    
    	
    	********************************************************
    	
    	     NOTE: Your admin password is: pirateclear
    	
    	********************************************************
    	
    	
    To import existing projects into Jenkins: jx import
    To create a new Spring Boot microservice: jx create spring -d web -d actuator

    After triggering this command, we are prompted to authenticate Google Cloud account. It also prompts for some questions on how to create our cluster. It generates a random admin password which is used to access all the applications that we’ve installed.

    jx get build logs

    We can now get logs for the build jobs which are actually provisioning the staging environment. Please find detailed logs of the above command displayed below.

    $ jx get build logs
    ? Which pipeline do you want to view the logs of?:  grohan2002/environment-carpcoal-staging/master
    view the log at: http://jenkins.jx.35.230.49.158.nip.io/job/grohan2002/job/environment-carpcoal-staging/job/master/1/console
    tailing the log of grohan2002/environment-carpcoal-staging/master #1
    Branch indexing
    Connecting to https://api.github.com using grohan2002/****** (API Token for acccessing https://github.com git service inside pipelines)
    Obtained Jenkinsfile from 85e3e0347b4d8ad42f4a8d422e53b9d5691c8e6d
    Running in Durability level: MAX_SURVIVABILITY
    [Pipeline] node
    Still waiting to schedule task
    Waiting for next available executor
    Running on maven-5xzh0 in /home/jenkins/workspace/ent-carpcoal-staging_master-6QDKMJ2XMNMFA5GSJVDMXNPODJHK2OTAAIO23EZOPYXO5MLNXDQQ
    [Pipeline] {
    [Pipeline] stage
    [Pipeline] { (Declarative: Checkout SCM)
    [Pipeline] checkout
    Cloning the remote Git repository
    Cloning with configured refspecs honoured and without tags
    Cloning repository https://github.com/grohan2002/environment-carpcoal-staging.git
     > git init /home/jenkins/workspace/ent-carpcoal-staging_master-6QDKMJ2XMNMFA5GSJVDMXNPODJHK2OTAAIO23EZOPYXO5MLNXDQQ # timeout=10
    Fetching upstream changes from https://github.com/grohan2002/environment-carpcoal-staging.git
     > git --version # timeout=10
    using GIT_ASKPASS to set credentials API Token for acccessing https://github.com git service inside pipelines
     > git fetch --no-tags --progress https://github.com/grohan2002/environment-carpcoal-staging.git +refs/heads/master:refs/remotes/origin/master
     > git config remote.origin.url https://github.com/grohan2002/environment-carpcoal-staging.git # timeout=10
     > git config --add remote.origin.fetch +refs/heads/master:refs/remotes/origin/master # timeout=10
     > git config remote.origin.url https://github.com/grohan2002/environment-carpcoal-staging.git # timeout=10
    Fetching without tags
    Fetching upstream changes from https://github.com/grohan2002/environment-carpcoal-staging.git
    using GIT_ASKPASS to set credentials API Token for acccessing https://github.com git service inside pipelines
     > git fetch --no-tags --progress https://github.com/grohan2002/environment-carpcoal-staging.git +refs/heads/master:refs/remotes/origin/master
    Checking out Revision 85e3e0347b4d8ad42f4a8d422e53b9d5691c8e6d (master)
     > git config core.sparsecheckout # timeout=10
     > git checkout -f 85e3e0347b4d8ad42f4a8d422e53b9d5691c8e6d
    Commit message: "Add environment configuration"
    First time build. Skipping changelog.
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] withEnv
    [Pipeline] {
    [Pipeline] stage
    [Pipeline] { (Validate Environment)
    [Pipeline] container
    [Pipeline] {
    [Pipeline] sh
    [ent-carpcoal-staging_master-6QDKMJ2XMNMFA5GSJVDMXNPODJHK2OTAAIO23EZOPYXO5MLNXDQQ] Running shell script
    + make build
    rm -rf requirements.lock
    helm version
    Client: &version.Version{SemVer:"v2.8.2", GitCommit:"a80231648a1473929271764b920a8e346f6de844", GitTreeState:"clean"}
    Server: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"}
    helm init
    Creating /home/jenkins/.helm 
    Creating /home/jenkins/.helm/repository 
    Creating /home/jenkins/.helm/repository/cache 
    Creating /home/jenkins/.helm/repository/local 
    Creating /home/jenkins/.helm/plugins 
    Creating /home/jenkins/.helm/starters 
    Creating /home/jenkins/.helm/cache/archive 
    Creating /home/jenkins/.helm/repository/repositories.yaml 
    Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com 
    Adding local repo with URL: http://127.0.0.1:8879/charts 
    $HELM_HOME has been configured at /home/jenkins/.helm.
    Warning: Tiller is already installed in the cluster.
    (Use --client-only to suppress this message, or --upgrade to upgrade Tiller to the current version.)
    Happy Helming!
    helm repo add releases http://jenkins-x-chartmuseum:8080
    "releases" has been added to your repositories
    helm repo add jenkins-x http://chartmuseum.build.cd.jenkins-x.io
    "jenkins-x" has been added to your repositories
    helm dependency build "env"
    Hang tight while we grab the latest from your chart repositories...
    ...Unable to get an update from the "local" chart repository (http://127.0.0.1:8879/charts):
    	Get http://127.0.0.1:8879/charts/index.yaml: dial tcp 127.0.0.1:8879: getsockopt: connection refused
    ...Successfully got an update from the "releases" chart repository
    ...Successfully got an update from the "stable" chart repository
    ...Successfully got an update from the "jenkins-x" chart repository
    Update Complete. ⎈Happy Helming!
    Saving 2 charts
    Downloading exposecontroller from repo http://chartmuseum.build.cd.jenkins-x.io
    Downloading exposecontroller from repo http://chartmuseum.build.cd.jenkins-x.io
    Deleting outdated charts
    helm lint "env"
    ==> Linting env
    Lint OK
    
    1 chart(s) linted, no failures
    [Pipeline] }
    [Pipeline] // container
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (Update Environment)
    [Pipeline] container
    [Pipeline] {
    [Pipeline] sh
    [ent-carpcoal-staging_master-6QDKMJ2XMNMFA5GSJVDMXNPODJHK2OTAAIO23EZOPYXO5MLNXDQQ] Running shell script
    + make install
    helm upgrade "jx-staging" "env" --install --namespace "jx-staging" --debug
    [debug] Created tunnel using local port: '36938'
    
    [debug] SERVER: "127.0.0.1:36938"
    
    Release "jx-staging" does not exist. Installing it now.
    [debug] CHART PATH: /home/jenkins/workspace/ent-carpcoal-staging_master-6QDKMJ2XMNMFA5GSJVDMXNPODJHK2OTAAIO23EZOPYXO5MLNXDQQ/env
    
    NAME:   jx-staging
    REVISION: 1
    RELEASED: Fri Jun  8 09:06:21 2018
    CHART: env-0.0.1
    USER-SUPPLIED VALUES:
    {}
    
    COMPUTED VALUES:
    cleanup:
      Annotations:
        helm.sh/hook: pre-delete
        helm.sh/hook-delete-policy: hook-succeeded
      Args:
      - --cleanup
      BackoffLimit: 5
      Image: jenkinsxio/exposecontroller
      ImageTag: 2.3.58
      global: {}
    expose:
      Annotations:
        helm.sh/hook: post-install,post-upgrade
        helm.sh/hook-delete-policy: hook-succeeded
      BackoffLimit: 5
      Image: jenkinsxio/exposecontroller
      ImageTag: 2.3.58
      config:
        domain: 35.230.49.158.nip.io
        exposer: Ingress
        http: "true"
        tlsacme: "false"
      global: {}
    
    HOOKS:
    ---
    # expose
    apiVersion: batch/v1
    kind: Job
    metadata:
      name: expose
      labels:
        heritage: "Tiller"
        release: "jx-staging"
        chart: "expose-2.3.58"
        component: "jx-staging-expose"
      name: expose
      annotations:
        helm.sh/hook: post-install,post-upgrade
        helm.sh/hook-delete-policy: hook-succeeded
        
    spec:
      # backoffLimit: 5
      template:
        metadata:
          name: "jx-staging"
          labels:
            heritage: "Tiller"
            release: "jx-staging"
            chart: "expose-2.3.58"
        spec:
          containers:
          - env:
            - name: KUBERNETES_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
            image: "jenkinsxio/exposecontroller:2.3.58"
            name: expose
            command: ["/exposecontroller"]
            args:
          serviceAccountName: expose
          restartPolicy: Never
    ---
    # cleanup
    apiVersion: batch/v1
    kind: Job
    metadata:
      name: cleanup
      labels:
        heritage: "Tiller"
        release: "jx-staging"
        chart: "cleanup-2.3.58"
        component: "jx-staging-cleanup"
      name: cleanup
      annotations:
        helm.sh/hook: pre-delete
        helm.sh/hook-delete-policy: hook-succeeded
        
    spec:
      # backoffLimit: 5
      template:
        metadata:
          name: "jx-staging"
          labels:
            heritage: "Tiller"
            release: "jx-staging"
            chart: "cleanup-2.3.58"
        spec:
          containers:
          - env:
            - name: KUBERNETES_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
            image: "jenkinsxio/exposecontroller:2.3.58"
            name: cleanup
            command: ["/exposecontroller"]
            args:
            - "--cleanup"
          serviceAccountName: cleanup
          restartPolicy: Never
    MANIFEST:
    
    ---
    # Source: env/charts/expose/templates/configmap.yaml
    apiVersion: v1
    data:
      config.yml: |-
        exposer: Ingress
        domain: 35.230.49.158.nip.io
        http: true
        tls-acme: false
    kind: ConfigMap
    metadata:
      name: exposecontroller
    ---
    # Source: env/charts/cleanup/templates/serviceaccount.yaml
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      labels:
        app: cleanup
        chart: "cleanup-2.3.58"
        release: "jx-staging"
        heritage: "Tiller"
      name: cleanup
    ---
    # Source: env/charts/expose/templates/serviceaccount.yaml
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      labels:
        app: expose
        chart: "expose-2.3.58"
        release: "jx-staging"
        heritage: "Tiller"
      name: expose
    ---
    # Source: env/charts/cleanup/templates/role.yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: cleanup
    rules:
    - apiGroups:
      - extensions
      resources:
      - ingresses
      verbs:
      - get
      - list
      - watch
      - patch
      - create
      - update
      - delete
    - apiGroups:
      - ""
      resources:
      - configmaps
      - services
      verbs:
      - get
      - list
      - watch
      - patch
      - update
    - apiGroups:
      - apps
      resources:
      - deployments
      verbs:
      - get
      - list
      - watch
      - patch
      - update
    - apiGroups:
      - ""
      - "route.openshift.io"
      resources:
      - routes
      verbs:
      - get
      - list
      - watch
      - patch
      - create
      - update
      - delete
    ---
    # Source: env/charts/expose/templates/role.yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: expose
    rules:
    - apiGroups:
      - extensions
      resources:
      - ingresses
      verbs:
      - get
      - list
      - watch
      - patch
      - create
      - update
      - delete
    - apiGroups:
      - ""
      resources:
      - configmaps
      - services
      verbs:
      - get
      - list
      - watch
      - patch
      - update
    - apiGroups:
      - apps
      resources:
      - deployments
      verbs:
      - get
      - list
      - watch
      - patch
      - update
    - apiGroups:
      - ""
      - "route.openshift.io"
      resources:
      - routes
      verbs:
      - get
      - list
      - watch
      - patch
      - create
      - update
      - delete
    ---
    # Source: env/charts/cleanup/templates/rolebinding.yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: cleanup
      namespace: jx-staging
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: cleanup
    subjects:
    - kind: ServiceAccount
      name: cleanup
      namespace: jx-staging
    ---
    # Source: env/charts/expose/templates/rolebinding.yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: expose
      namespace: jx-staging
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: expose
    subjects:
    - kind: ServiceAccount
      name: expose
      namespace: jx-staging
    LAST DEPLOYED: Fri Jun  8 09:06:21 2018
    NAMESPACE: jx-staging
    STATUS: DEPLOYED
    
    RESOURCES:
    ==> v1/ConfigMap
    NAME              DATA  AGE
    exposecontroller  1     9s
    
    ==> v1/ServiceAccount
    NAME     SECRETS  AGE
    cleanup  1        9s
    expose   1        9s
    
    ==> v1/Role
    NAME     AGE
    cleanup  9s
    expose   9s
    
    ==> v1/RoleBinding
    NAME     AGE
    cleanup  9s
    expose   9s
    
    
    [Pipeline] }
    [Pipeline] // container
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] }
    [Pipeline] // withEnv
    [Pipeline] }
    [Pipeline] // node
    [Pipeline] End of Pipeline
    
    GitHub has been notified of this commit’s build result
    
    Finished: SUCCESS

    Please find detailed logs of the above command from the Production environment displayed below.

    $ jx get build logs
    ? Which pipeline do you want to view the logs of?:  grohan2002/environment-carpcoal-production/master
    view the log at: http://jenkins.jx.35.230.49.158.nip.io/job/grohan2002/job/environment-carpcoal-production/job/master/1/console
    tailing the log of grohan2002/environment-carpcoal-production/master #1
    Branch indexing
    Connecting to https://api.github.com using grohan2002/****** (API Token for acccessing https://github.com git service inside pipelines)
    Obtained Jenkinsfile from 064603de5cc9f03d0b893fa4aaa6950b7bfe99f1
    Running in Durability level: MAX_SURVIVABILITY
    [Pipeline] node
    Still waiting to schedule task
    maven-5xzh0 is offline
    Running on maven-8hhjb in /home/jenkins/workspace/-carpcoal-production_master-TXWJBDNX3PPVBA42Y2NQBLQ5UXXIJZQJRN5IAG7FWTSCBVLG7VCQ
    [Pipeline] {
    [Pipeline] stage
    [Pipeline] { (Declarative: Checkout SCM)
    [Pipeline] checkout
    Cloning the remote Git repository
    Cloning with configured refspecs honoured and without tags
    Cloning repository https://github.com/grohan2002/environment-carpcoal-production.git
     > git init /home/jenkins/workspace/-carpcoal-production_master-TXWJBDNX3PPVBA42Y2NQBLQ5UXXIJZQJRN5IAG7FWTSCBVLG7VCQ # timeout=10
    Fetching upstream changes from https://github.com/grohan2002/environment-carpcoal-production.git
     > git --version # timeout=10
    using GIT_ASKPASS to set credentials API Token for acccessing https://github.com git service inside pipelines
     > git fetch --no-tags --progress https://github.com/grohan2002/environment-carpcoal-production.git +refs/heads/master:refs/remotes/origin/master
     > git config remote.origin.url https://github.com/grohan2002/environment-carpcoal-production.git # timeout=10
     > git config --add remote.origin.fetch +refs/heads/master:refs/remotes/origin/master # timeout=10
     > git config remote.origin.url https://github.com/grohan2002/environment-carpcoal-production.git # timeout=10
    Fetching without tags
    Fetching upstream changes from https://github.com/grohan2002/environment-carpcoal-production.git
    using GIT_ASKPASS to set credentials API Token for acccessing https://github.com git service inside pipelines
     > git fetch --no-tags --progress https://github.com/grohan2002/environment-carpcoal-production.git +refs/heads/master:refs/remotes/origin/master
    Checking out Revision 064603de5cc9f03d0b893fa4aaa6950b7bfe99f1 (master)
     > git config core.sparsecheckout # timeout=10
     > git checkout -f 064603de5cc9f03d0b893fa4aaa6950b7bfe99f1
    Commit message: "Add environment configuration"
    First time build. Skipping changelog.
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] withEnv
    [Pipeline] {
    [Pipeline] stage
    [Pipeline] { (Validate Environment)
    [Pipeline] container
    [Pipeline] {
    [Pipeline] sh
    [-carpcoal-production_master-TXWJBDNX3PPVBA42Y2NQBLQ5UXXIJZQJRN5IAG7FWTSCBVLG7VCQ] Running shell script
    + make build
    rm -rf requirements.lock
    helm version
    Client: &version.Version{SemVer:"v2.8.2", GitCommit:"a80231648a1473929271764b920a8e346f6de844", GitTreeState:"clean"}
    Server: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"}
    helm init
    Creating /home/jenkins/.helm 
    Creating /home/jenkins/.helm/repository 
    Creating /home/jenkins/.helm/repository/cache 
    Creating /home/jenkins/.helm/repository/local 
    Creating /home/jenkins/.helm/plugins 
    Creating /home/jenkins/.helm/starters 
    Creating /home/jenkins/.helm/cache/archive 
    Creating /home/jenkins/.helm/repository/repositories.yaml 
    Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com 
    Adding local repo with URL: http://127.0.0.1:8879/charts 
    $HELM_HOME has been configured at /home/jenkins/.helm.
    Warning: Tiller is already installed in the cluster.
    (Use --client-only to suppress this message, or --upgrade to upgrade Tiller to the current version.)
    Happy Helming!
    helm repo add releases http://jenkins-x-chartmuseum:8080
    "releases" has been added to your repositories
    helm repo add jenkins-x http://chartmuseum.build.cd.jenkins-x.io
    "jenkins-x" has been added to your repositories
    helm dependency build "env"
    Hang tight while we grab the latest from your chart repositories...
    ...Unable to get an update from the "local" chart repository (http://127.0.0.1:8879/charts):
    	Get http://127.0.0.1:8879/charts/index.yaml: dial tcp 127.0.0.1:8879: getsockopt: connection refused
    ...Successfully got an update from the "releases" chart repository
    ...Successfully got an update from the "stable" chart repository
    ...Successfully got an update from the "jenkins-x" chart repository
    Update Complete. ⎈Happy Helming!
    Saving 2 charts
    Downloading exposecontroller from repo http://chartmuseum.build.cd.jenkins-x.io
    Downloading exposecontroller from repo http://chartmuseum.build.cd.jenkins-x.io
    Deleting outdated charts
    helm lint "env"
    ==> Linting env
    Lint OK
    
    1 chart(s) linted, no failures
    [Pipeline] }
    [Pipeline] // container
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (Update Environment)
    [Pipeline] container
    [Pipeline] {
    [Pipeline] sh
    [-carpcoal-production_master-TXWJBDNX3PPVBA42Y2NQBLQ5UXXIJZQJRN5IAG7FWTSCBVLG7VCQ] Running shell script
    + make install
    helm upgrade "jx-production" "env" --install --namespace "jx-production" --debug
    [debug] Created tunnel using local port: '38796'
    
    [debug] SERVER: "127.0.0.1:38796"
    
    Release "jx-production" does not exist. Installing it now.
    [debug] CHART PATH: /home/jenkins/workspace/-carpcoal-production_master-TXWJBDNX3PPVBA42Y2NQBLQ5UXXIJZQJRN5IAG7FWTSCBVLG7VCQ/env
    
    NAME:   jx-production
    REVISION: 1
    RELEASED: Fri Jun  8 09:08:34 2018
    CHART: env-0.0.1
    USER-SUPPLIED VALUES:
    {}
    
    COMPUTED VALUES:
    cleanup:
      Annotations:
        helm.sh/hook: pre-delete
        helm.sh/hook-delete-policy: hook-succeeded
      Args:
      - --cleanup
      BackoffLimit: 5
      Image: jenkinsxio/exposecontroller
      ImageTag: 2.3.58
      global: {}
    expose:
      Annotations:
        helm.sh/hook: post-install,post-upgrade
        helm.sh/hook-delete-policy: hook-succeeded
      BackoffLimit: 5
      Image: jenkinsxio/exposecontroller
      ImageTag: 2.3.58
      config:
        domain: 35.230.49.158.nip.io
        exposer: Ingress
        http: "true"
        tlsacme: "false"
      global: {}
    
    HOOKS:
    ---
    # cleanup
    apiVersion: batch/v1
    kind: Job
    metadata:
      name: cleanup
      labels:
        heritage: "Tiller"
        release: "jx-production"
        chart: "cleanup-2.3.58"
        component: "jx-production-cleanup"
      name: cleanup
      annotations:
        helm.sh/hook: pre-delete
        helm.sh/hook-delete-policy: hook-succeeded
        
    spec:
      # backoffLimit: 5
      template:
        metadata:
          name: "jx-production"
          labels:
            heritage: "Tiller"
            release: "jx-production"
            chart: "cleanup-2.3.58"
        spec:
          containers:
          - env:
            - name: KUBERNETES_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
            image: "jenkinsxio/exposecontroller:2.3.58"
            name: cleanup
            command: ["/exposecontroller"]
            args:
            - "--cleanup"
          serviceAccountName: cleanup
          restartPolicy: Never
    ---
    # expose
    apiVersion: batch/v1
    kind: Job
    metadata:
      name: expose
      labels:
        heritage: "Tiller"
        release: "jx-production"
        chart: "expose-2.3.58"
        component: "jx-production-expose"
      name: expose
      annotations:
        helm.sh/hook: post-install,post-upgrade
        helm.sh/hook-delete-policy: hook-succeeded
        
    spec:
      # backoffLimit: 5
      template:
        metadata:
          name: "jx-production"
          labels:
            heritage: "Tiller"
            release: "jx-production"
            chart: "expose-2.3.58"
        spec:
          containers:
          - env:
            - name: KUBERNETES_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
            image: "jenkinsxio/exposecontroller:2.3.58"
            name: expose
            command: ["/exposecontroller"]
            args:
          serviceAccountName: expose
          restartPolicy: Never
    MANIFEST:
    
    ---
    # Source: env/charts/expose/templates/configmap.yaml
    apiVersion: v1
    data:
      config.yml: |-
        exposer: Ingress
        domain: 35.230.49.158.nip.io
        http: true
        tls-acme: false
    kind: ConfigMap
    metadata:
      name: exposecontroller
    ---
    # Source: env/charts/cleanup/templates/serviceaccount.yaml
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      labels:
        app: cleanup
        chart: "cleanup-2.3.58"
        release: "jx-production"
        heritage: "Tiller"
      name: cleanup
    ---
    # Source: env/charts/expose/templates/serviceaccount.yaml
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      labels:
        app: expose
        chart: "expose-2.3.58"
        release: "jx-production"
        heritage: "Tiller"
      name: expose
    ---
    # Source: env/charts/cleanup/templates/role.yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: cleanup
    rules:
    - apiGroups:
      - extensions
      resources:
      - ingresses
      verbs:
      - get
      - list
      - watch
      - patch
      - create
      - update
      - delete
    - apiGroups:
      - ""
      resources:
      - configmaps
      - services
      verbs:
      - get
      - list
      - watch
      - patch
      - update
    - apiGroups:
      - apps
      resources:
      - deployments
      verbs:
      - get
      - list
      - watch
      - patch
      - update
    - apiGroups:
      - ""
      - "route.openshift.io"
      resources:
      - routes
      verbs:
      - get
      - list
      - watch
      - patch
      - create
      - update
      - delete
    ---
    # Source: env/charts/expose/templates/role.yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: expose
    rules:
    - apiGroups:
      - extensions
      resources:
      - ingresses
      verbs:
      - get
      - list
      - watch
      - patch
      - create
      - update
      - delete
    - apiGroups:
      - ""
      resources:
      - configmaps
      - services
      verbs:
      - get
      - list
      - watch
      - patch
      - update
    - apiGroups:
      - apps
      resources:
      - deployments
      verbs:
      - get
      - list
      - watch
      - patch
      - update
    - apiGroups:
      - ""
      - "route.openshift.io"
      resources:
      - routes
      verbs:
      - get
      - list
      - watch
      - patch
      - create
      - update
      - delete
    ---
    # Source: env/charts/cleanup/templates/rolebinding.yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: cleanup
      namespace: jx-production
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: cleanup
    subjects:
    - kind: ServiceAccount
      name: cleanup
      namespace: jx-production
    ---
    # Source: env/charts/expose/templates/rolebinding.yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: expose
      namespace: jx-production
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: expose
    subjects:
    - kind: ServiceAccount
      name: expose
      namespace: jx-production
    LAST DEPLOYED: Fri Jun  8 09:08:34 2018
    NAMESPACE: jx-production
    STATUS: DEPLOYED
    
    RESOURCES:
    ==> v1/ConfigMap
    NAME              DATA  AGE
    exposecontroller  1     9s
    
    ==> v1/ServiceAccount
    NAME     SECRETS  AGE
    cleanup  1        9s
    expose   1        9s
    
    ==> v1/Role
    NAME     AGE
    cleanup  9s
    expose   8s
    
    ==> v1/RoleBinding
    NAME     AGE
    cleanup  8s
    expose   8s
    
    
    [Pipeline] }
    [Pipeline] // container
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] }
    [Pipeline] // withEnv
    [Pipeline] }
    [Pipeline] // node
    [Pipeline] End of Pipeline
    
    GitHub has been notified of this commit’s build result
    
    Finished: SUCCESS

    Jenkins X has been successfully installed and default environments are created on our new GKE cluster.

    How to create an application on Jenkins X

    The following steps creates a sample Spring Boot application and import it into Jenkins X.

    1. Command to create Spring Application 

    jx create spring

    It will prompt for some questions like the type of project, mvn group ID, artefact name, spring boot dependencies etc. It initializes this project as a Git repository. It adds some extra files to the repo i.e. Dockerfile, Jenkinsfile, charts etc. This will create a repository in GitHub. Also creates a project in Jenkins and registers webhooks in the Git repository.

    2. Command to get build logs

    jx get build logs

    aditi@EMP:/tmp$ jx get build logs
    ? Which pipeline do you want to view the logs of?:  grohan2002/demo08/master
    view the log at: http://jenkins.jx.35.230.49.158.nip.io/job/grohan2002/job/demo08/job/master/1/console
    tailing the log of grohan2002/demo08/master #1
    Branch indexing
    Connecting to https://api.github.com using grohan2002/****** (API Token for acccessing https://github.com git service inside pipelines)
    Obtained Jenkinsfile from efc077e94f0b7820ee4a626bd921e5da208ecf8a
    Running in Durability level: MAX_SURVIVABILITY
    [Pipeline] node
    Still waiting to schedule task
    Waiting for next available executor
    Running on maven-0tbjd in /home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A
    [Pipeline] {
    [Pipeline] stage
    [Pipeline] { (Declarative: Checkout SCM)
    [Pipeline] checkout
    Cloning the remote Git repository
    Cloning with configured refspecs honoured and without tags
    Cloning repository https://github.com/grohan2002/demo08.git
     > git init /home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A # timeout=10
    Fetching upstream changes from https://github.com/grohan2002/demo08.git
     > git --version # timeout=10
    using GIT_ASKPASS to set credentials API Token for acccessing https://github.com git service inside pipelines
     > git fetch --no-tags --progress https://github.com/grohan2002/demo08.git +refs/heads/master:refs/remotes/origin/master
     > git config remote.origin.url https://github.com/grohan2002/demo08.git # timeout=10
     > git config --add remote.origin.fetch +refs/heads/master:refs/remotes/origin/master # timeout=10
     > git config remote.origin.url https://github.com/grohan2002/demo08.git # timeout=10
    Fetching without tags
    Fetching upstream changes from https://github.com/grohan2002/demo08.git
    using GIT_ASKPASS to set credentials API Token for acccessing https://github.com git service inside pipelines
     > git fetch --no-tags --progress https://github.com/grohan2002/demo08.git +refs/heads/master:refs/remotes/origin/master
    Checking out Revision efc077e94f0b7820ee4a626bd921e5da208ecf8a (master)
     > git config core.sparsecheckout # timeout=10
     > git checkout -f efc077e94f0b7820ee4a626bd921e5da208ecf8a
    Commit message: "Draft create"
    First time build. Skipping changelog.
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] withEnv
    [Pipeline] {
    [Pipeline] withCredentials
    [Pipeline] {
    [Pipeline] withEnv
    [Pipeline] {
    [Pipeline] stage
    [Pipeline] { (CI Build and push snapshot)
    Stage 'CI Build and push snapshot' skipped due to when conditional
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (Build Release)
    [Pipeline] container
    [Pipeline] {
    [Pipeline] sh
    [grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A] Running shell script
    + git checkout master
    Switched to a new branch 'master'
    Branch master set up to track remote branch master from origin.
    [Pipeline] sh
    [grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A] Running shell script
    + git config --global credential.helper store
    [Pipeline] sh
    [grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A] Running shell script
    + jx step validate --min-jx-version 1.1.73
    [Pipeline] sh
    [grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A] Running shell script
    + jx step git credentials
    Generated git credentials file /home/jenkins/git/credentials
    [Pipeline] sh
    [grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A] Running shell script
    ++ jx-release-version
    + echo 0.0.1
    [Pipeline] sh
    [grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A] Running shell script
    ++ cat VERSION
    + mvn versions:set -DnewVersion=0.0.1
    Picked up _JAVA_OPTIONS: -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Dsun.zip.disableMemoryMapping=true -XX:+UseParallelGC -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Xms10m -Xmx192m
    [INFO] Scanning for projects...
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-parent/2.0.2.RELEASE/spring-boot-starter-parent-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-parent/2.0.2.RELEASE/spring-boot-starter-parent-2.0.2.RELEASE.pom (12 KB at 5.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-dependencies/2.0.2.RELEASE/spring-boot-dependencies-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-dependencies/2.0.2.RELEASE/spring-boot-dependencies-2.0.2.RELEASE.pom (133 KB at 498.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/jackson/jackson-bom/2.9.5/jackson-bom-2.9.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/jackson/jackson-bom/2.9.5/jackson-bom-2.9.5.pom (13 KB at 82.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/jackson/jackson-parent/2.9.1/jackson-parent-2.9.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/jackson/jackson-parent/2.9.1/jackson-parent-2.9.1.pom (8 KB at 61.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/oss-parent/30/oss-parent-30.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/oss-parent/30/oss-parent-30.pom (21 KB at 169.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/io/netty/netty-bom/4.1.24.Final/netty-bom-4.1.24.Final.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/io/netty/netty-bom/4.1.24.Final/netty-bom-4.1.24.Final.pom (8 KB at 86.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/oss/oss-parent/7/oss-parent-7.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/oss/oss-parent/7/oss-parent-7.pom (5 KB at 51.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/io/projectreactor/reactor-bom/Bismuth-SR9/reactor-bom-Bismuth-SR9.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/io/projectreactor/reactor-bom/Bismuth-SR9/reactor-bom-Bismuth-SR9.pom (4 KB at 32.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/logging/log4j/log4j-bom/2.10.0/log4j-bom-2.10.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/logging/log4j/log4j-bom/2.10.0/log4j-bom-2.10.0.pom (6 KB at 53.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/logging/logging-parent/1/logging-parent-1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/logging/logging-parent/1/logging-parent-1.pom (4 KB at 26.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/apache/18/apache-18.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/apache/18/apache-18.pom (16 KB at 121.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/eclipse/jetty/jetty-bom/9.4.10.v20180503/jetty-bom-9.4.10.v20180503.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/eclipse/jetty/jetty-bom/9.4.10.v20180503/jetty-bom-9.4.10.v20180503.pom (18 KB at 129.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/spring-framework-bom/5.0.6.RELEASE/spring-framework-bom-5.0.6.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/spring-framework-bom/5.0.6.RELEASE/spring-framework-bom-5.0.6.RELEASE.pom (6 KB at 20.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/data/spring-data-releasetrain/Kay-SR7/spring-data-releasetrain-Kay-SR7.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/data/spring-data-releasetrain/Kay-SR7/spring-data-releasetrain-Kay-SR7.pom (5 KB at 37.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/data/build/spring-data-build/2.0.7.RELEASE/spring-data-build-2.0.7.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/data/build/spring-data-build/2.0.7.RELEASE/spring-data-build-2.0.7.RELEASE.pom (7 KB at 57.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/integration/spring-integration-bom/5.0.5.RELEASE/spring-integration-bom-5.0.5.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/integration/spring-integration-bom/5.0.5.RELEASE/spring-integration-bom-5.0.5.RELEASE.pom (9 KB at 106.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/security/spring-security-bom/5.0.5.RELEASE/spring-security-bom-5.0.5.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/security/spring-security-bom/5.0.5.RELEASE/spring-security-bom-5.0.5.RELEASE.pom (5 KB at 53.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/session/spring-session-bom/Apple-SR2/spring-session-bom-Apple-SR2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/session/spring-session-bom/Apple-SR2/spring-session-bom-Apple-SR2.pom (3 KB at 26.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-maven-plugin/2.0.2.RELEASE/spring-boot-maven-plugin-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-maven-plugin/2.0.2.RELEASE/spring-boot-maven-plugin-2.0.2.RELEASE.pom (5 KB at 41.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-tools/2.0.2.RELEASE/spring-boot-tools-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-tools/2.0.2.RELEASE/spring-boot-tools-2.0.2.RELEASE.pom (2 KB at 14.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-parent/2.0.2.RELEASE/spring-boot-parent-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-parent/2.0.2.RELEASE/spring-boot-parent-2.0.2.RELEASE.pom (2 KB at 10.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-maven-plugin/2.0.2.RELEASE/spring-boot-maven-plugin-2.0.2.RELEASE.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-maven-plugin/2.0.2.RELEASE/spring-boot-maven-plugin-2.0.2.RELEASE.jar (63 KB at 520.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-clean-plugin/3.0.0/maven-clean-plugin-3.0.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-clean-plugin/3.0.0/maven-clean-plugin-3.0.0.pom (5 KB at 30.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-plugins/28/maven-plugins-28.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-plugins/28/maven-plugins-28.pom (12 KB at 100.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-parent/27/maven-parent-27.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-parent/27/maven-parent-27.pom (40 KB at 393.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/apache/17/apache-17.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/apache/17/apache-17.pom (16 KB at 161.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-clean-plugin/3.0.0/maven-clean-plugin-3.0.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-clean-plugin/3.0.0/maven-clean-plugin-3.0.0.jar (30 KB at 282.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-resources-plugin/3.0.1/maven-resources-plugin-3.0.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-resources-plugin/3.0.1/maven-resources-plugin-3.0.1.pom (7 KB at 68.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-plugins/30/maven-plugins-30.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-plugins/30/maven-plugins-30.pom (10 KB at 115.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-parent/30/maven-parent-30.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-parent/30/maven-parent-30.pom (41 KB at 411.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-resources-plugin/3.0.1/maven-resources-plugin-3.0.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-resources-plugin/3.0.1/maven-resources-plugin-3.0.1.jar (31 KB at 341.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-jar-plugin/3.0.2/maven-jar-plugin-3.0.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-jar-plugin/3.0.2/maven-jar-plugin-3.0.2.pom (7 KB at 66.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-jar-plugin/3.0.2/maven-jar-plugin-3.0.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-jar-plugin/3.0.2/maven-jar-plugin-3.0.2.jar (27 KB at 321.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-compiler-plugin/3.7.0/maven-compiler-plugin-3.7.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-compiler-plugin/3.7.0/maven-compiler-plugin-3.7.0.pom (11 KB at 113.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-compiler-plugin/3.7.0/maven-compiler-plugin-3.7.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-compiler-plugin/3.7.0/maven-compiler-plugin-3.7.0.jar (57 KB at 598.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-surefire-plugin/2.21.0/maven-surefire-plugin-2.21.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-surefire-plugin/2.21.0/maven-surefire-plugin-2.21.0.pom (6 KB at 56.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire/2.21.0/surefire-2.21.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire/2.21.0/surefire-2.21.0.pom (28 KB at 236.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-surefire-plugin/2.21.0/maven-surefire-plugin-2.21.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-surefire-plugin/2.21.0/maven-surefire-plugin-2.21.0.jar (40 KB at 389.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-install-plugin/2.5.2/maven-install-plugin-2.5.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-install-plugin/2.5.2/maven-install-plugin-2.5.2.pom (7 KB at 66.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-plugins/25/maven-plugins-25.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-plugins/25/maven-plugins-25.pom (10 KB at 87.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-parent/24/maven-parent-24.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-parent/24/maven-parent-24.pom (37 KB at 327.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/apache/14/apache-14.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/apache/14/apache-14.pom (15 KB at 177.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-install-plugin/2.5.2/maven-install-plugin-2.5.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-install-plugin/2.5.2/maven-install-plugin-2.5.2.jar (33 KB at 437.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-deploy-plugin/2.8.2/maven-deploy-plugin-2.8.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-deploy-plugin/2.8.2/maven-deploy-plugin-2.8.2.pom (7 KB at 98.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-deploy-plugin/2.8.2/maven-deploy-plugin-2.8.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-deploy-plugin/2.8.2/maven-deploy-plugin-2.8.2.jar (34 KB at 432.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-site-plugin/3.6/maven-site-plugin-3.6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-site-plugin/3.6/maven-site-plugin-3.6.pom (18 KB at 138.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-site-plugin/3.6/maven-site-plugin-3.6.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-site-plugin/3.6/maven-site-plugin-3.6.jar (130 KB at 1318.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/jetbrains/kotlin/kotlin-maven-plugin/1.2.41/kotlin-maven-plugin-1.2.41.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/jetbrains/kotlin/kotlin-maven-plugin/1.2.41/kotlin-maven-plugin-1.2.41.pom (6 KB at 52.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/jetbrains/kotlin/kotlin-project/1.2.41/kotlin-project-1.2.41.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/jetbrains/kotlin/kotlin-project/1.2.41/kotlin-project-1.2.41.pom (10 KB at 120.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/jetbrains/kotlin/kotlin-maven-plugin/1.2.41/kotlin-maven-plugin-1.2.41.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/jetbrains/kotlin/kotlin-maven-plugin/1.2.41/kotlin-maven-plugin-1.2.41.jar (77 KB at 719.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/jooq/jooq-codegen-maven/3.10.7/jooq-codegen-maven-3.10.7.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/jooq/jooq-codegen-maven/3.10.7/jooq-codegen-maven-3.10.7.pom (4 KB at 29.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/jooq/jooq-parent/3.10.7/jooq-parent-3.10.7.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/jooq/jooq-parent/3.10.7/jooq-parent-3.10.7.pom (11 KB at 121.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/jooq/jooq-codegen-maven/3.10.7/jooq-codegen-maven-3.10.7.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/jooq/jooq-codegen-maven/3.10.7/jooq-codegen-maven-3.10.7.jar (16 KB at 164.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-antrun-plugin/1.8/maven-antrun-plugin-1.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-antrun-plugin/1.8/maven-antrun-plugin-1.8.pom (4 KB at 32.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-plugins/27/maven-plugins-27.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-plugins/27/maven-plugins-27.pom (12 KB at 132.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-parent/26/maven-parent-26.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-parent/26/maven-parent-26.pom (39 KB at 332.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/apache/16/apache-16.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/apache/16/apache-16.pom (16 KB at 90.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-antrun-plugin/1.8/maven-antrun-plugin-1.8.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-antrun-plugin/1.8/maven-antrun-plugin-1.8.jar (36 KB at 382.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-assembly-plugin/3.1.0/maven-assembly-plugin-3.1.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-assembly-plugin/3.1.0/maven-assembly-plugin-3.1.0.pom (16 KB at 184.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-assembly-plugin/3.1.0/maven-assembly-plugin-3.1.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-assembly-plugin/3.1.0/maven-assembly-plugin-3.1.0.jar (236 KB at 1601.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-dependency-plugin/3.0.2/maven-dependency-plugin-3.0.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-dependency-plugin/3.0.2/maven-dependency-plugin-3.0.2.pom (14 KB at 138.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-dependency-plugin/3.0.2/maven-dependency-plugin-3.0.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-dependency-plugin/3.0.2/maven-dependency-plugin-3.0.2.jar (163 KB at 1463.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-release-plugin/2.3.2/maven-release-plugin-2.3.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-release-plugin/2.3.2/maven-release-plugin-2.3.2.pom (10 KB at 91.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/release/maven-release/2.3.2/maven-release-2.3.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/release/maven-release/2.3.2/maven-release-2.3.2.pom (9 KB at 79.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-parent/21/maven-parent-21.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-parent/21/maven-parent-21.pom (26 KB at 396.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/apache/10/apache-10.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/apache/10/apache-10.pom (15 KB at 192.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-release-plugin/2.3.2/maven-release-plugin-2.3.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-release-plugin/2.3.2/maven-release-plugin-2.3.2.jar (44 KB at 577.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-eclipse-plugin/2.10/maven-eclipse-plugin-2.10.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-eclipse-plugin/2.10/maven-eclipse-plugin-2.10.pom (19 KB at 200.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-eclipse-plugin/2.10/maven-eclipse-plugin-2.10.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-eclipse-plugin/2.10/maven-eclipse-plugin-2.10.jar (219 KB at 1654.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-enforcer-plugin/3.0.0-M1/maven-enforcer-plugin-3.0.0-M1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-enforcer-plugin/3.0.0-M1/maven-enforcer-plugin-3.0.0-M1.pom (8 KB at 83.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/enforcer/enforcer/3.0.0-M1/enforcer-3.0.0-M1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/enforcer/enforcer/3.0.0-M1/enforcer-3.0.0-M1.pom (9 KB at 90.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-enforcer-plugin/3.0.0-M1/maven-enforcer-plugin-3.0.0-M1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-enforcer-plugin/3.0.0-M1/maven-enforcer-plugin-3.0.0-M1.jar (26 KB at 263.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-failsafe-plugin/2.21.0/maven-failsafe-plugin-2.21.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-failsafe-plugin/2.21.0/maven-failsafe-plugin-2.21.0.pom (12 KB at 123.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-failsafe-plugin/2.21.0/maven-failsafe-plugin-2.21.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-failsafe-plugin/2.21.0/maven-failsafe-plugin-2.21.0.jar (288 KB at 2142.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-invoker-plugin/3.0.0/maven-invoker-plugin-3.0.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-invoker-plugin/3.0.0/maven-invoker-plugin-3.0.0.pom (14 KB at 145.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-invoker-plugin/3.0.0/maven-invoker-plugin-3.0.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-invoker-plugin/3.0.0/maven-invoker-plugin-3.0.0.jar (111 KB at 1264.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-help-plugin/2.2/maven-help-plugin-2.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-help-plugin/2.2/maven-help-plugin-2.2.pom (9 KB at 107.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-plugins/24/maven-plugins-24.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-plugins/24/maven-plugins-24.pom (11 KB at 155.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-parent/23/maven-parent-23.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-parent/23/maven-parent-23.pom (32 KB at 227.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/apache/13/apache-13.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/apache/13/apache-13.pom (14 KB at 166.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-help-plugin/2.2/maven-help-plugin-2.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-help-plugin/2.2/maven-help-plugin-2.2.jar (67 KB at 827.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-javadoc-plugin/3.0.0/maven-javadoc-plugin-3.0.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-javadoc-plugin/3.0.0/maven-javadoc-plugin-3.0.0.pom (18 KB at 254.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-javadoc-plugin/3.0.0/maven-javadoc-plugin-3.0.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-javadoc-plugin/3.0.0/maven-javadoc-plugin-3.0.0.jar (406 KB at 3074.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-shade-plugin/2.4.3/maven-shade-plugin-2.4.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-shade-plugin/2.4.3/maven-shade-plugin-2.4.3.pom (9 KB at 110.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-shade-plugin/2.4.3/maven-shade-plugin-2.4.3.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-shade-plugin/2.4.3/maven-shade-plugin-2.4.3.jar (102 KB at 982.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-source-plugin/3.0.1/maven-source-plugin-3.0.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-source-plugin/3.0.1/maven-source-plugin-3.0.1.pom (6 KB at 66.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-source-plugin/3.0.1/maven-source-plugin-3.0.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-source-plugin/3.0.1/maven-source-plugin-3.0.1.jar (31 KB at 426.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-war-plugin/3.1.0/maven-war-plugin-3.1.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-war-plugin/3.1.0/maven-war-plugin-3.1.0.pom (10 KB at 135.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-war-plugin/3.1.0/maven-war-plugin-3.1.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-war-plugin/3.1.0/maven-war-plugin-3.1.0.jar (90 KB at 1220.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/mojo/build-helper-maven-plugin/3.0.0/build-helper-maven-plugin-3.0.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/mojo/build-helper-maven-plugin/3.0.0/build-helper-maven-plugin-3.0.0.pom (6 KB at 71.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/mojo/mojo-parent/40/mojo-parent-40.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/mojo/mojo-parent/40/mojo-parent-40.pom (33 KB at 490.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/mojo/build-helper-maven-plugin/3.0.0/build-helper-maven-plugin-3.0.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/mojo/build-helper-maven-plugin/3.0.0/build-helper-maven-plugin-3.0.0.jar (63 KB at 861.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/mojo/exec-maven-plugin/1.5.0/exec-maven-plugin-1.5.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/mojo/exec-maven-plugin/1.5.0/exec-maven-plugin-1.5.0.pom (13 KB at 152.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/mojo/mojo-parent/38/mojo-parent-38.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/mojo/mojo-parent/38/mojo-parent-38.pom (33 KB at 398.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/mojo/exec-maven-plugin/1.5.0/exec-maven-plugin-1.5.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/mojo/exec-maven-plugin/1.5.0/exec-maven-plugin-1.5.0.jar (53 KB at 619.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/mojo/versions-maven-plugin/2.3/versions-maven-plugin-2.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/mojo/versions-maven-plugin/2.3/versions-maven-plugin-2.3.pom (16 KB at 177.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/mojo/mojo-parent/39/mojo-parent-39.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/mojo/mojo-parent/39/mojo-parent-39.pom (34 KB at 429.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/mojo/versions-maven-plugin/2.3/versions-maven-plugin-2.3.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/mojo/versions-maven-plugin/2.3/versions-maven-plugin-2.3.jar (257 KB at 3210.0 KB/sec)
    [INFO]                   
    [INFO] ------------------------------------------------------------------------
    [INFO] Building demo 0.0.1-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO] 
    [INFO] --- versions-maven-plugin:2.3:set (default-cli) @ demo08 ---
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.pom (2 KB at 18.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven/2.2.1/maven-2.2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven/2.2.1/maven-2.2.1.pom (22 KB at 263.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-parent/11/maven-parent-11.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-parent/11/maven-parent-11.pom (32 KB at 400.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/apache/5/apache-5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/apache/5/apache-5.pom (5 KB at 62.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom (7 KB at 98.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom (12 KB at 182.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-artifact-manager/2.2.1/maven-artifact-manager-2.2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-artifact-manager/2.2.1/maven-artifact-manager-2.2.1.pom (4 KB at 42.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-repository-metadata/2.2.1/maven-repository-metadata-2.2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-repository-metadata/2.2.1/maven-repository-metadata-2.2.1.pom (2 KB at 25.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom (4 KB at 50.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom (492 B at 7.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom (6 KB at 51.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/junit/junit/4.12/junit-4.12.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/junit/junit/4.12/junit-4.12.pom (24 KB at 159.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom (766 B at 6.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom (2 KB at 28.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom (7 KB at 79.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom (4 KB at 39.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom (880 B at 11.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-core/2.2.1/maven-core-2.2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-core/2.2.1/maven-core-2.2.1.pom (12 KB at 153.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.pom (3 KB at 30.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-model/2.2.1/maven-model-2.2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-model/2.2.1/maven-model-2.2.1.pom (4 KB at 41.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.pom (889 B at 9.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-components/1.1.14/plexus-components-1.1.14.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-components/1.1.14/plexus-components-1.1.14.pom (6 KB at 82.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-parameter-documenter/2.2.1/maven-plugin-parameter-documenter-2.2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-parameter-documenter/2.2.1/maven-plugin-parameter-documenter-2.2.1.pom (2 KB at 24.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/slf4j/slf4j-jdk14/1.5.6/slf4j-jdk14-1.5.6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/slf4j/slf4j-jdk14/1.5.6/slf4j-jdk14-1.5.6.pom (2 KB at 22.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/slf4j/slf4j-parent/1.5.6/slf4j-parent-1.5.6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/slf4j/slf4j-parent/1.5.6/slf4j-parent-1.5.6.pom (8 KB at 61.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6.pom (3 KB at 42.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/slf4j/jcl-over-slf4j/1.5.6/jcl-over-slf4j-1.5.6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/slf4j/jcl-over-slf4j/1.5.6/jcl-over-slf4j-1.5.6.pom (3 KB at 30.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/reporting/maven-reporting-api/2.2.1/maven-reporting-api-2.2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/reporting/maven-reporting-api/2.2.1/maven-reporting-api-2.2.1.pom (2 KB at 31.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/reporting/maven-reporting/2.2.1/maven-reporting-2.2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/reporting/maven-reporting/2.2.1/maven-reporting-2.2.1.pom (2 KB at 22.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-sink-api/1.1/doxia-sink-api-1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-sink-api/1.1/doxia-sink-api-1.1.pom (2 KB at 26.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia/1.1/doxia-1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia/1.1/doxia-1.1.pom (15 KB at 231.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-logging-api/1.1/doxia-logging-api-1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-logging-api/1.1/doxia-logging-api-1.1.pom (2 KB at 29.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom (4 KB at 43.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom (2 KB at 28.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom (9 KB at 134.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom (3 KB at 30.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom (4 KB at 49.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom (9 KB at 99.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-profile/2.2.1/maven-profile-2.2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-profile/2.2.1/maven-profile-2.2.1.pom (3 KB at 16.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-error-diagnostics/2.2.1/maven-error-diagnostics-2.2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-error-diagnostics/2.2.1/maven-error-diagnostics-2.2.1.pom (2 KB at 25.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-project/2.2.1/maven-project-2.2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-project/2.2.1/maven-project-2.2.1.pom (3 KB at 38.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-registry/2.2.1/maven-plugin-registry-2.2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-registry/2.2.1/maven-plugin-registry-2.2.1.pom (2 KB at 21.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-cli/commons-cli/1.2/commons-cli-1.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-cli/commons-cli/1.2/commons-cli-1.2.pom (8 KB at 92.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/commons/commons-parent/11/commons-parent-11.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/commons/commons-parent/11/commons-parent-11.pom (25 KB at 183.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/apache/4/apache-4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/apache/4/apache-4.pom (5 KB at 67.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-api/2.2.1/maven-plugin-api-2.2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-api/2.2.1/maven-plugin-api-2.2.1.pom (2 KB at 9.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-descriptor/2.2.1/maven-plugin-descriptor-2.2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-descriptor/2.2.1/maven-plugin-descriptor-2.2.1.pom (3 KB at 33.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom (7 KB at 85.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-monitor/2.2.1/maven-monitor-2.2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-monitor/2.2.1/maven-monitor-2.2.1.pom (2 KB at 17.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/classworlds/classworlds/1.1/classworlds-1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/classworlds/classworlds/1.1/classworlds-1.1.pom (4 KB at 56.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.pom (3 KB at 39.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/spice/spice-parent/12/spice-parent-12.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/spice/spice-parent/12/spice-parent-12.pom (7 KB at 46.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/forge/forge-parent/4/forge-parent-4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/forge/forge-parent/4/forge-parent-4.pom (9 KB at 120.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.pom (6 KB at 81.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.pom (3 KB at 26.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom (3 KB at 21.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom (10 KB at 55.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-parent/16/maven-parent-16.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-parent/16/maven-parent-16.pom (23 KB at 247.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/apache/7/apache-7.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/apache/7/apache-7.pom (15 KB at 243.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.pom (2 KB at 21.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia/1.0/doxia-1.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia/1.0/doxia-1.0.pom (10 KB at 129.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-parent/10/maven-parent-10.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-parent/10/maven-parent-10.pom (31 KB at 441.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/reporting/maven-reporting-impl/2.2/maven-reporting-impl-2.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/reporting/maven-reporting-impl/2.2/maven-reporting-impl-2.2.pom (5 KB at 79.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-components/17/maven-shared-components-17.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-components/17/maven-shared-components-17.pom (9 KB at 139.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-sink-api/1.2/doxia-sink-api-1.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-sink-api/1.2/doxia-sink-api-1.2.pom (2 KB at 25.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia/1.2/doxia-1.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia/1.2/doxia-1.2.pom (19 KB at 259.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-parent/19/maven-parent-19.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-parent/19/maven-parent-19.pom (25 KB at 421.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/apache/9/apache-9.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/apache/9/apache-9.pom (15 KB at 259.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-logging-api/1.2/doxia-logging-api-1.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-logging-api/1.2/doxia-logging-api-1.2.pom (2 KB at 28.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-core/1.2/doxia-core-1.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-core/1.2/doxia-core-1.2.pom (4 KB at 36.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom (4 KB at 33.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom (17 KB at 209.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom (2 KB at 14.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.pom (2 KB at 25.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/apache/3/apache-3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/apache/3/apache-3.pom (4 KB at 50.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-lang/commons-lang/2.4/commons-lang-2.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-lang/commons-lang/2.4/commons-lang-2.4.pom (14 KB at 151.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/commons/commons-parent/9/commons-parent-9.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/commons/commons-parent/9/commons-parent-9.pom (22 KB at 329.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.pom (8 KB at 97.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/httpcomponents/httpcomponents-client/4.0.2/httpcomponents-client-4.0.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/httpcomponents/httpcomponents-client/4.0.2/httpcomponents-client-4.0.2.pom (9 KB at 44.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/httpcomponents/project/4.1/project-4.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/httpcomponents/project/4.1/project-4.1.pom (16 KB at 177.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom (5 KB at 69.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom (10 KB at 198.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/httpcomponents/project/4.0/project-4.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/httpcomponents/project/4.0/project-4.0.pom (13 KB at 209.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom (18 KB at 259.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/commons/commons-parent/5/commons-parent-5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/commons/commons-parent/5/commons-parent-5.pom (16 KB at 237.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-codec/commons-codec/1.3/commons-codec-1.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-codec/commons-codec/1.3/commons-codec-1.3.pom (6 KB at 74.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-site-renderer/1.2/doxia-site-renderer-1.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-site-renderer/1.2/doxia-site-renderer-1.2.pom (7 KB at 77.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-sitetools/1.2/doxia-sitetools-1.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-sitetools/1.2/doxia-sitetools-1.2.pom (16 KB at 217.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-decoration-model/1.2/doxia-decoration-model-1.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-decoration-model/1.2/doxia-decoration-model-1.2.pom (3 KB at 40.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-module-xhtml/1.2/doxia-module-xhtml-1.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-module-xhtml/1.2/doxia-module-xhtml-1.2.pom (2 KB at 14.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-modules/1.2/doxia-modules-1.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-modules/1.2/doxia-modules-1.2.pom (3 KB at 31.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-module-fml/1.2/doxia-module-fml-1.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-module-fml/1.2/doxia-module-fml-1.2.pom (6 KB at 57.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom (2 KB at 13.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom (3 KB at 36.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom (2 KB at 29.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom (2 KB at 29.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-container-default/1.0-alpha-20/plexus-container-default-1.0-alpha-20.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-container-default/1.0-alpha-20/plexus-container-default-1.0-alpha-20.pom (3 KB at 53.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-containers/1.0-alpha-20/plexus-containers-1.0-alpha-20.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-containers/1.0-alpha-20/plexus-containers-1.0-alpha-20.pom (2 KB at 30.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom (2 KB at 15.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom (8 KB at 119.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom (3 KB at 39.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom (8 KB at 98.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/velocity/velocity/1.5/velocity-1.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/velocity/velocity/1.5/velocity-1.5.pom (8 KB at 99.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-collections/commons-collections/3.1/commons-collections-3.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-collections/commons-collections/3.1/commons-collections-3.1.pom (6 KB at 88.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-lang/commons-lang/2.1/commons-lang-2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-lang/commons-lang/2.1/commons-lang-2.1.pom (10 KB at 144.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/oro/oro/2.0.8/oro-2.0.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/oro/oro/2.0.8/oro-2.0.8.pom (140 B at 2.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom (13 KB at 203.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.pom (9 KB at 152.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom (357 B at 5.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom (866 B at 13.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-digester/commons-digester/1.6/commons-digester-1.6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-digester/commons-digester/1.6/commons-digester-1.6.pom (974 B at 14.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom (3 KB at 41.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-logging/commons-logging/1.0/commons-logging-1.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-logging/commons-logging/1.0/commons-logging-1.0.pom (163 B at 1.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-collections/commons-collections/2.0/commons-collections-2.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-collections/commons-collections/2.0/commons-collections-2.0.pom (171 B at 2.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-collections/commons-collections/2.1/commons-collections-2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-collections/commons-collections/2.1/commons-collections-2.1.pom (4 KB at 61.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom (3 KB at 30.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom (6 KB at 93.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.pom (8 KB at 121.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.pom (4 KB at 51.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom (2 KB at 28.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven/2.0.8/maven-2.0.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven/2.0.8/maven-2.0.8.pom (12 KB at 193.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-parent/6/maven-parent-6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-parent/6/maven-parent-6.pom (20 KB at 310.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom (3 KB at 37.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom (4 KB at 50.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom (3 KB at 39.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom (3 KB at 16.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom (2 KB at 35.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom (3 KB at 41.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom (2 KB at 29.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom (2 KB at 28.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.pom (3 KB at 42.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom (5 KB at 34.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom (17 KB at 268.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.pom (4 KB at 65.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/2.0.3/plexus-2.0.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/2.0.3/plexus-2.0.3.pom (16 KB at 225.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom (3 KB at 37.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/xbean/xbean/3.4/xbean-3.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/xbean/xbean/3.4/xbean-3.4.pom (19 KB at 262.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/log4j/log4j/1.2.12/log4j-1.2.12.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/log4j/log4j/1.2.12/log4j-1.2.12.pom (145 B at 2.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom (6 KB at 85.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/google/collections/google-collections/1.0/google-collections-1.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/google/collections/google-collections/1.0/google-collections-1.0.pom (3 KB at 43.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/google/google/1/google-1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/google/google/1/google-1.pom (2 KB at 27.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.pom (4 KB at 63.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/spice/spice-parent/16/spice-parent-16.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/spice/spice-parent/16/spice-parent-16.pom (9 KB at 125.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/forge/forge-parent/5/forge-parent-5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/forge/forge-parent/5/forge-parent-5.pom (9 KB at 108.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/wagon/wagon-provider-api/2.5/wagon-provider-api-2.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/wagon/wagon-provider-api/2.5/wagon-provider-api-2.5.pom (2 KB at 29.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/wagon/wagon/2.5/wagon-2.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/wagon/wagon/2.5/wagon-2.5.pom (20 KB at 251.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.pom (4 KB at 22.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/3.2/plexus-3.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/3.2/plexus-3.2.pom (19 KB at 300.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/spice/spice-parent/17/spice-parent-17.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/spice/spice-parent/17/spice-parent-17.pom (7 KB at 113.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/forge/forge-parent/10/forge-parent-10.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/forge/forge-parent/10/forge-parent-10.pom (14 KB at 81.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/wagon/wagon-file/2.5/wagon-file-2.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/wagon/wagon-file/2.5/wagon-file-2.5.pom (2 KB at 27.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/wagon/wagon-providers/2.5/wagon-providers-2.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/wagon/wagon-providers/2.5/wagon-providers-2.5.pom (3 KB at 42.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-lang/commons-lang/2.6/commons-lang-2.6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-lang/commons-lang/2.6/commons-lang-2.6.pom (18 KB at 284.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/commons/commons-parent/17/commons-parent-17.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/commons/commons-parent/17/commons-parent-17.pom (31 KB at 491.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-core/1.4/doxia-core-1.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-core/1.4/doxia-core-1.4.pom (4 KB at 67.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia/1.4/doxia-1.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia/1.4/doxia-1.4.pom (18 KB at 254.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-sink-api/1.4/doxia-sink-api-1.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-sink-api/1.4/doxia-sink-api-1.4.pom (2 KB at 25.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-logging-api/1.4/doxia-logging-api-1.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-logging-api/1.4/doxia-logging-api-1.4.pom (2 KB at 19.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/3.0.10/plexus-utils-3.0.10.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/3.0.10/plexus-utils-3.0.10.pom (4 KB at 43.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/3.3/plexus-3.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/3.3/plexus-3.3.pom (20 KB at 269.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom (815 B at 14.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-site-renderer/1.4/doxia-site-renderer-1.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-site-renderer/1.4/doxia-site-renderer-1.4.pom (6 KB at 102.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-sitetools/1.4/doxia-sitetools-1.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-sitetools/1.4/doxia-sitetools-1.4.pom (17 KB at 217.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-decoration-model/1.4/doxia-decoration-model-1.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-decoration-model/1.4/doxia-decoration-model-1.4.pom (3 KB at 42.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-module-xhtml/1.4/doxia-module-xhtml-1.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-module-xhtml/1.4/doxia-module-xhtml-1.4.pom (2 KB at 26.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-modules/1.4/doxia-modules-1.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-modules/1.4/doxia-modules-1.4.pom (3 KB at 36.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-module-fml/1.4/doxia-module-fml-1.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-module-fml/1.4/doxia-module-fml-1.4.pom (5 KB at 68.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.pom (18 KB at 273.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-digester/commons-digester/1.8/commons-digester-1.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-digester/commons-digester/1.8/commons-digester-1.8.pom (7 KB at 103.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-logging/commons-logging/1.1/commons-logging-1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-logging/commons-logging/1.1/commons-logging-1.1.pom (7 KB at 97.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/logkit/logkit/1.0.1/logkit-1.0.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/logkit/logkit/1.0.1/logkit-1.0.1.pom (147 B at 2.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.pom (167 B at 2.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/javax/servlet/servlet-api/2.3/servlet-api-2.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/javax/servlet/servlet-api/2.3/servlet-api-2.3.pom (156 B at 2.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-chain/commons-chain/1.1/commons-chain-1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-chain/commons-chain/1.1/commons-chain-1.1.pom (6 KB at 90.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-collections/commons-collections/3.2/commons-collections-3.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-collections/commons-collections/3.2/commons-collections-3.2.pom (11 KB at 165.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/dom4j/dom4j/1.1/dom4j-1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/dom4j/dom4j/1.1/dom4j-1.1.pom (142 B at 2.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/sslext/sslext/1.2-0/sslext-1.2-0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/sslext/sslext/1.2-0/sslext-1.2-0.pom (653 B at 12.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.pom (5 KB at 79.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/struts/struts-parent/1.3.8/struts-parent-1.3.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/struts/struts-parent/1.3.8/struts-parent-1.3.8.pom (10 KB at 61.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/struts/struts-master/4/struts-master-4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/struts/struts-master/4/struts-master-4.pom (12 KB at 214.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/apache/2/apache-2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/apache/2/apache-2.pom (4 KB at 38.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/antlr/antlr/2.7.2/antlr-2.7.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/antlr/antlr/2.7.2/antlr-2.7.2.pom (145 B at 2.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.pom (4 KB at 44.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.pom (3 KB at 49.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/velocity/velocity/1.6.2/velocity-1.6.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/velocity/velocity/1.6.2/velocity-1.6.2.pom (11 KB at 138.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/3.0.20/plexus-utils-3.0.20.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/3.0.20/plexus-utils-3.0.20.pom (4 KB at 70.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/3.3.1/plexus-3.3.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/3.3.1/plexus-3.3.1.pom (20 KB at 327.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.pom (726 B at 5.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interactivity/1.0-alpha-6/plexus-interactivity-1.0-alpha-6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interactivity/1.0-alpha-6/plexus-interactivity-1.0-alpha-6.pom (2 KB at 15.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom (3 KB at 31.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.4/plexus-utils-1.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.4/plexus-utils-1.4.pom (2 KB at 14.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-i18n/1.0-beta-10/plexus-i18n-1.0-beta-10.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-i18n/1.0-beta-10/plexus-i18n-1.0-beta-10.pom (3 KB at 22.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/woodstox/woodstox-core-asl/4.2.0/woodstox-core-asl-4.2.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/woodstox/woodstox-core-asl/4.2.0/woodstox-core-asl-4.2.0.pom (2 KB at 25.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.pom (962 B at 18.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/woodstox/stax2-api/3.1.1/stax2-api-3.1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/woodstox/stax2-api/3.1.1/stax2-api-3.1.1.pom (2 KB at 20.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-artifact-manager/2.2.1/maven-artifact-manager-2.2.1.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-repository-metadata/2.2.1/maven-repository-metadata-2.2.1.jar
    [INFO] Downloading: http://nexus/repository/maven-group/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-core/2.2.1/maven-core-2.2.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.jar (79 KB at 891.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-parameter-documenter/2.2.1/maven-plugin-parameter-documenter-2.2.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-parameter-documenter/2.2.1/maven-plugin-parameter-documenter-2.2.1.jar (22 KB at 151.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/slf4j/slf4j-jdk14/1.5.6/slf4j-jdk14-1.5.6.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/slf4j/slf4j-jdk14/1.5.6/slf4j-jdk14-1.5.6.jar (9 KB at 28.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-artifact-manager/2.2.1/maven-artifact-manager-2.2.1.jar (66 KB at 179.3 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-repository-metadata/2.2.1/maven-repository-metadata-2.2.1.jar (26 KB at 68.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/slf4j/jcl-over-slf4j/1.5.6/jcl-over-slf4j-1.5.6.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-profile/2.2.1/maven-profile-2.2.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6.jar (22 KB at 50.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-error-diagnostics/2.2.1/maven-error-diagnostics-2.2.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-core/2.2.1/maven-core-2.2.1.jar (174 KB at 390.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-cli/commons-cli/1.2/commons-cli-1.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar (324 KB at 665.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-monitor/2.2.1/maven-monitor-2.2.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/slf4j/jcl-over-slf4j/1.5.6/jcl-over-slf4j-1.5.6.jar (17 KB at 32.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/classworlds/classworlds/1.1/classworlds-1.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-error-diagnostics/2.2.1/maven-error-diagnostics-2.2.1.jar (13 KB at 23.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-profile/2.2.1/maven-profile-2.2.1.jar (35 KB at 63.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-monitor/2.2.1/maven-monitor-2.2.1.jar (11 KB at 17.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-model/2.2.1/maven-model-2.2.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-cli/commons-cli/1.2/commons-cli-1.2.jar (41 KB at 62.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-api/2.2.1/maven-plugin-api-2.2.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/classworlds/classworlds/1.1/classworlds-1.1.jar (37 KB at 51.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-descriptor/2.2.1/maven-plugin-descriptor-2.2.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar (14 KB at 17.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar (28 KB at 36.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-api/2.2.1/maven-plugin-api-2.2.1.jar (13 KB at 15.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-project/2.2.1/maven-project-2.2.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-model/2.2.1/maven-model-2.2.1.jar (86 KB at 105.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-registry/2.2.1/maven-plugin-registry-2.2.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-descriptor/2.2.1/maven-plugin-descriptor-2.2.1.jar (39 KB at 43.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.jar (50 KB at 51.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/reporting/maven-reporting-impl/2.2/maven-reporting-impl-2.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-registry/2.2.1/maven-plugin-registry-2.2.1.jar (30 KB at 28.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.jar (48 KB at 46.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar (11 KB at 10.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-digester/commons-digester/1.6/commons-digester-1.6.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-project/2.2.1/maven-project-2.2.1.jar (153 KB at 144.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/reporting/maven-reporting-impl/2.2/maven-reporting-impl-2.2.jar (17 KB at 14.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar (38 KB at 28.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/wagon/wagon-provider-api/2.5/wagon-provider-api-2.5.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.jar (136 KB at 98.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/wagon/wagon-file/2.5/wagon-file-2.5.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.jar (31 KB at 21.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-core/1.4/doxia-core-1.4.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar (185 KB at 129.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-logging-api/1.4/doxia-logging-api-1.4.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-digester/commons-digester/1.6/commons-digester-1.6.jar (165 KB at 109.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/wagon/wagon-provider-api/2.5/wagon-provider-api-2.5.jar (52 KB at 34.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-core/1.4/doxia-core-1.4.jar (162 KB at 103.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/wagon/wagon-file/2.5/wagon-file-2.5.jar (11 KB at 6.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-logging-api/1.4/doxia-logging-api-1.4.jar (12 KB at 6.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-codec/commons-codec/1.3/commons-codec-1.3.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar (5 KB at 2.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-codec/commons-codec/1.3/commons-codec-1.3.jar (46 KB at 24.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-sink-api/1.4/doxia-sink-api-1.4.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.jar (190 KB at 103.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-site-renderer/1.4/doxia-site-renderer-1.4.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.jar (287 KB at 153.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-decoration-model/1.4/doxia-decoration-model-1.4.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar (169 KB at 87.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-module-xhtml/1.4/doxia-module-xhtml-1.4.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-sink-api/1.4/doxia-sink-api-1.4.jar (11 KB at 5.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-module-fml/1.4/doxia-module-fml-1.4.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-site-renderer/1.4/doxia-site-renderer-1.4.jar (52 KB at 25.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-decoration-model/1.4/doxia-decoration-model-1.4.jar (60 KB at 28.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/velocity/velocity/1.5/velocity-1.5.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-module-fml/1.4/doxia-module-fml-1.4.jar (37 KB at 17.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/oro/oro/2.0.8/oro-2.0.8.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/doxia/doxia-module-xhtml/1.4/doxia-module-xhtml-1.4.jar (16 KB at 6.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar (8 KB at 3.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-chain/commons-chain/1.1/commons-chain-1.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar (1201 KB at 517.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/dom4j/dom4j/1.1/dom4j-1.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/velocity/velocity/1.5/velocity-1.5.jar (383 KB at 159.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/sslext/sslext/1.2-0/sslext-1.2-0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/oro/oro/2.0.8/oro-2.0.8.jar (64 KB at 26.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-chain/commons-chain/1.1/commons-chain-1.1.jar (88 KB at 35.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/antlr/antlr/2.7.2/antlr-2.7.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.jar (339 KB at 135.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/dom4j/dom4j/1.1/dom4j-1.1.jar (447 KB at 177.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/sslext/sslext/1.2-0/sslext-1.2-0.jar (26 KB at 10.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.jar (322 KB at 124.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/3.0.20/plexus-utils-3.0.20.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.jar (117 KB at 44.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/3.0.20/plexus-utils-3.0.20.jar (238 KB at 88.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.jar (246 KB at 90.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/antlr/antlr/2.7.2/antlr-2.7.2.jar (350 KB at 128.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/log4j/log4j/1.2.12/log4j-1.2.12.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.jar (46 KB at 15.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.jar (212 KB at 73.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/google/collections/google-collections/1.0/google-collections-1.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar (562 KB at 194.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.jar (131 KB at 44.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-i18n/1.0-beta-10/plexus-i18n-1.0-beta-10.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/log4j/log4j/1.2.12/log4j-1.2.12.jar (350 KB at 114.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/woodstox/woodstox-core-asl/4.2.0/woodstox-core-asl-4.2.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar (44 KB at 14.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.jar (12 KB at 3.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/woodstox/stax2-api/3.1.1/stax2-api-3.1.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-i18n/1.0-beta-10/plexus-i18n-1.0-beta-10.jar (12 KB at 3.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-lang/commons-lang/2.6/commons-lang-2.6.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar (23 KB at 6.8 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/com/google/collections/google-collections/1.0/google-collections-1.0.jar (625 KB at 185.0 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/woodstox/stax2-api/3.1.1/stax2-api-3.1.1.jar (178 KB at 52.2 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-lang/commons-lang/2.6/commons-lang-2.6.jar (278 KB at 81.4 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/woodstox/woodstox-core-asl/4.2.0/woodstox-core-asl-4.2.0.jar (471 KB at 136.4 KB/sec)
    [INFO] Searching for local aggregator root...
    [INFO] Local aggregation root: /home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A
    [INFO] Processing change of com.example:demo08:0.0.1-SNAPSHOT -> 0.0.1
    [INFO] Processing com.example:demo08
    [INFO]     Updating project com.example:demo08
    [INFO]         from version 0.0.1-SNAPSHOT to 0.0.1
    [INFO] 
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 36.712 s
    [INFO] Finished at: 2018-06-08T09:26:19+00:00
    [INFO] Final Memory: 17M/22M
    [INFO] ------------------------------------------------------------------------
    [Pipeline] }
    [Pipeline] // container
    [Pipeline] dir
    Running in /home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/charts/demo08
    [Pipeline] {
    [Pipeline] container
    [Pipeline] {
    [Pipeline] sh
    [demo08] Running shell script
    + make tag
    sed -i -e "s/version:.*/version: 0.0.1/" Chart.yaml
    sed -i -e "s/repository: .*/repository: 10.59.251.152:5000\/grohan2002\/demo08/" values.yaml
    sed -i -e "s/tag: .*/tag: 0.0.1/" values.yaml
    git add --all
    git commit -m "release 0.0.1" --allow-empty # if first release then no verion update is performed
    [master 782ce19] release 0.0.1
     7 files changed, 66 insertions(+), 4 deletions(-)
     create mode 100644 VERSION
     create mode 100644 charts/demo08@tmp/durable-e73f59b2/jenkins-log.txt
     create mode 100755 charts/demo08@tmp/durable-e73f59b2/script.sh
     create mode 100644 pom.xml.versionsBackup
    git tag -fa v0.0.1 -m "Release version 0.0.1"
    git push origin v0.0.1
    To https://github.com/grohan2002/demo08.git
     * [new tag]         v0.0.1 -> v0.0.1
    [Pipeline] }
    [Pipeline] // container
    [Pipeline] }
    [Pipeline] // dir
    [Pipeline] container
    [Pipeline] {
    [Pipeline] sh
    [grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A] Running shell script
    + mvn clean deploy
    Picked up _JAVA_OPTIONS: -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Dsun.zip.disableMemoryMapping=true -XX:+UseParallelGC -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Xms10m -Xmx192m
    [INFO] Scanning for projects...
    [INFO]                                                                         
    [INFO] ------------------------------------------------------------------------
    [INFO] Building demo 0.0.1
    [INFO] ------------------------------------------------------------------------
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-actuator/2.0.2.RELEASE/spring-boot-starter-actuator-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-actuator/2.0.2.RELEASE/spring-boot-starter-actuator-2.0.2.RELEASE.pom (3 KB at 8.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starters/2.0.2.RELEASE/spring-boot-starters-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starters/2.0.2.RELEASE/spring-boot-starters-2.0.2.RELEASE.pom (2 KB at 21.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter/2.0.2.RELEASE/spring-boot-starter-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter/2.0.2.RELEASE/spring-boot-starter-2.0.2.RELEASE.pom (4 KB at 46.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot/2.0.2.RELEASE/spring-boot-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot/2.0.2.RELEASE/spring-boot-2.0.2.RELEASE.pom (14 KB at 156.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/spring-core/5.0.6.RELEASE/spring-core-5.0.6.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/spring-core/5.0.6.RELEASE/spring-core-5.0.6.RELEASE.pom (6 KB at 103.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/spring-jcl/5.0.6.RELEASE/spring-jcl-5.0.6.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/spring-jcl/5.0.6.RELEASE/spring-jcl-5.0.6.RELEASE.pom (3 KB at 35.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/spring-context/5.0.6.RELEASE/spring-context-5.0.6.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/spring-context/5.0.6.RELEASE/spring-context-5.0.6.RELEASE.pom (9 KB at 142.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/spring-aop/5.0.6.RELEASE/spring-aop-5.0.6.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/spring-aop/5.0.6.RELEASE/spring-aop-5.0.6.RELEASE.pom (4 KB at 49.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/spring-beans/5.0.6.RELEASE/spring-beans-5.0.6.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/spring-beans/5.0.6.RELEASE/spring-beans-5.0.6.RELEASE.pom (4 KB at 45.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/spring-expression/5.0.6.RELEASE/spring-expression-5.0.6.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/spring-expression/5.0.6.RELEASE/spring-expression-5.0.6.RELEASE.pom (2 KB at 30.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-autoconfigure/2.0.2.RELEASE/spring-boot-autoconfigure-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-autoconfigure/2.0.2.RELEASE/spring-boot-autoconfigure-2.0.2.RELEASE.pom (32 KB at 532.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-logging/2.0.2.RELEASE/spring-boot-starter-logging-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-logging/2.0.2.RELEASE/spring-boot-starter-logging-2.0.2.RELEASE.pom (3 KB at 22.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.pom (13 KB at 165.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/ch/qos/logback/logback-parent/1.2.3/logback-parent-1.2.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/ch/qos/logback/logback-parent/1.2.3/logback-parent-1.2.3.pom (18 KB at 259.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.pom (5 KB at 77.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.pom (4 KB at 76.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/slf4j/slf4j-parent/1.7.25/slf4j-parent-1.7.25.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/slf4j/slf4j-parent/1.7.25/slf4j-parent-1.7.25.pom (14 KB at 248.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/logging/log4j/log4j-to-slf4j/2.10.0/log4j-to-slf4j-2.10.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/logging/log4j/log4j-to-slf4j/2.10.0/log4j-to-slf4j-2.10.0.pom (8 KB at 134.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/logging/log4j/log4j/2.10.0/log4j-2.10.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/logging/log4j/log4j/2.10.0/log4j-2.10.0.pom (55 KB at 815.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/logging/log4j/log4j-api/2.10.0/log4j-api-2.10.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/logging/log4j/log4j-api/2.10.0/log4j-api-2.10.0.pom (13 KB at 219.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.pom (986 B at 16.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.pom (15 KB at 271.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/net/java/jvnet-parent/3/jvnet-parent-3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/net/java/jvnet-parent/3/jvnet-parent-3.pom (5 KB at 91.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/yaml/snakeyaml/1.19/snakeyaml-1.19.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/yaml/snakeyaml/1.19/snakeyaml-1.19.pom (35 KB at 675.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-actuator-autoconfigure/2.0.2.RELEASE/spring-boot-actuator-autoconfigure-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-actuator-autoconfigure/2.0.2.RELEASE/spring-boot-actuator-autoconfigure-2.0.2.RELEASE.pom (19 KB at 247.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-actuator/2.0.2.RELEASE/spring-boot-actuator-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-actuator/2.0.2.RELEASE/spring-boot-actuator-2.0.2.RELEASE.pom (13 KB at 240.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/jackson/core/jackson-databind/2.9.5/jackson-databind-2.9.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/jackson/core/jackson-databind/2.9.5/jackson-databind-2.9.5.pom (6 KB at 63.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/jackson/jackson-base/2.9.5/jackson-base-2.9.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/jackson/jackson-base/2.9.5/jackson-base-2.9.5.pom (6 KB at 43.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.pom (2 KB at 26.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/jackson/jackson-parent/2.9.0/jackson-parent-2.9.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/jackson/jackson-parent/2.9.0/jackson-parent-2.9.0.pom (8 KB at 136.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/oss-parent/28/oss-parent-28.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/oss-parent/28/oss-parent-28.pom (20 KB at 320.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/jackson/core/jackson-core/2.9.5/jackson-core-2.9.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/jackson/core/jackson-core/2.9.5/jackson-core-2.9.5.pom (4 KB at 52.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.5/jackson-datatype-jsr310-2.9.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.5/jackson-datatype-jsr310-2.9.5.pom (5 KB at 65.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/jackson/module/jackson-modules-java8/2.9.5/jackson-modules-java8-2.9.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/jackson/module/jackson-modules-java8/2.9.5/jackson-modules-java8-2.9.5.pom (3 KB at 36.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/io/micrometer/micrometer-core/1.0.4/micrometer-core-1.0.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/io/micrometer/micrometer-core/1.0.4/micrometer-core-1.0.4.pom (7 KB at 103.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/hdrhistogram/HdrHistogram/2.1.10/HdrHistogram-2.1.10.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/hdrhistogram/HdrHistogram/2.1.10/HdrHistogram-2.1.10.pom (10 KB at 171.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.pom (8 KB at 133.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-web/2.0.2.RELEASE/spring-boot-starter-web-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-web/2.0.2.RELEASE/spring-boot-starter-web-2.0.2.RELEASE.pom (4 KB at 53.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-json/2.0.2.RELEASE/spring-boot-starter-json-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-json/2.0.2.RELEASE/spring-boot-starter-json-2.0.2.RELEASE.pom (4 KB at 56.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/spring-web/5.0.6.RELEASE/spring-web-5.0.6.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/spring-web/5.0.6.RELEASE/spring-web-5.0.6.RELEASE.pom (19 KB at 334.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.5/jackson-datatype-jdk8-2.9.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.5/jackson-datatype-jdk8-2.9.5.pom (2 KB at 34.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/jackson/module/jackson-module-parameter-names/2.9.5/jackson-module-parameter-names-2.9.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/jackson/module/jackson-module-parameter-names/2.9.5/jackson-module-parameter-names-2.9.5.pom (4 KB at 52.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-tomcat/2.0.2.RELEASE/spring-boot-starter-tomcat-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-tomcat/2.0.2.RELEASE/spring-boot-starter-tomcat-2.0.2.RELEASE.pom (3 KB at 61.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/tomcat/embed/tomcat-embed-core/8.5.31/tomcat-embed-core-8.5.31.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/tomcat/embed/tomcat-embed-core/8.5.31/tomcat-embed-core-8.5.31.pom (2 KB at 23.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/tomcat/embed/tomcat-embed-el/8.5.31/tomcat-embed-el-8.5.31.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/tomcat/embed/tomcat-embed-el/8.5.31/tomcat-embed-el-8.5.31.pom (2 KB at 22.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/tomcat/embed/tomcat-embed-websocket/8.5.31/tomcat-embed-websocket-8.5.31.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/tomcat/embed/tomcat-embed-websocket/8.5.31/tomcat-embed-websocket-8.5.31.pom (2 KB at 28.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/tomcat/tomcat-annotations-api/8.5.31/tomcat-annotations-api-8.5.31.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/tomcat/tomcat-annotations-api/8.5.31/tomcat-annotations-api-8.5.31.pom (2 KB at 22.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/hibernate/validator/hibernate-validator/6.0.9.Final/hibernate-validator-6.0.9.Final.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/hibernate/validator/hibernate-validator/6.0.9.Final/hibernate-validator-6.0.9.Final.pom (20 KB at 300.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/hibernate/validator/hibernate-validator-parent/6.0.9.Final/hibernate-validator-parent-6.0.9.Final.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/hibernate/validator/hibernate-validator-parent/6.0.9.Final/hibernate-validator-parent-6.0.9.Final.pom (58 KB at 947.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/jboss/arquillian/arquillian-bom/1.1.11.Final/arquillian-bom-1.1.11.Final.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/jboss/arquillian/arquillian-bom/1.1.11.Final/arquillian-bom-1.1.11.Final.pom (11 KB at 203.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/jboss/shrinkwrap/shrinkwrap-bom/1.2.3/shrinkwrap-bom-1.2.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/jboss/shrinkwrap/shrinkwrap-bom/1.2.3/shrinkwrap-bom-1.2.3.pom (4 KB at 69.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/jboss/shrinkwrap/resolver/shrinkwrap-resolver-bom/2.2.0/shrinkwrap-resolver-bom-2.2.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/jboss/shrinkwrap/resolver/shrinkwrap-resolver-bom/2.2.0/shrinkwrap-resolver-bom-2.2.0.pom (6 KB at 73.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-bom/2.0.0-alpha-8/shrinkwrap-descriptors-bom-2.0.0-alpha-8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-bom/2.0.0-alpha-8/shrinkwrap-descriptors-bom-2.0.0-alpha-8.pom (6 KB at 81.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.pom (12 KB at 167.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.pom (7 KB at 107.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/jboss/jboss-parent/15/jboss-parent-15.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/jboss/jboss-parent/15/jboss-parent-15.pom (31 KB at 504.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/classmate/1.3.4/classmate-1.3.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/classmate/1.3.4/classmate-1.3.4.pom (6 KB at 83.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/oss-parent/24/oss-parent-24.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/oss-parent/24/oss-parent-24.pom (19 KB at 210.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/spring-webmvc/5.0.6.RELEASE/spring-webmvc-5.0.6.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/spring-webmvc/5.0.6.RELEASE/spring-webmvc-5.0.6.RELEASE.pom (14 KB at 208.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-test/2.0.2.RELEASE/spring-boot-starter-test-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-test/2.0.2.RELEASE/spring-boot-starter-test-2.0.2.RELEASE.pom (5 KB at 63.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-test/2.0.2.RELEASE/spring-boot-test-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-test/2.0.2.RELEASE/spring-boot-test-2.0.2.RELEASE.pom (7 KB at 53.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-test-autoconfigure/2.0.2.RELEASE/spring-boot-test-autoconfigure-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-test-autoconfigure/2.0.2.RELEASE/spring-boot-test-autoconfigure-2.0.2.RELEASE.pom (10 KB at 146.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.pom (3 KB at 31.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/net/minidev/json-smart/2.3/json-smart-2.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/net/minidev/json-smart/2.3/json-smart-2.3.pom (9 KB at 135.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/net/minidev/minidev-parent/2.3/minidev-parent-2.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/net/minidev/minidev-parent/2.3/minidev-parent-2.3.pom (9 KB at 156.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/net/minidev/accessors-smart/1.2/accessors-smart-1.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/net/minidev/accessors-smart/1.2/accessors-smart-1.2.pom (12 KB at 217.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/ow2/asm/asm/5.0.4/asm-5.0.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/ow2/asm/asm/5.0.4/asm-5.0.4.pom (2 KB at 37.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/ow2/asm/asm-parent/5.0.4/asm-parent-5.0.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/ow2/asm/asm-parent/5.0.4/asm-parent-5.0.4.pom (6 KB at 101.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/ow2/ow2/1.3/ow2-1.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/ow2/ow2/1.3/ow2-1.3.pom (10 KB at 175.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/assertj/assertj-core/3.9.1/assertj-core-3.9.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/assertj/assertj-core/3.9.1/assertj-core-3.9.1.pom (10 KB at 178.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/assertj/assertj-parent-pom/2.1.9/assertj-parent-pom-2.1.9.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/assertj/assertj-parent-pom/2.1.9/assertj-parent-pom-2.1.9.pom (16 KB at 275.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/mockito/mockito-core/2.15.0/mockito-core-2.15.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/mockito/mockito-core/2.15.0/mockito-core-2.15.0.pom (16 KB at 258.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/net/bytebuddy/byte-buddy/1.7.11/byte-buddy-1.7.11.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/net/bytebuddy/byte-buddy/1.7.11/byte-buddy-1.7.11.pom (12 KB at 219.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/net/bytebuddy/byte-buddy-parent/1.7.11/byte-buddy-parent-1.7.11.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/net/bytebuddy/byte-buddy-parent/1.7.11/byte-buddy-parent-1.7.11.pom (26 KB at 455.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/net/bytebuddy/byte-buddy-agent/1.7.11/byte-buddy-agent-1.7.11.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/net/bytebuddy/byte-buddy-agent/1.7.11/byte-buddy-agent-1.7.11.pom (5 KB at 87.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/objenesis/objenesis/2.6/objenesis-2.6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/objenesis/objenesis/2.6/objenesis-2.6.pom (3 KB at 44.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/objenesis/objenesis-parent/2.6/objenesis-parent-2.6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/objenesis/objenesis-parent/2.6/objenesis-parent-2.6.pom (17 KB at 233.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/hamcrest/hamcrest-library/1.3/hamcrest-library-1.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/hamcrest/hamcrest-library/1.3/hamcrest-library-1.3.pom (820 B at 15.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0.pom (6 KB at 87.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.pom (3 KB at 45.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/spring-test/5.0.6.RELEASE/spring-test-5.0.6.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/spring-test/5.0.6.RELEASE/spring-test-5.0.6.RELEASE.pom (16 KB at 246.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/xmlunit/xmlunit-core/2.5.1/xmlunit-core-2.5.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/xmlunit/xmlunit-core/2.5.1/xmlunit-core-2.5.1.pom (2 KB at 33.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/xmlunit/xmlunit-parent/2.5.1/xmlunit-parent-2.5.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/xmlunit/xmlunit-parent/2.5.1/xmlunit-parent-2.5.1.pom (16 KB at 293.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-actuator/2.0.2.RELEASE/spring-boot-starter-actuator-2.0.2.RELEASE.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter/2.0.2.RELEASE/spring-boot-starter-2.0.2.RELEASE.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot/2.0.2.RELEASE/spring-boot-2.0.2.RELEASE.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-autoconfigure/2.0.2.RELEASE/spring-boot-autoconfigure-2.0.2.RELEASE.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-logging/2.0.2.RELEASE/spring-boot-starter-logging-2.0.2.RELEASE.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-logging/2.0.2.RELEASE/spring-boot-starter-logging-2.0.2.RELEASE.jar (613 B at 4.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter/2.0.2.RELEASE/spring-boot-starter-2.0.2.RELEASE.jar (593 B at 3.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-actuator/2.0.2.RELEASE/spring-boot-starter-actuator-2.0.2.RELEASE.jar (613 B at 3.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/logging/log4j/log4j-to-slf4j/2.10.0/log4j-to-slf4j-2.10.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/logging/log4j/log4j-to-slf4j/2.10.0/log4j-to-slf4j-2.10.0.jar (18 KB at 66.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/logging/log4j/log4j-api/2.10.0/log4j-api-2.10.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar (461 KB at 1298.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar (284 KB at 796.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/logging/log4j/log4j-api/2.10.0/log4j-api-2.10.0.jar (250 KB at 604.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/yaml/snakeyaml/1.19/snakeyaml-1.19.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-autoconfigure/2.0.2.RELEASE/spring-boot-autoconfigure-2.0.2.RELEASE.jar (1135 KB at 2662.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-actuator-autoconfigure/2.0.2.RELEASE/spring-boot-actuator-autoconfigure-2.0.2.RELEASE.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.jar (5 KB at 10.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-actuator/2.0.2.RELEASE/spring-boot-actuator-2.0.2.RELEASE.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot/2.0.2.RELEASE/spring-boot-2.0.2.RELEASE.jar (906 KB at 1735.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/jackson/core/jackson-databind/2.9.5/jackson-databind-2.9.5.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar (26 KB at 48.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/yaml/snakeyaml/1.19/snakeyaml-1.19.jar (291 KB at 426.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/jackson/core/jackson-core/2.9.5/jackson-core-2.9.5.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar (65 KB at 93.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/spring-context/5.0.6.RELEASE/spring-context-5.0.6.RELEASE.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-actuator-autoconfigure/2.0.2.RELEASE/spring-boot-actuator-autoconfigure-2.0.2.RELEASE.jar (366 KB at 491.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.5/jackson-datatype-jsr310-2.9.5.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-actuator/2.0.2.RELEASE/spring-boot-actuator-2.0.2.RELEASE.jar (450 KB at 450.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/io/micrometer/micrometer-core/1.0.4/micrometer-core-1.0.4.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.5/jackson-datatype-jsr310-2.9.5.jar (98 KB at 94.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/hdrhistogram/HdrHistogram/2.1.10/HdrHistogram-2.1.10.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/jackson/core/jackson-core/2.9.5/jackson-core-2.9.5.jar (315 KB at 294.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/jackson/core/jackson-databind/2.9.5/jackson-databind-2.9.5.jar (1311 KB at 1127.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-web/2.0.2.RELEASE/spring-boot-starter-web-2.0.2.RELEASE.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/spring-context/5.0.6.RELEASE/spring-context-5.0.6.RELEASE.jar (1066 KB at 909.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-json/2.0.2.RELEASE/spring-boot-starter-json-2.0.2.RELEASE.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar (30 KB at 24.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.5/jackson-datatype-jdk8-2.9.5.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/hdrhistogram/HdrHistogram/2.1.10/HdrHistogram-2.1.10.jar (116 KB at 93.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/jackson/module/jackson-module-parameter-names/2.9.5/jackson-module-parameter-names-2.9.5.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-json/2.0.2.RELEASE/spring-boot-starter-json-2.0.2.RELEASE.jar (645 B at 0.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-tomcat/2.0.2.RELEASE/spring-boot-starter-tomcat-2.0.2.RELEASE.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.5/jackson-datatype-jdk8-2.9.5.jar (33 KB at 24.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/tomcat/embed/tomcat-embed-core/8.5.31/tomcat-embed-core-8.5.31.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/io/micrometer/micrometer-core/1.0.4/micrometer-core-1.0.4.jar (345 KB at 256.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/tomcat/embed/tomcat-embed-el/8.5.31/tomcat-embed-el-8.5.31.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-web/2.0.2.RELEASE/spring-boot-starter-web-2.0.2.RELEASE.jar (588 B at 0.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/tomcat/embed/tomcat-embed-websocket/8.5.31/tomcat-embed-websocket-8.5.31.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/jackson/module/jackson-module-parameter-names/2.9.5/jackson-module-parameter-names-2.9.5.jar (9 KB at 6.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/hibernate/validator/hibernate-validator/6.0.9.Final/hibernate-validator-6.0.9.Final.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-tomcat/2.0.2.RELEASE/spring-boot-starter-tomcat-2.0.2.RELEASE.jar (591 B at 0.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/tomcat/embed/tomcat-embed-el/8.5.31/tomcat-embed-el-8.5.31.jar (235 KB at 143.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar (91 KB at 54.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/fasterxml/classmate/1.3.4/classmate-1.3.4.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/tomcat/embed/tomcat-embed-websocket/8.5.31/tomcat-embed-websocket-8.5.31.jar (251 KB at 146.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/spring-web/5.0.6.RELEASE/spring-web-5.0.6.RELEASE.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/com/fasterxml/classmate/1.3.4/classmate-1.3.4.jar (64 KB at 36.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/spring-beans/5.0.6.RELEASE/spring-beans-5.0.6.RELEASE.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar (65 KB at 36.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/spring-webmvc/5.0.6.RELEASE/spring-webmvc-5.0.6.RELEASE.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/hibernate/validator/hibernate-validator/6.0.9.Final/hibernate-validator-6.0.9.Final.jar (1105 KB at 568.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/spring-aop/5.0.6.RELEASE/spring-aop-5.0.6.RELEASE.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/spring-beans/5.0.6.RELEASE/spring-beans-5.0.6.RELEASE.jar (646 KB at 308.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/spring-expression/5.0.6.RELEASE/spring-expression-5.0.6.RELEASE.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/spring-web/5.0.6.RELEASE/spring-web-5.0.6.RELEASE.jar (1225 KB at 568.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-test/2.0.2.RELEASE/spring-boot-starter-test-2.0.2.RELEASE.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/spring-aop/5.0.6.RELEASE/spring-aop-5.0.6.RELEASE.jar (358 KB at 158.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-test/2.0.2.RELEASE/spring-boot-test-2.0.2.RELEASE.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/spring-webmvc/5.0.6.RELEASE/spring-webmvc-5.0.6.RELEASE.jar (772 KB at 339.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-test-autoconfigure/2.0.2.RELEASE/spring-boot-test-autoconfigure-2.0.2.RELEASE.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-starter-test/2.0.2.RELEASE/spring-boot-starter-test-2.0.2.RELEASE.jar (637 B at 0.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/spring-expression/5.0.6.RELEASE/spring-expression-5.0.6.RELEASE.jar (274 KB at 115.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/net/minidev/json-smart/2.3/json-smart-2.3.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-test/2.0.2.RELEASE/spring-boot-test-2.0.2.RELEASE.jar (191 KB at 77.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/net/minidev/accessors-smart/1.2/accessors-smart-1.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.jar (218 KB at 87.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-test-autoconfigure/2.0.2.RELEASE/spring-boot-test-autoconfigure-2.0.2.RELEASE.jar (153 KB at 60.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/tomcat/embed/tomcat-embed-core/8.5.31/tomcat-embed-core-8.5.31.jar (3043 KB at 1203.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/junit/junit/4.12/junit-4.12.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/net/minidev/json-smart/2.3/json-smart-2.3.jar (118 KB at 45.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/assertj/assertj-core/3.9.1/assertj-core-3.9.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/net/minidev/accessors-smart/1.2/accessors-smart-1.2.jar (30 KB at 11.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/mockito/mockito-core/2.15.0/mockito-core-2.15.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar (41 KB at 15.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/net/bytebuddy/byte-buddy/1.7.11/byte-buddy-1.7.11.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar (53 KB at 19.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/net/bytebuddy/byte-buddy-agent/1.7.11/byte-buddy-agent-1.7.11.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/net/bytebuddy/byte-buddy-agent/1.7.11/byte-buddy-agent-1.7.11.jar (42 KB at 15.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/objenesis/objenesis/2.6/objenesis-2.6.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/junit/junit/4.12/junit-4.12.jar (308 KB at 107.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/objenesis/objenesis/2.6/objenesis-2.6.jar (55 KB at 18.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/hamcrest/hamcrest-library/1.3/hamcrest-library-1.3.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar (44 KB at 14.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/mockito/mockito-core/2.15.0/mockito-core-2.15.0.jar (530 KB at 172.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/hamcrest/hamcrest-library/1.3/hamcrest-library-1.3.jar (52 KB at 16.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/spring-core/5.0.6.RELEASE/spring-core-5.0.6.RELEASE.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0.jar (30 KB at 9.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/spring-jcl/5.0.6.RELEASE/spring-jcl-5.0.6.RELEASE.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.jar (18 KB at 5.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/spring-test/5.0.6.RELEASE/spring-test-5.0.6.RELEASE.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/spring-jcl/5.0.6.RELEASE/spring-jcl-5.0.6.RELEASE.jar (22 KB at 6.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/xmlunit/xmlunit-core/2.5.1/xmlunit-core-2.5.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/xmlunit/xmlunit-core/2.5.1/xmlunit-core-2.5.1.jar (154 KB at 43.4 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/spring-test/5.0.6.RELEASE/spring-test-5.0.6.RELEASE.jar (591 KB at 166.0 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/spring-core/5.0.6.RELEASE/spring-core-5.0.6.RELEASE.jar (1198 KB at 326.3 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/net/bytebuddy/byte-buddy/1.7.11/byte-buddy-1.7.11.jar (2861 KB at 737.9 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/assertj/assertj-core/3.9.1/assertj-core-3.9.1.jar (3822 KB at 972.8 KB/sec)
    [INFO] 
    [INFO] --- maven-clean-plugin:3.0.0:clean (default-clean) @ demo08 ---
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.pom (3 KB at 37.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven/3.0/maven-3.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven/3.0/maven-3.0.pom (22 KB at 395.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-parent/15/maven-parent-15.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-parent/15/maven-parent-15.pom (24 KB at 426.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/apache/6/apache-6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/apache/6/apache-6.pom (13 KB at 223.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-model/3.0/maven-model-3.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-model/3.0/maven-model-3.0.pom (4 KB at 56.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.pom (4 KB at 26.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.pom (2 KB at 13.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.pom (6 KB at 86.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/sisu/inject/guice-plexus/1.4.2/guice-plexus-1.4.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/sisu/inject/guice-plexus/1.4.2/guice-plexus-1.4.2.pom (4 KB at 44.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/sisu/inject/guice-bean/1.4.2/guice-bean-1.4.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/sisu/inject/guice-bean/1.4.2/guice-bean-1.4.2.pom (3 KB at 42.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-inject/1.4.2/sisu-inject-1.4.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-inject/1.4.2/sisu-inject-1.4.2.pom (2 KB at 24.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-parent/1.4.2/sisu-parent-1.4.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-parent/1.4.2/sisu-parent-1.4.2.pom (8 KB at 133.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/forge/forge-parent/6/forge-parent-6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/forge/forge-parent/6/forge-parent-6.pom (11 KB at 190.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom (4 KB at 66.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.pom (6 KB at 91.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7.pom (11 KB at 200.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/3.0.0/maven-shared-utils-3.0.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/3.0.0/maven-shared-utils-3.0.0.pom (6 KB at 104.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-components/21/maven-shared-components-21.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-components/21/maven-shared-components-21.pom (5 KB at 95.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-parent/25/maven-parent-25.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-parent/25/maven-parent-25.pom (37 KB at 652.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/apache/15/apache-15.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/apache/15/apache-15.pom (15 KB at 286.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-io/commons-io/2.4/commons-io-2.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-io/commons-io/2.4/commons-io-2.4.pom (10 KB at 116.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/commons/commons-parent/25/commons-parent-25.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/commons/commons-parent/25/commons-parent-25.pom (48 KB at 737.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.pom (965 B at 9.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-model/3.0/maven-model-3.0.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.jar (48 KB at 637.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.jar (51 KB at 418.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-model/3.0/maven-model-3.0.jar (161 KB at 883.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.jar (197 KB at 887.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/3.0.0/maven-shared-utils-3.0.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.jar (217 KB at 889.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-io/commons-io/2.4/commons-io-2.4.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.jar (46 KB at 163.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar (150 KB at 462.5 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar (32 KB at 92.3 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/3.0.0/maven-shared-utils-3.0.0.jar (152 KB at 435.4 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-io/commons-io/2.4/commons-io-2.4.jar (181 KB at 447.5 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar (461 KB at 1066.4 KB/sec)
    [INFO] 
    [INFO] --- maven-resources-plugin:3.0.1:resources (default-resources) @ demo08 ---
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-component-annotations/1.6/plexus-component-annotations-1.6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-component-annotations/1.6/plexus-component-annotations-1.6.pom (748 B at 12.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-containers/1.6/plexus-containers-1.6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-containers/1.6/plexus-containers-1.6.pom (4 KB at 70.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/3.3.2/plexus-3.3.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/3.3.2/plexus-3.3.2.pom (22 KB at 375.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-core/3.0/maven-core-3.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-core/3.0/maven-core-3.0.pom (7 KB at 92.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-settings/3.0/maven-settings-3.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-settings/3.0/maven-settings-3.0.pom (2 KB at 31.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.pom (3 KB at 46.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.pom (910 B at 18.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom (6 KB at 83.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.pom (2 KB at 35.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.pom (3 KB at 43.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.pom (3 KB at 45.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/aether/aether-api/1.7/aether-api-1.7.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/aether/aether-api/1.7/aether-api-1.7.pom (2 KB at 28.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/aether/aether-parent/1.7/aether-parent-1.7.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/aether/aether-parent/1.7/aether-parent-1.7.pom (8 KB at 160.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/aether/aether-util/1.7/aether-util-1.7.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/aether/aether-util/1.7/aether-util-1.7.pom (3 KB at 36.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.pom (4 KB at 68.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.pom (2 KB at 31.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/3.0.24/plexus-utils-3.0.24.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/3.0.24/plexus-utils-3.0.24.pom (5 KB at 79.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/4.0/plexus-4.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/4.0/plexus-4.0.pom (21 KB at 419.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-filtering/3.1.1/maven-filtering-3.1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-filtering/3.1.1/maven-filtering-3.1.1.pom (6 KB at 106.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-components/30/maven-shared-components-30.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-components/30/maven-shared-components-30.pom (5 KB at 86.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interpolation/1.22/plexus-interpolation-1.22.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interpolation/1.22/plexus-interpolation-1.22.pom (2 KB at 30.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-components/1.3.1/plexus-components-1.3.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-components/1.3.1/plexus-components-1.3.1.pom (3 KB at 35.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/plexus/plexus-build-api/0.0.7/plexus-build-api-0.0.7.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/plexus/plexus-build-api/0.0.7/plexus-build-api-0.0.7.pom (4 KB at 45.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/spice/spice-parent/15/spice-parent-15.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/spice/spice-parent/15/spice-parent-15.pom (9 KB at 157.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-core/3.0/maven-core-3.0.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.jar (30 KB at 236.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.jar (37 KB at 263.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.jar (145 KB at 932.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/aether/aether-api/1.7/aether-api-1.7.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.jar (50 KB at 304.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.jar (14 KB at 57.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-component-annotations/1.6/plexus-component-annotations-1.6.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-core/3.0/maven-core-3.0.jar (515 KB at 1831.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-settings/3.0/maven-settings-3.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.jar (104 KB at 373.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/3.0.24/plexus-utils-3.0.24.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/aether/aether-api/1.7/aether-api-1.7.jar (73 KB at 259.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-filtering/3.1.1/maven-filtering-3.1.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-component-annotations/1.6/plexus-component-annotations-1.6.jar (5 KB at 13.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/plexus/plexus-build-api/0.0.7/plexus-build-api-0.0.7.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar (106 KB at 310.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interpolation/1.22/plexus-interpolation-1.22.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/plexus/plexus-build-api/0.0.7/plexus-build-api-0.0.7.jar (9 KB at 21.5 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-filtering/3.1.1/maven-filtering-3.1.1.jar (50 KB at 119.9 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-settings/3.0/maven-settings-3.0.jar (46 KB at 101.0 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interpolation/1.22/plexus-interpolation-1.22.jar (76 KB at 154.8 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/3.0.24/plexus-utils-3.0.24.jar (242 KB at 476.4 KB/sec)
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] Copying 1 resource
    [INFO] Copying 0 resource
    [INFO] 
    [INFO] --- maven-compiler-plugin:3.7.0:compile (default-compile) @ demo08 ---
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/3.1.0/maven-shared-utils-3.1.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/3.1.0/maven-shared-utils-3.1.0.pom (5 KB at 103.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-io/commons-io/2.5/commons-io-2.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-io/commons-io/2.5/commons-io-2.5.pom (13 KB at 249.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/commons/commons-parent/39/commons-parent-39.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/commons/commons-parent/39/commons-parent-39.pom (61 KB at 687.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-incremental/1.1/maven-shared-incremental-1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-incremental/1.1/maven-shared-incremental-1.1.pom (5 KB at 68.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-components/19/maven-shared-components-19.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-components/19/maven-shared-components-19.pom (7 KB at 108.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/0.1/maven-shared-utils-0.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/0.1/maven-shared-utils-0.1.pom (4 KB at 77.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-components/18/maven-shared-components-18.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-components/18/maven-shared-components-18.pom (5 KB at 90.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-parent/22/maven-parent-22.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-parent/22/maven-parent-22.pom (30 KB at 468.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/apache/11/apache-11.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/apache/11/apache-11.pom (15 KB at 253.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-java/0.9.2/plexus-java-0.9.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-java/0.9.2/plexus-java-0.9.2.pom (3 KB at 45.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-languages/0.9.2/plexus-languages-0.9.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-languages/0.9.2/plexus-languages-0.9.2.pom (3 KB at 42.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/ow2/asm/asm/6.0_BETA/asm-6.0_BETA.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/ow2/asm/asm/6.0_BETA/asm-6.0_BETA.pom (2 KB at 33.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/ow2/asm/asm-parent/6.0_BETA/asm-parent-6.0_BETA.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/ow2/asm/asm-parent/6.0_BETA/asm-parent-6.0_BETA.pom (6 KB at 101.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/thoughtworks/qdox/qdox/2.0-M7/qdox-2.0-M7.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/thoughtworks/qdox/qdox/2.0-M7/qdox-2.0-M7.pom (16 KB at 286.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/oss/oss-parent/9/oss-parent-9.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/oss/oss-parent/9/oss-parent-9.pom (7 KB at 123.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-compiler-api/2.8.2/plexus-compiler-api-2.8.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-compiler-api/2.8.2/plexus-compiler-api-2.8.2.pom (867 B at 16.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-compiler/2.8.2/plexus-compiler-2.8.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-compiler/2.8.2/plexus-compiler-2.8.2.pom (5 KB at 90.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-components/4.0/plexus-components-4.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-components/4.0/plexus-components-4.0.pom (3 KB at 36.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/3.0.22/plexus-utils-3.0.22.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/3.0.22/plexus-utils-3.0.22.pom (4 KB at 55.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-compiler-manager/2.8.2/plexus-compiler-manager-2.8.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-compiler-manager/2.8.2/plexus-compiler-manager-2.8.2.pom (692 B at 9.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-compiler-javac/2.8.2/plexus-compiler-javac-2.8.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-compiler-javac/2.8.2/plexus-compiler-javac-2.8.2.pom (771 B at 15.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-compilers/2.8.2/plexus-compilers-2.8.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-compilers/2.8.2/plexus-compilers-2.8.2.pom (2 KB at 15.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/3.1.0/maven-shared-utils-3.1.0.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-incremental/1.1/maven-shared-incremental-1.1.jar
    [INFO] Downloading: http://nexus/repository/maven-group/commons-io/commons-io/2.5/commons-io-2.5.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-java/0.9.2/plexus-java-0.9.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-java/0.9.2/plexus-java-0.9.2.jar (31 KB at 271.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/ow2/asm/asm/6.0_BETA/asm-6.0_BETA.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-incremental/1.1/maven-shared-incremental-1.1.jar (14 KB at 97.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/thoughtworks/qdox/qdox/2.0-M7/qdox-2.0-M7.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar (60 KB at 389.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-compiler-api/2.8.2/plexus-compiler-api-2.8.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/3.1.0/maven-shared-utils-3.1.0.jar (160 KB at 836.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-compiler-manager/2.8.2/plexus-compiler-manager-2.8.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-io/commons-io/2.5/commons-io-2.5.jar (204 KB at 965.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-compiler-javac/2.8.2/plexus-compiler-javac-2.8.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/ow2/asm/asm/6.0_BETA/asm-6.0_BETA.jar (56 KB at 196.2 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-compiler-api/2.8.2/plexus-compiler-api-2.8.2.jar (26 KB at 88.2 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-compiler-manager/2.8.2/plexus-compiler-manager-2.8.2.jar (5 KB at 14.6 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-compiler-javac/2.8.2/plexus-compiler-javac-2.8.2.jar (20 KB at 60.7 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/com/thoughtworks/qdox/qdox/2.0-M7/qdox-2.0-M7.jar (308 KB at 854.6 KB/sec)
    [INFO] Changes detected - recompiling the module!
    [INFO] Compiling 1 source file to /home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/classes
    [INFO] 
    [INFO] --- maven-resources-plugin:3.0.1:testResources (default-testResources) @ demo08 ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] skip non existing resourceDirectory /home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/src/test/resources
    [INFO] 
    [INFO] --- maven-compiler-plugin:3.7.0:testCompile (default-testCompile) @ demo08 ---
    [INFO] Changes detected - recompiling the module!
    [INFO] Compiling 1 source file to /home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/test-classes
    [INFO] 
    [INFO] --- maven-surefire-plugin:2.21.0:test (default-test) @ demo08 ---
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/surefire/maven-surefire-common/2.21.0/maven-surefire-common-2.21.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/surefire/maven-surefire-common/2.21.0/maven-surefire-common-2.21.0.pom (12 KB at 191.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugin-tools/maven-plugin-annotations/3.5/maven-plugin-annotations-3.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugin-tools/maven-plugin-annotations/3.5/maven-plugin-annotations-3.5.pom (2 KB at 26.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugin-tools/maven-plugin-tools/3.5/maven-plugin-tools-3.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugin-tools/maven-plugin-tools/3.5/maven-plugin-tools-3.5.pom (16 KB at 177.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire-api/2.21.0/surefire-api-2.21.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire-api/2.21.0/surefire-api-2.21.0.pom (4 KB at 42.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire-logger-api/2.21.0/surefire-logger-api-2.21.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire-logger-api/2.21.0/surefire-logger-api-2.21.0.pom (2 KB at 33.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire-booter/2.21.0/surefire-booter-2.21.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire-booter/2.21.0/surefire-booter-2.21.0.pom (8 KB at 133.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-toolchain/2.2.1/maven-toolchain-2.2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-toolchain/2.2.1/maven-toolchain-2.2.1.pom (4 KB at 62.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-java/0.9.3/plexus-java-0.9.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-java/0.9.3/plexus-java-0.9.3.pom (3 KB at 37.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-languages/0.9.3/plexus-languages-0.9.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-languages/0.9.3/plexus-languages-0.9.3.pom (3 KB at 37.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/surefire/maven-surefire-common/2.21.0/maven-surefire-common-2.21.0.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugin-tools/maven-plugin-annotations/3.5/maven-plugin-annotations-3.5.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire-logger-api/2.21.0/surefire-logger-api-2.21.0.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire-api/2.21.0/surefire-api-2.21.0.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire-booter/2.21.0/surefire-booter-2.21.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugin-tools/maven-plugin-annotations/3.5/maven-plugin-annotations-3.5.jar (14 KB at 145.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire-logger-api/2.21.0/surefire-logger-api-2.21.0.jar (14 KB at 79.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/surefire/maven-surefire-common/2.21.0/maven-surefire-common-2.21.0.jar (510 KB at 2558.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-toolchain/2.2.1/maven-toolchain-2.2.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire-api/2.21.0/surefire-api-2.21.0.jar (181 KB at 701.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-java/0.9.3/plexus-java-0.9.3.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire-booter/2.21.0/surefire-booter-2.21.0.jar (267 KB at 1000.7 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.jar (223 KB at 696.1 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-toolchain/2.2.1/maven-toolchain-2.2.1.jar (37 KB at 105.3 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-java/0.9.3/plexus-java-0.9.3.jar (31 KB at 88.0 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar (190 KB at 491.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire-junit4/2.21.0/surefire-junit4-2.21.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire-junit4/2.21.0/surefire-junit4-2.21.0.pom (4 KB at 51.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire-providers/2.21.0/surefire-providers-2.21.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire-providers/2.21.0/surefire-providers-2.21.0.pom (3 KB at 35.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire-junit4/2.21.0/surefire-junit4-2.21.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/surefire/surefire-junit4/2.21.0/surefire-junit4-2.21.0.jar (83 KB at 1589.6 KB/sec)
    [INFO] 
    [INFO] -------------------------------------------------------
    [INFO]  T E S T S
    [INFO] -------------------------------------------------------
    [INFO] Running com.example.demo08.DemoApplicationTests
    09:27:00.364 [main] DEBUG org.springframework.test.context.junit4.SpringJUnit4ClassRunner - SpringJUnit4ClassRunner constructor called with [class com.example.demo08.DemoApplicationTests]
    09:27:00.415 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating CacheAwareContextLoaderDelegate from class [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate]
    09:27:00.426 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating BootstrapContext using constructor [public org.springframework.test.context.support.DefaultBootstrapContext(java.lang.Class,org.springframework.test.context.CacheAwareContextLoaderDelegate)]
    09:27:00.523 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating TestContextBootstrapper for test class [com.example.demo08.DemoApplicationTests] from class [org.springframework.boot.test.context.SpringBootTestContextBootstrapper]
    09:27:00.543 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.example.demo08.DemoApplicationTests], using SpringBootContextLoader
    09:27:00.560 [main] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [com.example.demo08.DemoApplicationTests]: class path resource [com/example/demo08/DemoApplicationTests-context.xml] does not exist
    09:27:00.561 [main] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [com.example.demo08.DemoApplicationTests]: class path resource [com/example/demo08/DemoApplicationTestsContext.groovy] does not exist
    09:27:00.563 [main] INFO org.springframework.test.context.support.AbstractContextLoader - Could not detect default resource locations for test class [com.example.demo08.DemoApplicationTests]: no resource found for suffixes {-context.xml, Context.groovy}.
    09:27:00.564 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [com.example.demo08.DemoApplicationTests]: DemoApplicationTests does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
    09:27:00.718 [main] DEBUG org.springframework.test.context.support.ActiveProfilesUtils - Could not find an 'annotation declaring class' for annotation type [org.springframework.test.context.ActiveProfiles] and class [com.example.demo08.DemoApplicationTests]
    09:27:00.727 [main] DEBUG org.springframework.core.env.StandardEnvironment - Adding PropertySource 'systemProperties' with lowest search precedence
    09:27:00.728 [main] DEBUG org.springframework.core.env.StandardEnvironment - Adding PropertySource 'systemEnvironment' with lowest search precedence
    09:27:00.728 [main] DEBUG org.springframework.core.env.StandardEnvironment - Initialized StandardEnvironment with PropertySources [MapPropertySource@13996678 {name='systemProperties', properties={java.runtime.name=OpenJDK Runtime Environment, sun.boot.library.path=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/i386, java.vm.version=25.171-b10, java.vm.vendor=Oracle Corporation, java.vendor.url=http://java.oracle.com/, path.separator=:, java.vm.name=OpenJDK Server VM, file.encoding.pkg=sun.io, user.country=US, sun.java.launcher=SUN_STANDARD, sun.os.patch.level=unknown, java.vm.specification.name=Java Virtual Machine Specification, user.dir=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A, java.runtime.version=1.8.0_171-b10, basedir=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A, java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment, java.endorsed.dirs=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/endorsed, os.arch=i386, surefire.real.class.path=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/surefire/surefirebooter8695429534331311209.jar, java.io.tmpdir=/tmp, line.separator=
    , java.vm.specification.vendor=Oracle Corporation, os.name=Linux, sun.jnu.encoding=ANSI_X3.4-1968, java.library.path=/usr/java/packages/lib/i386:/lib:/usr/lib, surefire.test.class.path=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/test-classes:/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/classes:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-actuator/2.0.2.RELEASE/spring-boot-starter-actuator-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter/2.0.2.RELEASE/spring-boot-starter-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot/2.0.2.RELEASE/spring-boot-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-autoconfigure/2.0.2.RELEASE/spring-boot-autoconfigure-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-logging/2.0.2.RELEASE/spring-boot-starter-logging-2.0.2.RELEASE.jar:/root/.mvnrepository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar:/root/.mvnrepository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar:/root/.mvnrepository/org/apache/logging/log4j/log4j-to-slf4j/2.10.0/log4j-to-slf4j-2.10.0.jar:/root/.mvnrepository/org/apache/logging/log4j/log4j-api/2.10.0/log4j-api-2.10.0.jar:/root/.mvnrepository/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.jar:/root/.mvnrepository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar:/root/.mvnrepository/org/yaml/snakeyaml/1.19/snakeyaml-1.19.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-actuator-autoconfigure/2.0.2.RELEASE/spring-boot-actuator-autoconfigure-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-actuator/2.0.2.RELEASE/spring-boot-actuator-2.0.2.RELEASE.jar:/root/.mvnrepository/com/fasterxml/jackson/core/jackson-databind/2.9.5/jackson-databind-2.9.5.jar:/root/.mvnrepository/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar:/root/.mvnrepository/com/fasterxml/jackson/core/jackson-core/2.9.5/jackson-core-2.9.5.jar:/root/.mvnrepository/org/springframework/spring-context/5.0.6.RELEASE/spring-context-5.0.6.RELEASE.jar:/root/.mvnrepository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.5/jackson-datatype-jsr310-2.9.5.jar:/root/.mvnrepository/io/micrometer/micrometer-core/1.0.4/micrometer-core-1.0.4.jar:/root/.mvnrepository/org/hdrhistogram/HdrHistogram/2.1.10/HdrHistogram-2.1.10.jar:/root/.mvnrepository/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-web/2.0.2.RELEASE/spring-boot-starter-web-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-json/2.0.2.RELEASE/spring-boot-starter-json-2.0.2.RELEASE.jar:/root/.mvnrepository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.5/jackson-datatype-jdk8-2.9.5.jar:/root/.mvnrepository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.9.5/jackson-module-parameter-names-2.9.5.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-tomcat/2.0.2.RELEASE/spring-boot-starter-tomcat-2.0.2.RELEASE.jar:/root/.mvnrepository/org/apache/tomcat/embed/tomcat-embed-core/8.5.31/tomcat-embed-core-8.5.31.jar:/root/.mvnrepository/org/apache/tomcat/embed/tomcat-embed-el/8.5.31/tomcat-embed-el-8.5.31.jar:/root/.mvnrepository/org/apache/tomcat/embed/tomcat-embed-websocket/8.5.31/tomcat-embed-websocket-8.5.31.jar:/root/.mvnrepository/org/hibernate/validator/hibernate-validator/6.0.9.Final/hibernate-validator-6.0.9.Final.jar:/root/.mvnrepository/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar:/root/.mvnrepository/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar:/root/.mvnrepository/com/fasterxml/classmate/1.3.4/classmate-1.3.4.jar:/root/.mvnrepository/org/springframework/spring-web/5.0.6.RELEASE/spring-web-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-beans/5.0.6.RELEASE/spring-beans-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-webmvc/5.0.6.RELEASE/spring-webmvc-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-aop/5.0.6.RELEASE/spring-aop-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-expression/5.0.6.RELEASE/spring-expression-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-test/2.0.2.RELEASE/spring-boot-starter-test-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-test/2.0.2.RELEASE/spring-boot-test-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-test-autoconfigure/2.0.2.RELEASE/spring-boot-test-autoconfigure-2.0.2.RELEASE.jar:/root/.mvnrepository/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.jar:/root/.mvnrepository/net/minidev/json-smart/2.3/json-smart-2.3.jar:/root/.mvnrepository/net/minidev/accessors-smart/1.2/accessors-smart-1.2.jar:/root/.mvnrepository/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar:/root/.mvnrepository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar:/root/.mvnrepository/junit/junit/4.12/junit-4.12.jar:/root/.mvnrepository/org/assertj/assertj-core/3.9.1/assertj-core-3.9.1.jar:/root/.mvnrepository/org/mockito/mockito-core/2.15.0/mockito-core-2.15.0.jar:/root/.mvnrepository/net/bytebuddy/byte-buddy/1.7.11/byte-buddy-1.7.11.jar:/root/.mvnrepository/net/bytebuddy/byte-buddy-agent/1.7.11/byte-buddy-agent-1.7.11.jar:/root/.mvnrepository/org/objenesis/objenesis/2.6/objenesis-2.6.jar:/root/.mvnrepository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:/root/.mvnrepository/org/hamcrest/hamcrest-library/1.3/hamcrest-library-1.3.jar:/root/.mvnrepository/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0.jar:/root/.mvnrepository/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.jar:/root/.mvnrepository/org/springframework/spring-core/5.0.6.RELEASE/spring-core-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-jcl/5.0.6.RELEASE/spring-jcl-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-test/5.0.6.RELEASE/spring-test-5.0.6.RELEASE.jar:/root/.mvnrepository/org/xmlunit/xmlunit-core/2.5.1/xmlunit-core-2.5.1.jar:, java.specification.name=Java Platform API Specification, java.class.version=52.0, sun.management.compiler=HotSpot Tiered Compilers, os.version=4.4.111+, user.home=/root, user.timezone=UTC, java.awt.printerjob=sun.print.PSPrinterJob, file.encoding=ANSI_X3.4-1968, java.specification.version=1.8, java.class.path=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/test-classes:/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/classes:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-actuator/2.0.2.RELEASE/spring-boot-starter-actuator-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter/2.0.2.RELEASE/spring-boot-starter-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot/2.0.2.RELEASE/spring-boot-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-autoconfigure/2.0.2.RELEASE/spring-boot-autoconfigure-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-logging/2.0.2.RELEASE/spring-boot-starter-logging-2.0.2.RELEASE.jar:/root/.mvnrepository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar:/root/.mvnrepository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar:/root/.mvnrepository/org/apache/logging/log4j/log4j-to-slf4j/2.10.0/log4j-to-slf4j-2.10.0.jar:/root/.mvnrepository/org/apache/logging/log4j/log4j-api/2.10.0/log4j-api-2.10.0.jar:/root/.mvnrepository/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.jar:/root/.mvnrepository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar:/root/.mvnrepository/org/yaml/snakeyaml/1.19/snakeyaml-1.19.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-actuator-autoconfigure/2.0.2.RELEASE/spring-boot-actuator-autoconfigure-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-actuator/2.0.2.RELEASE/spring-boot-actuator-2.0.2.RELEASE.jar:/root/.mvnrepository/com/fasterxml/jackson/core/jackson-databind/2.9.5/jackson-databind-2.9.5.jar:/root/.mvnrepository/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar:/root/.mvnrepository/com/fasterxml/jackson/core/jackson-core/2.9.5/jackson-core-2.9.5.jar:/root/.mvnrepository/org/springframework/spring-context/5.0.6.RELEASE/spring-context-5.0.6.RELEASE.jar:/root/.mvnrepository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.5/jackson-datatype-jsr310-2.9.5.jar:/root/.mvnrepository/io/micrometer/micrometer-core/1.0.4/micrometer-core-1.0.4.jar:/root/.mvnrepository/org/hdrhistogram/HdrHistogram/2.1.10/HdrHistogram-2.1.10.jar:/root/.mvnrepository/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-web/2.0.2.RELEASE/spring-boot-starter-web-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-json/2.0.2.RELEASE/spring-boot-starter-json-2.0.2.RELEASE.jar:/root/.mvnrepository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.5/jackson-datatype-jdk8-2.9.5.jar:/root/.mvnrepository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.9.5/jackson-module-parameter-names-2.9.5.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-tomcat/2.0.2.RELEASE/spring-boot-starter-tomcat-2.0.2.RELEASE.jar:/root/.mvnrepository/org/apache/tomcat/embed/tomcat-embed-core/8.5.31/tomcat-embed-core-8.5.31.jar:/root/.mvnrepository/org/apache/tomcat/embed/tomcat-embed-el/8.5.31/tomcat-embed-el-8.5.31.jar:/root/.mvnrepository/org/apache/tomcat/embed/tomcat-embed-websocket/8.5.31/tomcat-embed-websocket-8.5.31.jar:/root/.mvnrepository/org/hibernate/validator/hibernate-validator/6.0.9.Final/hibernate-validator-6.0.9.Final.jar:/root/.mvnrepository/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar:/root/.mvnrepository/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar:/root/.mvnrepository/com/fasterxml/classmate/1.3.4/classmate-1.3.4.jar:/root/.mvnrepository/org/springframework/spring-web/5.0.6.RELEASE/spring-web-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-beans/5.0.6.RELEASE/spring-beans-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-webmvc/5.0.6.RELEASE/spring-webmvc-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-aop/5.0.6.RELEASE/spring-aop-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-expression/5.0.6.RELEASE/spring-expression-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-test/2.0.2.RELEASE/spring-boot-starter-test-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-test/2.0.2.RELEASE/spring-boot-test-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-test-autoconfigure/2.0.2.RELEASE/spring-boot-test-autoconfigure-2.0.2.RELEASE.jar:/root/.mvnrepository/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.jar:/root/.mvnrepository/net/minidev/json-smart/2.3/json-smart-2.3.jar:/root/.mvnrepository/net/minidev/accessors-smart/1.2/accessors-smart-1.2.jar:/root/.mvnrepository/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar:/root/.mvnrepository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar:/root/.mvnrepository/junit/junit/4.12/junit-4.12.jar:/root/.mvnrepository/org/assertj/assertj-core/3.9.1/assertj-core-3.9.1.jar:/root/.mvnrepository/org/mockito/mockito-core/2.15.0/mockito-core-2.15.0.jar:/root/.mvnrepository/net/bytebuddy/byte-buddy/1.7.11/byte-buddy-1.7.11.jar:/root/.mvnrepository/net/bytebuddy/byte-buddy-agent/1.7.11/byte-buddy-agent-1.7.11.jar:/root/.mvnrepository/org/objenesis/objenesis/2.6/objenesis-2.6.jar:/root/.mvnrepository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:/root/.mvnrepository/org/hamcrest/hamcrest-library/1.3/hamcrest-library-1.3.jar:/root/.mvnrepository/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0.jar:/root/.mvnrepository/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.jar:/root/.mvnrepository/org/springframework/spring-core/5.0.6.RELEASE/spring-core-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-jcl/5.0.6.RELEASE/spring-jcl-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-test/5.0.6.RELEASE/spring-test-5.0.6.RELEASE.jar:/root/.mvnrepository/org/xmlunit/xmlunit-core/2.5.1/xmlunit-core-2.5.1.jar:, user.name=root, java.vm.specification.version=1.8, sun.java.command=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/surefire/surefirebooter8695429534331311209.jar /home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/surefire 2018-06-08T09-26-57_236-jvmRun1 surefire4328980770760480765tmp surefire_02400531796289035372tmp, java.home=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre, sun.arch.data.model=32, user.language=en, java.specification.vendor=Oracle Corporation, awt.toolkit=sun.awt.X11.XToolkit, java.vm.info=mixed mode, java.version=1.8.0_171, java.ext.dirs=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/ext:/usr/java/packages/lib/ext, sun.boot.class.path=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/resources.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/rt.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/jsse.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/jce.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/charsets.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/jfr.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/classes, java.vendor=Oracle Corporation, localRepository=/root/.mvnrepository, file.separator=/, java.vendor.url.bug=http://bugreport.sun.com/bugreport/, sun.io.unicode.encoding=UnicodeLittle, sun.cpu.endian=little, sun.cpu.isalist=}}, SystemEnvironmentPropertySource@31556208 {name='systemEnvironment', properties={PATH=/opt/apache-maven-3.3.9/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/google-cloud-sdk/bin:/opt/google/chrome, JENKINS_X_MONOCULAR_UI_PORT_80_TCP_PROTO=tcp, JENKINS_X_MONOCULAR_API_PORT_80_TCP_PORT=80, RUN_DISPLAY_URL=http://unconfigured-jenkins-location/job/grohan2002/job/demo08/job/master/1/display/redirect, HUDSON_HOME=/var/jenkins_home, JENKINS_X_MONOCULAR_UI_PORT=tcp://10.59.242.187:80, RUN_CHANGES_DISPLAY_URL=http://unconfigured-jenkins-location/job/grohan2002/job/demo08/job/master/1/display/redirect?page=changes, APP_NAME=demo08, JENKINS_X_MONOCULAR_PRERENDER_PORT=tcp://10.59.255.226:80, JENKINS_NODE_COOKIE=1e8ba60b-b92c-4c51-a0b3-2db62a36b930, JENKINS_X_MONOCULAR_PRERENDER_PORT_80_TCP_PORT=80, JENKINS_X_MONOCULAR_PRERENDER_PORT_80_TCP_PROTO=tcp, CHARTMUSEUM_CREDS_PSW=****, JENKINS_X_MONGODB_PORT_27017_TCP_PROTO=tcp, JENKINS_X_MONOCULAR_PRERENDER_SERVICE_HOST=10.59.255.226, JENKINS_AGENT_SERVICE_PORT=50000, JENKINS_SERVER_COOKIE=durable-0175af514c7fda992d16faace609e600, PWD=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A, JENKINS_URL=http://jenkins:8080, JENKINS_SECRET=0ce10b8d424d8d0f21232f7289fd3fbfd8dc7992708d64922c0cbfe468664f47, GIT_AUTHOR_EMAIL=jenkins-x@googlegroups.com, JENKINS_SERVICE_HOST=10.59.252.154, maven.home=/opt/apache-maven-3.3.9, STAGE_NAME=Build Release, JENKINS_X_CHARTMUSEUM_SERVICE_PORT_JENKINS_X=8080, JENKINS_X_MONOCULAR_UI_PORT_80_TCP_ADDR=10.59.242.187, JENKINS_AGENT_SERVICE_HOST=10.59.242.200, JENKINS_PORT_8080_TCP=tcp://10.59.252.154:8080, GIT_AUTHOR_NAME=jenkins-x-bot, JENKINS_HOME=/var/jenkins_home, NODE_NAME=maven-0tbjd, BUILD_DISPLAY_NAME=#1, JENKINS_X_MONOCULAR_UI_SERVICE_PORT_MONOCULAR_UI=80, JENKINS_X_MONGODB_PORT_27017_TCP=tcp://10.59.243.233:27017, JENKINS_PORT_8080_TCP_PORT=8080, KUBERNETES_SERVICE_PORT_HTTPS=443, JENKINS_AGENT_SERVICE_PORT_SLAVELISTENER=50000, SHLVL=4, JENKINS_PORT=tcp://10.59.252.154:8080, JX_RELEASE_VERSION=1.0.10, KUBERNETES_PORT=tcp://10.59.240.1:443, DOCKER_VERSION=17.12.0, JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386, JENKINS_AGENT_PORT_50000_TCP_PROTO=tcp, NEXUS_PORT_80_TCP_ADDR=10.59.240.56, NEXUS_PORT=tcp://10.59.240.56:80, JENKINS_X_CHARTMUSEUM_PORT=tcp://10.59.247.18:8080, JENKINS_PORT_8080_TCP_PROTO=tcp, JENKINS_PORT_8080_TCP_ADDR=10.59.252.154, NEXUS_PORT_80_TCP=tcp://10.59.240.56:80, NEXUS_SERVICE_PORT=80, GCLOUD_VERSION=187.0.0, WORKSPACE=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A, JENKINS_X_MONGODB_SERVICE_HOST=10.59.243.233, JENKINS_NAME=maven-0tbjd, JENKINS_X_DOCKER_REGISTRY_PORT=tcp://10.59.251.152:5000, _=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/bin/java, SKAFFOLD_VERSION=0.4.0, GIT_COMMIT=efc077e94f0b7820ee4a626bd921e5da208ecf8a, KUBERNETES_PORT_443_TCP_ADDR=10.59.240.1, NEXUS_SERVICE_HOST=10.59.240.56, KUBERNETES_PORT_443_TCP_PROTO=tcp, MAVEN_PROJECTBASEDIR=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A, JOB_BASE_NAME=master, JENKINS_X_DOCKER_REGISTRY_PORT_5000_TCP_PORT=5000, JENKINS_X_MONOCULAR_UI_PORT_80_TCP_PORT=80, JENKINS_AGENT_PORT_50000_TCP_PORT=50000, UPDATEBOT_VERSION=1.1.10, BUILD_NUMBER=1, JENKINS_X_MONOCULAR_PRERENDER_SERVICE_PORT=80, JENKINS_X_MONOCULAR_API_PORT=tcp://10.59.242.193:80, GIT_COMMITTER_EMAIL=jenkins-x@googlegroups.com, GIT_URL=https://github.com/grohan2002/demo08.git, JENKINS_X_MONOCULAR_API_SERVICE_PORT=80, JENKINS_X_MONOCULAR_API_PORT_80_TCP_PROTO=tcp, JENKINS_X_MONOCULAR_UI_SERVICE_HOST=10.59.242.187, HEAPSTER_PORT_8082_TCP_PORT=8082, NEXUS_PORT_80_TCP_PROTO=tcp, JENKINS_X_MONGODB_SERVICE_PORT=27017, JENKINS_X_MONOCULAR_UI_SERVICE_PORT=80, JENKINS_X_MONOCULAR_API_PORT_80_TCP=tcp://10.59.242.193:80, M2=/opt/apache-maven-3.3.9/bin, JENKINS_X_CHARTMUSEUM_SERVICE_PORT=8080, JENKINS_X_MONOCULAR_API_PORT_80_TCP_ADDR=10.59.242.193, JENKINS_X_MONOCULAR_PRERENDER_PORT_80_TCP=tcp://10.59.255.226:80, DOCKER_CONFIG=/home/jenkins/.docker/, JENKINS_X_MONGODB_PORT=tcp://10.59.243.233:27017, JENKINS_X_MONOCULAR_API_SERVICE_HOST=10.59.242.193, JENKINS_AGENT_PORT_50000_TCP_ADDR=10.59.242.200, JENKINS_AGENT_PORT=tcp://10.59.242.200:50000, JENKINS_X_DOCKER_REGISTRY_PORT_5000_TCP=tcp://10.59.251.152:5000, JENKINS_X_MONOCULAR_PRERENDER_SERVICE_PORT_PRERENDER=80, KUBERNETES_PORT_443_TCP=tcp://10.59.240.1:443, JENKINS_X_DOCKER_REGISTRY_PORT_5000_TCP_PROTO=tcp, JENKINS_AGENT_PORT_50000_TCP=tcp://10.59.242.200:50000, JENKINS_X_MONOCULAR_API_SERVICE_PORT_MONOCULAR_API=80, BUILD_TAG=jenkins-grohan2002-demo08-master-1, HEAPSTER_PORT_8082_TCP=tcp://10.59.255.13:8082, MAVEN_VERSION=3.3.9, HEAPSTER_PORT_8082_TCP_PROTO=tcp, JENKINS_X_DOCKER_REGISTRY_SERVICE_HOST=10.59.251.152, OLDPWD=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A, JENKINS_X_MONGODB_PORT_27017_TCP_ADDR=10.59.243.233, JENKINS_X_CHARTMUSEUM_PORT_8080_TCP_PORT=8080, NEXUS_PORT_80_TCP_PORT=80, NEXUS_SERVICE_PORT_NEXUS=80, JOB_DISPLAY_URL=http://unconfigured-jenkins-location/job/grohan2002/job/demo08/job/master/display/redirect, M2_HOME=/opt/apache-maven-3.3.9, _JAVA_OPTIONS=-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Dsun.zip.disableMemoryMapping=true -XX:+UseParallelGC -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Xms10m -Xmx192m, JENKINS_X_CHARTMUSEUM_SERVICE_HOST=10.59.247.18, GIT_BRANCH=master, JENKINS_X_MONOCULAR_PRERENDER_PORT_80_TCP_ADDR=10.59.255.226, JENKINS_X_MONOCULAR_UI_PORT_80_TCP=tcp://10.59.242.187:80, HEAPSTER_SERVICE_PORT=8082, JENKINS_TUNNEL=jenkins-agent:50000, JENKINS_X_CHARTMUSEUM_PORT_8080_TCP_PROTO=tcp, ORG=grohan2002, CHARTMUSEUM_CREDS=****, JENKINS_X_CHARTMUSEUM_PORT_8080_TCP_ADDR=10.59.247.18, HEAPSTER_PORT=tcp://10.59.255.13:8082, JENKINS_SERVICE_PORT_HTTP=8080, BUILD_ID=1, KUBERNETES_SERVICE_HOST=10.59.240.1, JOB_NAME=grohan2002/demo08/master, JENKINS_SERVICE_PORT=8080, EXPOSECONTROLLER_VERSION=2.3.34, JENKINS_X_CHARTMUSEUM_PORT_8080_TCP=tcp://10.59.247.18:8080, JENKINS_X_MONGODB_SERVICE_PORT_MONGODB=27017, CHARTMUSEUM_CREDS_USR=****, NODE_LABELS=jenkins-maven maven-0tbjd, JX_VERSION=1.2.101, JENKINS_X_DOCKER_REGISTRY_SERVICE_PORT_REGISTRY=5000, JENKINS_X_MONGODB_PORT_27017_TCP_PORT=27017, MAVEN_CMD_LINE_ARGS= clean deploy, HEAPSTER_PORT_8082_TCP_ADDR=10.59.255.13, JENKINS_X_DOCKER_REGISTRY_PORT_5000_TCP_ADDR=10.59.251.152, EXECUTOR_NUMBER=0, GIT_COMMITTER_NAME=jenkins-x-bot, HUDSON_SERVER_COOKIE=d2e418b0327786cb, CLASSPATH=, XDG_CONFIG_HOME=/home/jenkins, JENKINS_X_DOCKER_REGISTRY_SERVICE_PORT=5000, KUBERNETES_SERVICE_PORT=443, HOSTNAME=maven-0tbjd, HELM_VERSION=2.8.2, HEAPSTER_SERVICE_HOST=10.59.255.13, KUBERNETES_PORT_443_TCP_PORT=443, BRANCH_NAME=master, HOME=/home/jenkins}}]
    09:27:00.748 [main] DEBUG org.springframework.core.io.support.PathMatchingResourcePatternResolver - Resolved classpath location [com/example/demo08/] to resources [URL [file:/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/test-classes/com/example/demo08/], URL [file:/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/classes/com/example/demo08/]]
    09:27:00.748 [main] DEBUG org.springframework.core.io.support.PathMatchingResourcePatternResolver - Looking for matching resources in directory tree [/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/test-classes/com/example/demo08]
    09:27:00.749 [main] DEBUG org.springframework.core.io.support.PathMatchingResourcePatternResolver - Searching directory [/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/test-classes/com/example/demo08] for files matching pattern [/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/test-classes/com/example/demo08/*.class]
    09:27:00.754 [main] DEBUG org.springframework.core.io.support.PathMatchingResourcePatternResolver - Looking for matching resources in directory tree [/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/classes/com/example/demo08]
    09:27:00.754 [main] DEBUG org.springframework.core.io.support.PathMatchingResourcePatternResolver - Searching directory [/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/classes/com/example/demo08] for files matching pattern [/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/classes/com/example/demo08/*.class]
    09:27:00.754 [main] DEBUG org.springframework.core.io.support.PathMatchingResourcePatternResolver - Resolved location pattern [classpath*:com/example/demo08/*.class] to resources [file [/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/test-classes/com/example/demo08/DemoApplicationTests.class], file [/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/classes/com/example/demo08/DemoApplication.class]]
    09:27:00.935 [main] DEBUG org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider - Identified candidate component class: file [/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/classes/com/example/demo08/DemoApplication.class]
    09:27:00.937 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration com.example.demo08.DemoApplication for test class com.example.demo08.DemoApplicationTests
    09:27:01.351 [main] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - @TestExecutionListeners is not present for class [com.example.demo08.DemoApplicationTests]: using defaults.
    09:27:01.352 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener]
    09:27:01.425 [main] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Skipping candidate TestExecutionListener [org.springframework.test.context.transaction.TransactionalTestExecutionListener] due to a missing dependency. Specify custom listener classes or make the default listener classes and their required dependencies available. Offending class: [org/springframework/transaction/TransactionDefinition]
    09:27:01.426 [main] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Skipping candidate TestExecutionListener [org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener] due to a missing dependency. Specify custom listener classes or make the default listener classes and their required dependencies available. Offending class: [org/springframework/transaction/interceptor/TransactionAttribute]
    09:27:01.427 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@5f66e3, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@23df74, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@13ac989, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@162e04d, org.springframework.test.context.support.DirtiesContextTestExecutionListener@65fe7c, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@135c3b, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@102bbb1, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@1304f14, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@a3d150, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@4fb17b]
    09:27:01.430 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [com.example.demo08.DemoApplicationTests]
    09:27:01.431 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [com.example.demo08.DemoApplicationTests]
    09:27:01.432 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [com.example.demo08.DemoApplicationTests]
    09:27:01.433 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [com.example.demo08.DemoApplicationTests]
    09:27:01.435 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [com.example.demo08.DemoApplicationTests]
    09:27:01.436 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [com.example.demo08.DemoApplicationTests]
    09:27:01.440 [main] DEBUG org.springframework.test.context.support.AbstractDirtiesContextTestExecutionListener - Before test class: context [DefaultTestContext@190fc5b testClass = DemoApplicationTests, testInstance = [null], testMethod = [null], testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@197fbdb testClass = DemoApplicationTests, locations = '{}', classes = '{class com.example.demo08.DemoApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@1f99a05, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@a3e297, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@1723e30, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@16e2f39], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true]], class annotated with @DirtiesContext [false] with mode [null].
    09:27:01.441 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [com.example.demo08.DemoApplicationTests]
    09:27:01.442 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [com.example.demo08.DemoApplicationTests]
    09:27:01.538 [main] DEBUG org.springframework.core.env.StandardEnvironment - Adding PropertySource 'systemProperties' with lowest search precedence
    09:27:01.539 [main] DEBUG org.springframework.core.env.StandardEnvironment - Adding PropertySource 'systemEnvironment' with lowest search precedence
    09:27:01.542 [main] DEBUG org.springframework.core.env.StandardEnvironment - Initialized StandardEnvironment with PropertySources [MapPropertySource@25913137 {name='systemProperties', properties={java.runtime.name=OpenJDK Runtime Environment, sun.boot.library.path=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/i386, java.vm.version=25.171-b10, java.vm.vendor=Oracle Corporation, java.vendor.url=http://java.oracle.com/, path.separator=:, java.vm.name=OpenJDK Server VM, file.encoding.pkg=sun.io, user.country=US, sun.java.launcher=SUN_STANDARD, sun.os.patch.level=unknown, java.vm.specification.name=Java Virtual Machine Specification, user.dir=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A, java.runtime.version=1.8.0_171-b10, basedir=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A, java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment, java.endorsed.dirs=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/endorsed, os.arch=i386, surefire.real.class.path=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/surefire/surefirebooter8695429534331311209.jar, java.io.tmpdir=/tmp, line.separator=
    , java.vm.specification.vendor=Oracle Corporation, os.name=Linux, sun.jnu.encoding=ANSI_X3.4-1968, java.library.path=/usr/java/packages/lib/i386:/lib:/usr/lib, surefire.test.class.path=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/test-classes:/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/classes:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-actuator/2.0.2.RELEASE/spring-boot-starter-actuator-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter/2.0.2.RELEASE/spring-boot-starter-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot/2.0.2.RELEASE/spring-boot-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-autoconfigure/2.0.2.RELEASE/spring-boot-autoconfigure-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-logging/2.0.2.RELEASE/spring-boot-starter-logging-2.0.2.RELEASE.jar:/root/.mvnrepository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar:/root/.mvnrepository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar:/root/.mvnrepository/org/apache/logging/log4j/log4j-to-slf4j/2.10.0/log4j-to-slf4j-2.10.0.jar:/root/.mvnrepository/org/apache/logging/log4j/log4j-api/2.10.0/log4j-api-2.10.0.jar:/root/.mvnrepository/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.jar:/root/.mvnrepository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar:/root/.mvnrepository/org/yaml/snakeyaml/1.19/snakeyaml-1.19.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-actuator-autoconfigure/2.0.2.RELEASE/spring-boot-actuator-autoconfigure-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-actuator/2.0.2.RELEASE/spring-boot-actuator-2.0.2.RELEASE.jar:/root/.mvnrepository/com/fasterxml/jackson/core/jackson-databind/2.9.5/jackson-databind-2.9.5.jar:/root/.mvnrepository/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar:/root/.mvnrepository/com/fasterxml/jackson/core/jackson-core/2.9.5/jackson-core-2.9.5.jar:/root/.mvnrepository/org/springframework/spring-context/5.0.6.RELEASE/spring-context-5.0.6.RELEASE.jar:/root/.mvnrepository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.5/jackson-datatype-jsr310-2.9.5.jar:/root/.mvnrepository/io/micrometer/micrometer-core/1.0.4/micrometer-core-1.0.4.jar:/root/.mvnrepository/org/hdrhistogram/HdrHistogram/2.1.10/HdrHistogram-2.1.10.jar:/root/.mvnrepository/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-web/2.0.2.RELEASE/spring-boot-starter-web-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-json/2.0.2.RELEASE/spring-boot-starter-json-2.0.2.RELEASE.jar:/root/.mvnrepository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.5/jackson-datatype-jdk8-2.9.5.jar:/root/.mvnrepository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.9.5/jackson-module-parameter-names-2.9.5.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-tomcat/2.0.2.RELEASE/spring-boot-starter-tomcat-2.0.2.RELEASE.jar:/root/.mvnrepository/org/apache/tomcat/embed/tomcat-embed-core/8.5.31/tomcat-embed-core-8.5.31.jar:/root/.mvnrepository/org/apache/tomcat/embed/tomcat-embed-el/8.5.31/tomcat-embed-el-8.5.31.jar:/root/.mvnrepository/org/apache/tomcat/embed/tomcat-embed-websocket/8.5.31/tomcat-embed-websocket-8.5.31.jar:/root/.mvnrepository/org/hibernate/validator/hibernate-validator/6.0.9.Final/hibernate-validator-6.0.9.Final.jar:/root/.mvnrepository/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar:/root/.mvnrepository/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar:/root/.mvnrepository/com/fasterxml/classmate/1.3.4/classmate-1.3.4.jar:/root/.mvnrepository/org/springframework/spring-web/5.0.6.RELEASE/spring-web-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-beans/5.0.6.RELEASE/spring-beans-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-webmvc/5.0.6.RELEASE/spring-webmvc-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-aop/5.0.6.RELEASE/spring-aop-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-expression/5.0.6.RELEASE/spring-expression-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-test/2.0.2.RELEASE/spring-boot-starter-test-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-test/2.0.2.RELEASE/spring-boot-test-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-test-autoconfigure/2.0.2.RELEASE/spring-boot-test-autoconfigure-2.0.2.RELEASE.jar:/root/.mvnrepository/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.jar:/root/.mvnrepository/net/minidev/json-smart/2.3/json-smart-2.3.jar:/root/.mvnrepository/net/minidev/accessors-smart/1.2/accessors-smart-1.2.jar:/root/.mvnrepository/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar:/root/.mvnrepository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar:/root/.mvnrepository/junit/junit/4.12/junit-4.12.jar:/root/.mvnrepository/org/assertj/assertj-core/3.9.1/assertj-core-3.9.1.jar:/root/.mvnrepository/org/mockito/mockito-core/2.15.0/mockito-core-2.15.0.jar:/root/.mvnrepository/net/bytebuddy/byte-buddy/1.7.11/byte-buddy-1.7.11.jar:/root/.mvnrepository/net/bytebuddy/byte-buddy-agent/1.7.11/byte-buddy-agent-1.7.11.jar:/root/.mvnrepository/org/objenesis/objenesis/2.6/objenesis-2.6.jar:/root/.mvnrepository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:/root/.mvnrepository/org/hamcrest/hamcrest-library/1.3/hamcrest-library-1.3.jar:/root/.mvnrepository/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0.jar:/root/.mvnrepository/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.jar:/root/.mvnrepository/org/springframework/spring-core/5.0.6.RELEASE/spring-core-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-jcl/5.0.6.RELEASE/spring-jcl-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-test/5.0.6.RELEASE/spring-test-5.0.6.RELEASE.jar:/root/.mvnrepository/org/xmlunit/xmlunit-core/2.5.1/xmlunit-core-2.5.1.jar:, java.specification.name=Java Platform API Specification, java.class.version=52.0, sun.management.compiler=HotSpot Tiered Compilers, os.version=4.4.111+, user.home=/root, user.timezone=UTC, java.awt.printerjob=sun.print.PSPrinterJob, file.encoding=ANSI_X3.4-1968, java.specification.version=1.8, java.class.path=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/test-classes:/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/classes:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-actuator/2.0.2.RELEASE/spring-boot-starter-actuator-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter/2.0.2.RELEASE/spring-boot-starter-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot/2.0.2.RELEASE/spring-boot-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-autoconfigure/2.0.2.RELEASE/spring-boot-autoconfigure-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-logging/2.0.2.RELEASE/spring-boot-starter-logging-2.0.2.RELEASE.jar:/root/.mvnrepository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar:/root/.mvnrepository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar:/root/.mvnrepository/org/apache/logging/log4j/log4j-to-slf4j/2.10.0/log4j-to-slf4j-2.10.0.jar:/root/.mvnrepository/org/apache/logging/log4j/log4j-api/2.10.0/log4j-api-2.10.0.jar:/root/.mvnrepository/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.jar:/root/.mvnrepository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar:/root/.mvnrepository/org/yaml/snakeyaml/1.19/snakeyaml-1.19.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-actuator-autoconfigure/2.0.2.RELEASE/spring-boot-actuator-autoconfigure-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-actuator/2.0.2.RELEASE/spring-boot-actuator-2.0.2.RELEASE.jar:/root/.mvnrepository/com/fasterxml/jackson/core/jackson-databind/2.9.5/jackson-databind-2.9.5.jar:/root/.mvnrepository/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar:/root/.mvnrepository/com/fasterxml/jackson/core/jackson-core/2.9.5/jackson-core-2.9.5.jar:/root/.mvnrepository/org/springframework/spring-context/5.0.6.RELEASE/spring-context-5.0.6.RELEASE.jar:/root/.mvnrepository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.5/jackson-datatype-jsr310-2.9.5.jar:/root/.mvnrepository/io/micrometer/micrometer-core/1.0.4/micrometer-core-1.0.4.jar:/root/.mvnrepository/org/hdrhistogram/HdrHistogram/2.1.10/HdrHistogram-2.1.10.jar:/root/.mvnrepository/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-web/2.0.2.RELEASE/spring-boot-starter-web-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-json/2.0.2.RELEASE/spring-boot-starter-json-2.0.2.RELEASE.jar:/root/.mvnrepository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.5/jackson-datatype-jdk8-2.9.5.jar:/root/.mvnrepository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.9.5/jackson-module-parameter-names-2.9.5.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-tomcat/2.0.2.RELEASE/spring-boot-starter-tomcat-2.0.2.RELEASE.jar:/root/.mvnrepository/org/apache/tomcat/embed/tomcat-embed-core/8.5.31/tomcat-embed-core-8.5.31.jar:/root/.mvnrepository/org/apache/tomcat/embed/tomcat-embed-el/8.5.31/tomcat-embed-el-8.5.31.jar:/root/.mvnrepository/org/apache/tomcat/embed/tomcat-embed-websocket/8.5.31/tomcat-embed-websocket-8.5.31.jar:/root/.mvnrepository/org/hibernate/validator/hibernate-validator/6.0.9.Final/hibernate-validator-6.0.9.Final.jar:/root/.mvnrepository/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar:/root/.mvnrepository/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar:/root/.mvnrepository/com/fasterxml/classmate/1.3.4/classmate-1.3.4.jar:/root/.mvnrepository/org/springframework/spring-web/5.0.6.RELEASE/spring-web-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-beans/5.0.6.RELEASE/spring-beans-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-webmvc/5.0.6.RELEASE/spring-webmvc-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-aop/5.0.6.RELEASE/spring-aop-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-expression/5.0.6.RELEASE/spring-expression-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-starter-test/2.0.2.RELEASE/spring-boot-starter-test-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-test/2.0.2.RELEASE/spring-boot-test-2.0.2.RELEASE.jar:/root/.mvnrepository/org/springframework/boot/spring-boot-test-autoconfigure/2.0.2.RELEASE/spring-boot-test-autoconfigure-2.0.2.RELEASE.jar:/root/.mvnrepository/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.jar:/root/.mvnrepository/net/minidev/json-smart/2.3/json-smart-2.3.jar:/root/.mvnrepository/net/minidev/accessors-smart/1.2/accessors-smart-1.2.jar:/root/.mvnrepository/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar:/root/.mvnrepository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar:/root/.mvnrepository/junit/junit/4.12/junit-4.12.jar:/root/.mvnrepository/org/assertj/assertj-core/3.9.1/assertj-core-3.9.1.jar:/root/.mvnrepository/org/mockito/mockito-core/2.15.0/mockito-core-2.15.0.jar:/root/.mvnrepository/net/bytebuddy/byte-buddy/1.7.11/byte-buddy-1.7.11.jar:/root/.mvnrepository/net/bytebuddy/byte-buddy-agent/1.7.11/byte-buddy-agent-1.7.11.jar:/root/.mvnrepository/org/objenesis/objenesis/2.6/objenesis-2.6.jar:/root/.mvnrepository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:/root/.mvnrepository/org/hamcrest/hamcrest-library/1.3/hamcrest-library-1.3.jar:/root/.mvnrepository/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0.jar:/root/.mvnrepository/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.jar:/root/.mvnrepository/org/springframework/spring-core/5.0.6.RELEASE/spring-core-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-jcl/5.0.6.RELEASE/spring-jcl-5.0.6.RELEASE.jar:/root/.mvnrepository/org/springframework/spring-test/5.0.6.RELEASE/spring-test-5.0.6.RELEASE.jar:/root/.mvnrepository/org/xmlunit/xmlunit-core/2.5.1/xmlunit-core-2.5.1.jar:, user.name=root, java.vm.specification.version=1.8, sun.java.command=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/surefire/surefirebooter8695429534331311209.jar /home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/surefire 2018-06-08T09-26-57_236-jvmRun1 surefire4328980770760480765tmp surefire_02400531796289035372tmp, java.home=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre, sun.arch.data.model=32, user.language=en, java.specification.vendor=Oracle Corporation, awt.toolkit=sun.awt.X11.XToolkit, java.vm.info=mixed mode, java.version=1.8.0_171, java.ext.dirs=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/ext:/usr/java/packages/lib/ext, sun.boot.class.path=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/resources.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/rt.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/jsse.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/jce.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/charsets.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/lib/jfr.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/classes, java.vendor=Oracle Corporation, localRepository=/root/.mvnrepository, file.separator=/, java.vendor.url.bug=http://bugreport.sun.com/bugreport/, sun.io.unicode.encoding=UnicodeLittle, sun.cpu.endian=little, sun.cpu.isalist=}}, SystemEnvironmentPropertySource@6883543 {name='systemEnvironment', properties={PATH=/opt/apache-maven-3.3.9/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/google-cloud-sdk/bin:/opt/google/chrome, JENKINS_X_MONOCULAR_UI_PORT_80_TCP_PROTO=tcp, JENKINS_X_MONOCULAR_API_PORT_80_TCP_PORT=80, RUN_DISPLAY_URL=http://unconfigured-jenkins-location/job/grohan2002/job/demo08/job/master/1/display/redirect, HUDSON_HOME=/var/jenkins_home, JENKINS_X_MONOCULAR_UI_PORT=tcp://10.59.242.187:80, RUN_CHANGES_DISPLAY_URL=http://unconfigured-jenkins-location/job/grohan2002/job/demo08/job/master/1/display/redirect?page=changes, APP_NAME=demo08, JENKINS_X_MONOCULAR_PRERENDER_PORT=tcp://10.59.255.226:80, JENKINS_NODE_COOKIE=1e8ba60b-b92c-4c51-a0b3-2db62a36b930, JENKINS_X_MONOCULAR_PRERENDER_PORT_80_TCP_PORT=80, JENKINS_X_MONOCULAR_PRERENDER_PORT_80_TCP_PROTO=tcp, CHARTMUSEUM_CREDS_PSW=****, JENKINS_X_MONGODB_PORT_27017_TCP_PROTO=tcp, JENKINS_X_MONOCULAR_PRERENDER_SERVICE_HOST=10.59.255.226, JENKINS_AGENT_SERVICE_PORT=50000, JENKINS_SERVER_COOKIE=durable-0175af514c7fda992d16faace609e600, PWD=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A, JENKINS_URL=http://jenkins:8080, JENKINS_SECRET=0ce10b8d424d8d0f21232f7289fd3fbfd8dc7992708d64922c0cbfe468664f47, GIT_AUTHOR_EMAIL=jenkins-x@googlegroups.com, JENKINS_SERVICE_HOST=10.59.252.154, maven.home=/opt/apache-maven-3.3.9, STAGE_NAME=Build Release, JENKINS_X_CHARTMUSEUM_SERVICE_PORT_JENKINS_X=8080, JENKINS_X_MONOCULAR_UI_PORT_80_TCP_ADDR=10.59.242.187, JENKINS_AGENT_SERVICE_HOST=10.59.242.200, JENKINS_PORT_8080_TCP=tcp://10.59.252.154:8080, GIT_AUTHOR_NAME=jenkins-x-bot, JENKINS_HOME=/var/jenkins_home, NODE_NAME=maven-0tbjd, BUILD_DISPLAY_NAME=#1, JENKINS_X_MONOCULAR_UI_SERVICE_PORT_MONOCULAR_UI=80, JENKINS_X_MONGODB_PORT_27017_TCP=tcp://10.59.243.233:27017, JENKINS_PORT_8080_TCP_PORT=8080, KUBERNETES_SERVICE_PORT_HTTPS=443, JENKINS_AGENT_SERVICE_PORT_SLAVELISTENER=50000, SHLVL=4, JENKINS_PORT=tcp://10.59.252.154:8080, JX_RELEASE_VERSION=1.0.10, KUBERNETES_PORT=tcp://10.59.240.1:443, DOCKER_VERSION=17.12.0, JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386, JENKINS_AGENT_PORT_50000_TCP_PROTO=tcp, NEXUS_PORT_80_TCP_ADDR=10.59.240.56, NEXUS_PORT=tcp://10.59.240.56:80, JENKINS_X_CHARTMUSEUM_PORT=tcp://10.59.247.18:8080, JENKINS_PORT_8080_TCP_PROTO=tcp, JENKINS_PORT_8080_TCP_ADDR=10.59.252.154, NEXUS_PORT_80_TCP=tcp://10.59.240.56:80, NEXUS_SERVICE_PORT=80, GCLOUD_VERSION=187.0.0, WORKSPACE=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A, JENKINS_X_MONGODB_SERVICE_HOST=10.59.243.233, JENKINS_NAME=maven-0tbjd, JENKINS_X_DOCKER_REGISTRY_PORT=tcp://10.59.251.152:5000, _=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.i386/jre/bin/java, SKAFFOLD_VERSION=0.4.0, GIT_COMMIT=efc077e94f0b7820ee4a626bd921e5da208ecf8a, KUBERNETES_PORT_443_TCP_ADDR=10.59.240.1, NEXUS_SERVICE_HOST=10.59.240.56, KUBERNETES_PORT_443_TCP_PROTO=tcp, MAVEN_PROJECTBASEDIR=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A, JOB_BASE_NAME=master, JENKINS_X_DOCKER_REGISTRY_PORT_5000_TCP_PORT=5000, JENKINS_X_MONOCULAR_UI_PORT_80_TCP_PORT=80, JENKINS_AGENT_PORT_50000_TCP_PORT=50000, UPDATEBOT_VERSION=1.1.10, BUILD_NUMBER=1, JENKINS_X_MONOCULAR_PRERENDER_SERVICE_PORT=80, JENKINS_X_MONOCULAR_API_PORT=tcp://10.59.242.193:80, GIT_COMMITTER_EMAIL=jenkins-x@googlegroups.com, GIT_URL=https://github.com/grohan2002/demo08.git, JENKINS_X_MONOCULAR_API_SERVICE_PORT=80, JENKINS_X_MONOCULAR_API_PORT_80_TCP_PROTO=tcp, JENKINS_X_MONOCULAR_UI_SERVICE_HOST=10.59.242.187, HEAPSTER_PORT_8082_TCP_PORT=8082, NEXUS_PORT_80_TCP_PROTO=tcp, JENKINS_X_MONGODB_SERVICE_PORT=27017, JENKINS_X_MONOCULAR_UI_SERVICE_PORT=80, JENKINS_X_MONOCULAR_API_PORT_80_TCP=tcp://10.59.242.193:80, M2=/opt/apache-maven-3.3.9/bin, JENKINS_X_CHARTMUSEUM_SERVICE_PORT=8080, JENKINS_X_MONOCULAR_API_PORT_80_TCP_ADDR=10.59.242.193, JENKINS_X_MONOCULAR_PRERENDER_PORT_80_TCP=tcp://10.59.255.226:80, DOCKER_CONFIG=/home/jenkins/.docker/, JENKINS_X_MONGODB_PORT=tcp://10.59.243.233:27017, JENKINS_X_MONOCULAR_API_SERVICE_HOST=10.59.242.193, JENKINS_AGENT_PORT_50000_TCP_ADDR=10.59.242.200, JENKINS_AGENT_PORT=tcp://10.59.242.200:50000, JENKINS_X_DOCKER_REGISTRY_PORT_5000_TCP=tcp://10.59.251.152:5000, JENKINS_X_MONOCULAR_PRERENDER_SERVICE_PORT_PRERENDER=80, KUBERNETES_PORT_443_TCP=tcp://10.59.240.1:443, JENKINS_X_DOCKER_REGISTRY_PORT_5000_TCP_PROTO=tcp, JENKINS_AGENT_PORT_50000_TCP=tcp://10.59.242.200:50000, JENKINS_X_MONOCULAR_API_SERVICE_PORT_MONOCULAR_API=80, BUILD_TAG=jenkins-grohan2002-demo08-master-1, HEAPSTER_PORT_8082_TCP=tcp://10.59.255.13:8082, MAVEN_VERSION=3.3.9, HEAPSTER_PORT_8082_TCP_PROTO=tcp, JENKINS_X_DOCKER_REGISTRY_SERVICE_HOST=10.59.251.152, OLDPWD=/home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A, JENKINS_X_MONGODB_PORT_27017_TCP_ADDR=10.59.243.233, JENKINS_X_CHARTMUSEUM_PORT_8080_TCP_PORT=8080, NEXUS_PORT_80_TCP_PORT=80, NEXUS_SERVICE_PORT_NEXUS=80, JOB_DISPLAY_URL=http://unconfigured-jenkins-location/job/grohan2002/job/demo08/job/master/display/redirect, M2_HOME=/opt/apache-maven-3.3.9, _JAVA_OPTIONS=-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Dsun.zip.disableMemoryMapping=true -XX:+UseParallelGC -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Xms10m -Xmx192m, JENKINS_X_CHARTMUSEUM_SERVICE_HOST=10.59.247.18, GIT_BRANCH=master, JENKINS_X_MONOCULAR_PRERENDER_PORT_80_TCP_ADDR=10.59.255.226, JENKINS_X_MONOCULAR_UI_PORT_80_TCP=tcp://10.59.242.187:80, HEAPSTER_SERVICE_PORT=8082, JENKINS_TUNNEL=jenkins-agent:50000, JENKINS_X_CHARTMUSEUM_PORT_8080_TCP_PROTO=tcp, ORG=grohan2002, CHARTMUSEUM_CREDS=****, JENKINS_X_CHARTMUSEUM_PORT_8080_TCP_ADDR=10.59.247.18, HEAPSTER_PORT=tcp://10.59.255.13:8082, JENKINS_SERVICE_PORT_HTTP=8080, BUILD_ID=1, KUBERNETES_SERVICE_HOST=10.59.240.1, JOB_NAME=grohan2002/demo08/master, JENKINS_SERVICE_PORT=8080, EXPOSECONTROLLER_VERSION=2.3.34, JENKINS_X_CHARTMUSEUM_PORT_8080_TCP=tcp://10.59.247.18:8080, JENKINS_X_MONGODB_SERVICE_PORT_MONGODB=27017, CHARTMUSEUM_CREDS_USR=****, NODE_LABELS=jenkins-maven maven-0tbjd, JX_VERSION=1.2.101, JENKINS_X_DOCKER_REGISTRY_SERVICE_PORT_REGISTRY=5000, JENKINS_X_MONGODB_PORT_27017_TCP_PORT=27017, MAVEN_CMD_LINE_ARGS= clean deploy, HEAPSTER_PORT_8082_TCP_ADDR=10.59.255.13, JENKINS_X_DOCKER_REGISTRY_PORT_5000_TCP_ADDR=10.59.251.152, EXECUTOR_NUMBER=0, GIT_COMMITTER_NAME=jenkins-x-bot, HUDSON_SERVER_COOKIE=d2e418b0327786cb, CLASSPATH=, XDG_CONFIG_HOME=/home/jenkins, JENKINS_X_DOCKER_REGISTRY_SERVICE_PORT=5000, KUBERNETES_SERVICE_PORT=443, HOSTNAME=maven-0tbjd, HELM_VERSION=2.8.2, HEAPSTER_SERVICE_HOST=10.59.255.13, KUBERNETES_PORT_443_TCP_PORT=443, BRANCH_NAME=master, HOME=/home/jenkins}}]
    09:27:01.549 [main] DEBUG org.springframework.test.context.support.TestPropertySourceUtils - Adding inlined properties to environment: {spring.jmx.enabled=false, org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true, server.port=-1}
    09:27:01.561 [main] DEBUG org.springframework.core.env.StandardEnvironment - Adding PropertySource 'Inlined Test Properties' with highest search precedence
    
    
      .   ____          _            __ _ _
     /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
     \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::        (v2.0.2.RELEASE)
    
    2018-06-08 09:27:02.738  INFO 279 --- [           main] com.example.demo08.DemoApplicationTests  : Starting DemoApplicationTests on maven-0tbjd with PID 279 (started by root in /home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A)
    2018-06-08 09:27:02.748  INFO 279 --- [           main] com.example.demo08.DemoApplicationTests  : No active profile set, falling back to default profiles: default
    2018-06-08 09:27:02.948  INFO 279 --- [           main] o.s.w.c.s.GenericWebApplicationContext   : Refreshing org.springframework.web.context.support.GenericWebApplicationContext@152216b: startup date [Fri Jun 08 09:27:02 UTC 2018]; root of context hierarchy
    2018-06-08 09:27:09.746  INFO 279 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    2018-06-08 09:27:10.826  INFO 279 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.web.context.support.GenericWebApplicationContext@152216b: startup date [Fri Jun 08 09:27:02 UTC 2018]; root of context hierarchy
    2018-06-08 09:27:11.125  INFO 279 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
    2018-06-08 09:27:11.130  INFO 279 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
    2018-06-08 09:27:11.230  INFO 279 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    2018-06-08 09:27:11.231  INFO 279 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    2018-06-08 09:27:14.040  INFO 279 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 2 endpoint(s) beneath base path '/actuator'
    2018-06-08 09:27:14.055  INFO 279 --- [           main] s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped "{[/actuator/health],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map<java.lang.String, java.lang.String>)
    2018-06-08 09:27:14.056  INFO 279 --- [           main] s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped "{[/actuator/info],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map<java.lang.String, java.lang.String>)
    2018-06-08 09:27:14.057  INFO 279 --- [           main] s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped "{[/actuator],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto protected java.util.Map<java.lang.String, java.util.Map<java.lang.String, org.springframework.boot.actuate.endpoint.web.Link>> org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping.links(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
    2018-06-08 09:27:14.350  INFO 279 --- [           main] com.example.demo08.DemoApplicationTests  : Started DemoApplicationTests in 12.725 seconds (JVM running for 15.43)
    [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 14.996 s - in com.example.demo08.DemoApplicationTests
    2018-06-08 09:27:14.752  INFO 279 --- [       Thread-4] o.s.w.c.s.GenericWebApplicationContext   : Closing org.springframework.web.context.support.GenericWebApplicationContext@152216b: startup date [Fri Jun 08 09:27:02 UTC 2018]; root of context hierarchy
    [INFO] 
    [INFO] Results:
    [INFO] 
    [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
    [INFO] 
    [INFO] 
    [INFO] --- maven-jar-plugin:3.0.2:jar (default-jar) @ demo08 ---
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-archiver/3.1.1/maven-archiver-3.1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-archiver/3.1.1/maven-archiver-3.1.1.pom (5 KB at 69.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/3.0.1/maven-shared-utils-3.0.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/3.0.1/maven-shared-utils-3.0.1.pom (5 KB at 64.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-archiver/3.3/plexus-archiver-3.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-archiver/3.3/plexus-archiver-3.3.pom (6 KB at 102.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-io/2.7.1/plexus-io-2.7.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-io/2.7.1/plexus-io-2.7.1.pom (5 KB at 100.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-io/commons-io/2.2/commons-io-2.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-io/commons-io/2.2/commons-io-2.2.pom (11 KB at 207.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/commons/commons-parent/24/commons-parent-24.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/commons/commons-parent/24/commons-parent-24.pom (47 KB at 839.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/commons/commons-compress/1.11/commons-compress-1.11.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/commons/commons-compress/1.11/commons-compress-1.11.pom (13 KB at 204.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/iq80/snappy/snappy/0.4/snappy-0.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/iq80/snappy/snappy/0.4/snappy-0.4.pom (15 KB at 244.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/tukaani/xz/1.5/xz-1.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/tukaani/xz/1.5/xz-1.5.pom (2 KB at 40.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-archiver/3.4/plexus-archiver-3.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-archiver/3.4/plexus-archiver-3.4.pom (6 KB at 108.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-archiver/3.1.1/maven-archiver-3.1.1.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/3.0.1/maven-shared-utils-3.0.1.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-archiver/3.4/plexus-archiver-3.4.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-io/2.7.1/plexus-io-2.7.1.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/commons/commons-compress/1.11/commons-compress-1.11.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-archiver/3.1.1/maven-archiver-3.1.1.jar (24 KB at 200.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/iq80/snappy/snappy/0.4/snappy-0.4.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-archiver/3.4/plexus-archiver-3.4.jar (183 KB at 1250.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/tukaani/xz/1.5/xz-1.5.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-io/2.7.1/plexus-io-2.7.1.jar (84 KB at 537.2 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/3.0.1/maven-shared-utils-3.0.1.jar (151 KB at 954.6 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/iq80/snappy/snappy/0.4/snappy-0.4.jar (57 KB at 343.0 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/commons/commons-compress/1.11/commons-compress-1.11.jar (416 KB at 1970.0 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/tukaani/xz/1.5/xz-1.5.jar (98 KB at 434.0 KB/sec)
    [INFO] Building jar: /home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/demo08-0.0.1.jar
    [INFO] 
    [INFO] --- spring-boot-maven-plugin:2.0.2.RELEASE:repackage (default) @ demo08 ---
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-loader-tools/2.0.2.RELEASE/spring-boot-loader-tools-2.0.2.RELEASE.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-loader-tools/2.0.2.RELEASE/spring-boot-loader-tools-2.0.2.RELEASE.pom (3 KB at 9.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/commons/commons-compress/1.14/commons-compress-1.14.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/commons/commons-compress/1.14/commons-compress-1.14.pom (13 KB at 191.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/commons/commons-parent/42/commons-parent-42.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/commons/commons-parent/42/commons-parent-42.pom (67 KB at 909.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-archiver/2.6/maven-archiver-2.6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-archiver/2.6/maven-archiver-2.6.pom (5 KB at 72.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-components/20/maven-shared-components-20.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-components/20/maven-shared-components-20.pom (5 KB at 92.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/slf4j/slf4j-jdk14/1.7.25/slf4j-jdk14-1.7.25.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/slf4j/slf4j-jdk14/1.7.25/slf4j-jdk14-1.7.25.pom (1008 B at 16.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/slf4j/jcl-over-slf4j/1.7.25/jcl-over-slf4j-1.7.25.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/slf4j/jcl-over-slf4j/1.7.25/jcl-over-slf4j-1.7.25.pom (959 B at 6.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/0.7/maven-shared-utils-0.7.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/0.7/maven-shared-utils-0.7.pom (5 KB at 66.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-archiver/2.8.1/plexus-archiver-2.8.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-archiver/2.8.1/plexus-archiver-2.8.1.pom (5 KB at 63.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-components/1.3/plexus-components-1.3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-components/1.3/plexus-components-1.3.pom (3 KB at 64.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-io/2.3.2/plexus-io-2.3.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-io/2.3.2/plexus-io-2.3.2.pom (3 KB at 47.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-components/1.2/plexus-components-1.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-components/1.2/plexus-components-1.2.pom (3 KB at 52.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/commons/commons-compress/1.9/commons-compress-1.9.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/commons/commons-compress/1.9/commons-compress-1.9.pom (12 KB at 183.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/commons/commons-parent/34/commons-parent-34.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/commons/commons-parent/34/commons-parent-34.pom (55 KB at 958.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interpolation/1.21/plexus-interpolation-1.21.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interpolation/1.21/plexus-interpolation-1.21.pom (2 KB at 29.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-artifact/3.1.1/maven-artifact-3.1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-artifact/3.1.1/maven-artifact-3.1.1.pom (2 KB at 37.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven/3.1.1/maven-3.1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven/3.1.1/maven-3.1.1.pom (22 KB at 273.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.pom (4 KB at 48.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-core/3.1.1/maven-core-3.1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-core/3.1.1/maven-core-3.1.1.pom (8 KB at 136.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-model/3.1.1/maven-model-3.1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-model/3.1.1/maven-model-3.1.1.pom (5 KB at 79.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-settings/3.1.1/maven-settings-3.1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-settings/3.1.1/maven-settings-3.1.1.pom (3 KB at 44.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-settings-builder/3.1.1/maven-settings-builder-3.1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-settings-builder/3.1.1/maven-settings-builder-3.1.1.pom (3 KB at 52.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interpolation/1.19/plexus-interpolation-1.19.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interpolation/1.19/plexus-interpolation-1.19.pom (2 KB at 21.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-repository-metadata/3.1.1/maven-repository-metadata-3.1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-repository-metadata/3.1.1/maven-repository-metadata-3.1.1.pom (3 KB at 31.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-api/3.1.1/maven-plugin-api-3.1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-api/3.1.1/maven-plugin-api-3.1.1.pom (4 KB at 62.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/eclipse/sisu/org.eclipse.sisu.plexus/0.0.0.M5/org.eclipse.sisu.plexus-0.0.0.M5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/eclipse/sisu/org.eclipse.sisu.plexus/0.0.0.M5/org.eclipse.sisu.plexus-0.0.0.M5.pom (5 KB at 81.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/eclipse/sisu/sisu-plexus/0.0.0.M5/sisu-plexus-0.0.0.M5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/eclipse/sisu/sisu-plexus/0.0.0.M5/sisu-plexus-0.0.0.M5.pom (13 KB at 243.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/javax/enterprise/cdi-api/1.0/cdi-api-1.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/javax/enterprise/cdi-api/1.0/cdi-api-1.0.pom (2 KB at 27.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/jboss/weld/weld-api-parent/1.0/weld-api-parent-1.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/jboss/weld/weld-api-parent/1.0/weld-api-parent-1.0.pom (3 KB at 46.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/jboss/weld/weld-api-bom/1.0/weld-api-bom-1.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/jboss/weld/weld-api-bom/1.0/weld-api-bom-1.0.pom (8 KB at 145.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/jboss/weld/weld-parent/6/weld-parent-6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/jboss/weld/weld-parent/6/weld-parent-6.pom (21 KB at 360.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.pom (1023 B at 20.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/javax/inject/javax.inject/1/javax.inject-1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/javax/inject/javax.inject/1/javax.inject-1.pom (612 B at 13.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/google/guava/guava/10.0.1/guava-10.0.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/google/guava/guava/10.0.1/guava-10.0.1.pom (6 KB at 101.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/google/guava/guava-parent/10.0.1/guava-parent-10.0.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/google/guava/guava-parent/10.0.1/guava-parent-10.0.1.pom (2 KB at 37.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom (965 B at 17.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0.pom (10 KB at 177.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/sisu/inject/guice-parent/3.1.0/guice-parent-3.1.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/sisu/inject/guice-parent/3.1.0/guice-parent-3.1.0.pom (11 KB at 154.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/aopalliance/aopalliance/1.0/aopalliance-1.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/aopalliance/aopalliance/1.0/aopalliance-1.0.pom (363 B at 7.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/eclipse/sisu/org.eclipse.sisu.inject/0.0.0.M5/org.eclipse.sisu.inject-0.0.0.M5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/eclipse/sisu/org.eclipse.sisu.inject/0.0.0.M5/org.eclipse.sisu.inject-0.0.0.M5.pom (3 KB at 39.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/eclipse/sisu/sisu-inject/0.0.0.M5/sisu-inject-0.0.0.M5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/eclipse/sisu/sisu-inject/0.0.0.M5/sisu-inject-0.0.0.M5.pom (14 KB at 273.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-classworlds/2.4/plexus-classworlds-2.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-classworlds/2.4/plexus-classworlds-2.4.pom (4 KB at 80.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-model-builder/3.1.1/maven-model-builder-3.1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-model-builder/3.1.1/maven-model-builder-3.1.1.pom (3 KB at 54.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-aether-provider/3.1.1/maven-aether-provider-3.1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-aether-provider/3.1.1/maven-aether-provider-3.1.1.pom (4 KB at 61.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/eclipse/aether/aether-api/0.9.0.M2/aether-api-0.9.0.M2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/eclipse/aether/aether-api/0.9.0.M2/aether-api-0.9.0.M2.pom (2 KB at 28.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/eclipse/aether/aether/0.9.0.M2/aether-0.9.0.M2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/eclipse/aether/aether/0.9.0.M2/aether-0.9.0.M2.pom (28 KB at 439.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/eclipse/aether/aether-spi/0.9.0.M2/aether-spi-0.9.0.M2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/eclipse/aether/aether-spi/0.9.0.M2/aether-spi-0.9.0.M2.pom (2 KB at 32.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.pom (2 KB at 43.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/eclipse/aether/aether-impl/0.9.0.M2/aether-impl-0.9.0.M2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/eclipse/aether/aether-impl/0.9.0.M2/aether-impl-0.9.0.M2.pom (4 KB at 66.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-classworlds/2.5.1/plexus-classworlds-2.5.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-classworlds/2.5.1/plexus-classworlds-2.5.1.pom (5 KB at 97.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom (2 KB at 37.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.pom (8 KB at 150.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-component-annotations/1.5.4/plexus-component-annotations-1.5.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-component-annotations/1.5.4/plexus-component-annotations-1.5.4.pom (815 B at 16.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-containers/1.5.4/plexus-containers-1.5.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-containers/1.5.4/plexus-containers-1.5.4.pom (5 KB at 82.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/2.0.5/plexus-2.0.5.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus/2.0.5/plexus-2.0.5.pom (17 KB at 197.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-compat/3.0/maven-compat-3.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-compat/3.0/maven-compat-3.0.pom (4 KB at 48.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.pom (2 KB at 34.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1.0-beta-6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1.0-beta-6.pom (13 KB at 232.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom (2 KB at 33.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/asm/asm/3.3.1/asm-3.3.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/asm/asm/3.3.1/asm-3.3.1.pom (266 B at 5.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/asm/asm-parent/3.3.1/asm-parent-3.3.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/asm/asm-parent/3.3.1/asm-parent-3.3.1.pom (5 KB at 79.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/asm/asm-commons/3.3.1/asm-commons-3.3.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/asm/asm-commons/3.3.1/asm-commons-3.3.1.pom (417 B at 8.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/asm/asm-tree/3.3.1/asm-tree-3.3.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/asm/asm-tree/3.3.1/asm-tree-3.3.1.pom (406 B at 9.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/jdom/jdom/1.1/jdom-1.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/jdom/jdom/1.1/jdom-1.1.pom (3 KB at 41.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.pom (7 KB at 118.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.pom (3 KB at 60.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven/2.2.0/maven-2.2.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven/2.2.0/maven-2.2.0.pom (22 KB at 421.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-settings/2.2.0/maven-settings-2.2.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-settings/2.2.0/maven-settings-2.2.0.pom (3 KB at 31.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-model/2.2.0/maven-model-2.2.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-model/2.2.0/maven-model-2.2.0.pom (4 KB at 59.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.pom (3 KB at 43.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.pom (4 KB at 57.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-repository-metadata/2.2.0/maven-repository-metadata-2.2.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-repository-metadata/2.2.0/maven-repository-metadata-2.2.0.pom (2 KB at 35.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-artifact/2.2.0/maven-artifact-2.2.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-artifact/2.2.0/maven-artifact-2.2.0.pom (2 KB at 26.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.pom (2 KB at 36.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/vafer/jdependency/0.7/jdependency-0.7.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/vafer/jdependency/0.7/jdependency-0.7.pom (8 KB at 147.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-io/commons-io/1.3.2/commons-io-1.3.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-io/commons-io/1.3.2/commons-io-1.3.2.pom (10 KB at 182.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/commons/commons-parent/3/commons-parent-3.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/commons/commons-parent/3/commons-parent-3.pom (12 KB at 226.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/asm/asm/3.2/asm-3.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/asm/asm/3.2/asm-3.2.pom (264 B at 5.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/asm/asm-parent/3.2/asm-parent-3.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/asm/asm-parent/3.2/asm-parent-3.2.pom (5 KB at 69.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/asm/asm-analysis/3.2/asm-analysis-3.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/asm/asm-analysis/3.2/asm-analysis-3.2.pom (417 B at 7.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/asm/asm-tree/3.2/asm-tree-3.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/asm/asm-tree/3.2/asm-tree-3.2.pom (404 B at 9.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/asm/asm-commons/3.2/asm-commons-3.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/asm/asm-commons/3.2/asm-commons-3.2.pom (415 B at 7.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/asm/asm-util/3.2/asm-util-3.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/asm/asm-util/3.2/asm-util-3.2.pom (409 B at 8.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/google/guava/guava/11.0.2/guava-11.0.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/google/guava/guava/11.0.2/guava-11.0.2.pom (6 KB at 109.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/google/guava/guava-parent/11.0.2/guava-parent-11.0.2.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/com/google/guava/guava-parent/11.0.2/guava-parent-11.0.2.pom (2 KB at 33.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-loader-tools/2.0.2.RELEASE/spring-boot-loader-tools-2.0.2.RELEASE.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/commons/commons-compress/1.14/commons-compress-1.14.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-archiver/2.6/maven-archiver-2.6.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/0.7/maven-shared-utils-0.7.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interpolation/1.21/plexus-interpolation-1.21.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-archiver/2.6/maven-archiver-2.6.jar (23 KB at 262.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-artifact/3.1.1/maven-artifact-3.1.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-interpolation/1.21/plexus-interpolation-1.21.jar (61 KB at 677.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-core/3.1.1/maven-core-3.1.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/springframework/boot/spring-boot-loader-tools/2.0.2.RELEASE/spring-boot-loader-tools-2.0.2.RELEASE.jar (145 KB at 1550.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-settings-builder/3.1.1/maven-settings-builder-3.1.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/0.7/maven-shared-utils-0.7.jar (167 KB at 1195.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-repository-metadata/3.1.1/maven-repository-metadata-3.1.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-artifact/3.1.1/maven-artifact-3.1.1.jar (52 KB at 297.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-model-builder/3.1.1/maven-model-builder-3.1.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-settings-builder/3.1.1/maven-settings-builder-3.1.1.jar (41 KB at 214.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-aether-provider/3.1.1/maven-aether-provider-3.1.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-repository-metadata/3.1.1/maven-repository-metadata-3.1.1.jar (25 KB at 98.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/eclipse/aether/aether-spi/0.9.0.M2/aether-spi-0.9.0.M2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-model-builder/3.1.1/maven-model-builder-3.1.1.jar (156 KB at 476.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/eclipse/aether/aether-impl/0.9.0.M2/aether-impl-0.9.0.M2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/eclipse/aether/aether-spi/0.9.0.M2/aether-spi-0.9.0.M2.jar (18 KB at 51.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/eclipse/aether/aether-api/0.9.0.M2/aether-api-0.9.0.M2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-aether-provider/3.1.1/maven-aether-provider-3.1.1.jar (59 KB at 160.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/eclipse/aether/aether-api/0.9.0.M2/aether-api-0.9.0.M2.jar (131 KB at 268.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/eclipse/sisu/org.eclipse.sisu.plexus/0.0.0.M5/org.eclipse.sisu.plexus-0.0.0.M5.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/commons/commons-compress/1.14/commons-compress-1.14.jar (518 KB at 1043.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-core/3.1.1/maven-core-3.1.1.jar (545 KB at 1040.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/eclipse/aether/aether-impl/0.9.0.M2/aether-impl-0.9.0.M2.jar (142 KB at 228.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/javax/inject/javax.inject/1/javax.inject-1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar (6 KB at 9.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0-no_aop.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar (44 KB at 66.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar (131 KB at 186.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/eclipse/sisu/org.eclipse.sisu.inject/0.0.0.M5/org.eclipse.sisu.inject-0.0.0.M5.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/javax/inject/javax.inject/1/javax.inject-1.jar (3 KB at 3.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-classworlds/2.5.1/plexus-classworlds-2.5.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/eclipse/sisu/org.eclipse.sisu.plexus/0.0.0.M5/org.eclipse.sisu.plexus-0.0.0.M5.jar (192 KB at 251.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-model/3.1.1/maven-model-3.1.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/aopalliance/aopalliance/1.0/aopalliance-1.0.jar (5 KB at 5.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-api/3.1.1/maven-plugin-api-3.1.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-classworlds/2.5.1/plexus-classworlds-2.5.1.jar (49 KB at 58.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-settings/3.1.1/maven-settings-3.1.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-settings/3.1.1/maven-settings-3.1.1.jar (41 KB at 44.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-model/3.1.1/maven-model-3.1.1.jar (151 KB at 164.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/eclipse/sisu/org.eclipse.sisu.inject/0.0.0.M5/org.eclipse.sisu.inject-0.0.0.M5.jar (285 KB at 307.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-api/3.1.1/maven-plugin-api-3.1.1.jar (44 KB at 44.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0-no_aop.jar (350 KB at 341.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-archiver/2.8.1/plexus-archiver-2.8.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.jar (114 KB at 108.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-io/2.3.2/plexus-io-2.3.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.jar (35 KB at 32.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.jar (29 KB at 26.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/maven-compat/3.0/maven-compat-3.0.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-archiver/2.8.1/plexus-archiver-2.8.1.jar (140 KB at 126.5 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.jar (56 KB at 49.0 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/asm/asm/3.3.1/asm-3.3.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-io/2.3.2/plexus-io-2.3.2.jar (73 KB at 63.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/asm/asm-commons/3.3.1/asm-commons-3.3.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.jar (98 KB at 82.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/asm/asm-tree/3.3.1/asm-tree-3.3.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/asm/asm/3.3.1/asm-3.3.1.jar (43 KB at 35.2 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/jdom/jdom/1.1/jdom-1.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.jar (52 KB at 42.9 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/asm/asm-commons/3.3.1/asm-commons-3.3.1.jar (38 KB at 30.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/vafer/jdependency/0.7/jdependency-0.7.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/maven-compat/3.0/maven-compat-3.0.jar (279 KB at 215.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-io/commons-io/1.3.2/commons-io-1.3.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/vafer/jdependency/0.7/jdependency-0.7.jar (12 KB at 8.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/asm/asm-analysis/3.2/asm-analysis-3.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/asm/asm-tree/3.3.1/asm-tree-3.3.1.jar (22 KB at 15.3 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/asm/asm-util/3.2/asm-util-3.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar (59 KB at 42.7 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/com/google/guava/guava/11.0.2/guava-11.0.2.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/org/jdom/jdom/1.1/jdom-1.1.jar (150 KB at 106.5 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/asm/asm-analysis/3.2/asm-analysis-3.2.jar (18 KB at 12.1 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-io/commons-io/1.3.2/commons-io-1.3.2.jar (86 KB at 58.7 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/asm/asm-util/3.2/asm-util-3.2.jar (36 KB at 24.2 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/com/google/guava/guava/11.0.2/guava-11.0.2.jar (1610 KB at 862.6 KB/sec)
    [INFO] 
    [INFO] --- maven-install-plugin:2.5.2:install (default-install) @ demo08 ---
    [INFO] Downloading: http://nexus/repository/maven-group/junit/junit/3.8.1/junit-3.8.1.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/junit/junit/3.8.1/junit-3.8.1.pom (998 B at 16.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/commons-codec/commons-codec/1.6/commons-codec-1.6.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-codec/commons-codec/1.6/commons-codec-1.6.pom (11 KB at 162.6 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/commons/commons-parent/22/commons-parent-22.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/commons/commons-parent/22/commons-parent-22.pom (41 KB at 693.8 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.pom
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.pom (4 KB at 94.1 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-group/junit/junit/3.8.1/junit-3.8.1.jar
    [INFO] Downloading: http://nexus/repository/maven-group/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar
    [INFO] Downloading: http://nexus/repository/maven-group/commons-codec/commons-codec/1.6/commons-codec-1.6.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.jar
    [INFO] Downloading: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar
    [INFO] Downloaded: http://nexus/repository/maven-group/commons-codec/commons-codec/1.6/commons-codec-1.6.jar (228 KB at 826.6 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar (234 KB at 1944.6 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar (37 KB at 126.8 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/junit/junit/3.8.1/junit-3.8.1.jar (119 KB at 409.1 KB/sec)
    [INFO] Downloaded: http://nexus/repository/maven-group/org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.jar (152 KB at 816.2 KB/sec)
    [INFO] Installing /home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/target/demo08-0.0.1.jar to /root/.mvnrepository/com/example/demo08/0.0.1/demo08-0.0.1.jar
    [INFO] Installing /home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/pom.xml to /root/.mvnrepository/com/example/demo08/0.0.1/demo08-0.0.1.pom
    [INFO] 
    [INFO] --- maven-deploy-plugin:2.8.2:deploy (default-deploy) @ demo08 ---
    [INFO] Using alternate deployment repository local-nexus::default::http://nexus/repository/maven-releases/
    [INFO] Uploading: http://nexus/repository/maven-releases/com/example/demo08/0.0.1/demo08-0.0.1.jar
    [INFO] Uploaded: http://nexus/repository/maven-releases/com/example/demo08/0.0.1/demo08-0.0.1.jar (17054 KB at 22438.4 KB/sec)
    [INFO] Uploading: http://nexus/repository/maven-releases/com/example/demo08/0.0.1/demo08-0.0.1.pom
    [INFO] Uploaded: http://nexus/repository/maven-releases/com/example/demo08/0.0.1/demo08-0.0.1.pom (2 KB at 27.4 KB/sec)
    [INFO] Downloading: http://nexus/repository/maven-releases/com/example/demo08/maven-metadata.xml
    [INFO] Uploading: http://nexus/repository/maven-releases/com/example/demo08/maven-metadata.xml
    [INFO] Uploaded: http://nexus/repository/maven-releases/com/example/demo08/maven-metadata.xml (297 B at 4.0 KB/sec)
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 55.037 s
    [INFO] Finished at: 2018-06-08T09:27:28+00:00
    [INFO] Final Memory: 27M/39M
    [INFO] ------------------------------------------------------------------------
    [Pipeline] sh
    [grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A] Running shell script
    ++ cat VERSION
    + export VERSION=0.0.1
    + VERSION=0.0.1
    + skaffold run -f skaffold.yaml
    Starting build...
    2018/06/08 09:27:32 No matching credentials found for index.docker.io, falling back on anoynmous
    2018/06/08 09:27:33 manifest digest: "sha256:5985362b4248867a18850aa2904097ea1250cf347170c67d3c04b8a9331d579a" does not match Docker-Content-Digest: "sha256:48b5e75d2a1cf179b9046360d959702c69dd45d8fd934325a5b3e0f3b4b0d63e" for "index.docker.io/library/openjdk:8-jdk-slim"
    Sending build context to Docker daemon  17.47MB
    Step 1/8 : FROM openjdk:8-jdk-slim
    8-jdk-slim: Pulling from library/openjdk
    f2aa67a397c4: Pulling fs layer
    a44ea3e7c4ff: Pulling fs layer
    8ffd93428115: Pulling fs layer
    bd00e3c2b114: Pulling fs layer
    d7381531c429: Pulling fs layer
    85fcc82e8f1f: Pulling fs layer
    bd00e3c2b114: Waiting
    d7381531c429: Waiting
    85fcc82e8f1f: Waiting
    8ffd93428115: Download complete
    a44ea3e7c4ff: Download complete
    85fcc82e8f1f: Verifying Checksum
    85fcc82e8f1f: Download complete
    d7381531c429: Verifying Checksum
    d7381531c429: Download complete
    f2aa67a397c4: Verifying Checksum
    f2aa67a397c4: Download complete
    f2aa67a397c4: Pull complete
    a44ea3e7c4ff: Pull complete
    8ffd93428115: Pull complete
    bd00e3c2b114: Pull complete
    d7381531c429: Pull complete
    85fcc82e8f1f: Pull complete
    Digest: sha256:48b5e75d2a1cf179b9046360d959702c69dd45d8fd934325a5b3e0f3b4b0d63e
    Status: Downloaded newer image for openjdk:8-jdk-slim
     ---> 954f983e50de
    Step 2/8 : ENV PORT 8080
     ---> Running in 4e6c7b5a84fd
     ---> c43f805d938c
    Step 3/8 : ENV CLASSPATH /opt/lib
     ---> Running in 8a9605bb3fe2
     ---> e07b60e062ef
    Step 4/8 : EXPOSE 8080
     ---> Running in 0ce6e915975e
     ---> 8bfe4d911eec
    Step 5/8 : COPY pom.xml target/lib* /opt/lib/
     ---> 16e4ca793bbf
    Step 6/8 : COPY target/*.jar /opt/app.jar
     ---> 3914513668cc
    Step 7/8 : WORKDIR /opt
     ---> 33583508ec6e
    Step 8/8 : CMD java -jar app.jar
     ---> Running in eb2302455cd5
     ---> f43f122eea24
    Successfully built f43f122eea24
    Successfully tagged 10.59.251.152:5000/grohan2002/demo08:0.0.1
    The push refers to a repository [10.59.251.152:5000/grohan2002/demo08]
    ec7ba7301e4c: Preparing
    b46837de8488: Preparing
    7f3cf739707b: Preparing
    3541b9af137e: Preparing
    253e0bb91f27: Preparing
    8670d085042c: Preparing
    07090e4cb2bc: Preparing
    d626a8ad97a1: Preparing
    8670d085042c: Waiting
    07090e4cb2bc: Waiting
    d626a8ad97a1: Waiting
    253e0bb91f27: Pushed
    b46837de8488: Pushed
    7f3cf739707b: Pushed
    07090e4cb2bc: Pushed
    8670d085042c: Pushed
    ec7ba7301e4c: Pushed
    d626a8ad97a1: Pushed
    3541b9af137e: Pushed
    0.0.1: digest: sha256:109dca61f0896901cdf319d40bc7b840f30b6a2a4ce43e4d14e1964b13abc814 size: 1994
    Build complete in 32.898917606s
    Starting deploy...
    deployment.extensions "skaffold" created
    Deploy complete in 808.651443ms
    [Pipeline] sh
    [grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A] Running shell script
    + jx step validate --min-jx-version 1.2.36
    [Pipeline] sh
    [grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A] Running shell script
    ++ cat VERSION
    + jx step post build --image 10.59.251.152:5000/grohan2002/demo08:0.0.1
    no CVE provider running in the current jx namespace so skip adding image to be analysed[Pipeline] }
    [Pipeline] // container
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (Promote to Environments)
    [Pipeline] dir
    Running in /home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/charts/demo08
    [Pipeline] {
    [Pipeline] container
    [Pipeline] {
    [Pipeline] sh
    [demo08] Running shell script
    ++ cat ../../VERSION
    + jx step changelog --version v0.0.1
    Using batch mode as inside a pipeline
    Generating change log from git ref bb76504e6bd766135c733c5121925332d694f638 => 782ce196ba9dc310f1daf7668abba9558567c89b
    Unable to find user: jenkins-x.googlegroups.com -- users.jenkins.io "jenkins-x.googlegroups.com" not found
    Unable to find user: jenkins-x.googlegroups.com -- users.jenkins.io "jenkins-x.googlegroups.com" not found
    Finding issues in commit messages using git format
    Unable to find user: aditi.sangave.velotio.com -- users.jenkins.io "aditi.sangave.velotio.com" not found
    Unable to find user: aditi.sangave.velotio.com -- users.jenkins.io "aditi.sangave.velotio.com" not found
    No release found for grohan2002/demo08 and tag v0.0.1 so creating a new release
    Updated the release information at https://github.com/grohan2002/demo08/releases/tag/v0.0.1
    generated: templates/release.yaml
    [Pipeline] sh
    [demo08] Running shell script
    + make release
    rm -rf charts
    rm -rf demo08*.tgz
    helm dependency build
    No requirements found in ./charts.
    helm lint
    ==> Linting .
    Lint OK
    
    1 chart(s) linted, no failures
    helm init --client-only
    Creating /home/jenkins/.helm 
    Creating /home/jenkins/.helm/repository 
    Creating /home/jenkins/.helm/repository/cache 
    Creating /home/jenkins/.helm/repository/local 
    Creating /home/jenkins/.helm/plugins 
    Creating /home/jenkins/.helm/starters 
    Creating /home/jenkins/.helm/cache/archive 
    Creating /home/jenkins/.helm/repository/repositories.yaml 
    Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com 
    Adding local repo with URL: http://127.0.0.1:8879/charts 
    $HELM_HOME has been configured at /home/jenkins/.helm.
    Not installing Tiller due to 'client-only' flag having been set
    Happy Helming!
    helm package .
    Successfully packaged chart and saved it to: /home/jenkins/workspace/grohan2002_demo08_master-RD3QO22PAWMJZZSUAQ7BDHSXZJM3KTMXLXI7U7BD3ZBUQUZFCX2A/charts/demo08/demo08-0.0.1.tgz
    curl --fail -u **** --data-binary "@demo08-0.0.1.tgz" http://jenkins-x-chartmuseum:8080/api/charts
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100  2900  100    14  100  2886    331  68251 --:--:-- --:--:-- --:--:-- 68714
    {"saved":true}rm -rf demo08*.tgz%
    [Pipeline] sh
    [demo08] Running shell script
    ++ cat ../../VERSION
    + jx promote -b --all-auto --timeout 1h --version 0.0.1
    Promoting app demo08 version 0.0.1 to namespace jx-staging
    Using pipeline: grohan2002/demo08/master build: #1
    Cloning into '/home/jenkins/.jx/environments/grohan2002/environment-carpcoal-staging'...
    Found remote branch names master, HEAD -> origin/master, master
    Switched to branch 'promote-demo08-0.0.1'
    [promote-demo08-0.0.1 d74c381] Promote demo08 to version 0.0.1
     1 file changed, 8 insertions(+), 5 deletions(-)
    To https://github.com/grohan2002/environment-carpcoal-staging.git
     * [new branch]      HEAD -> promote-demo08-0.0.1
    Created Pull Request: https://github.com/grohan2002/environment-carpcoal-staging/pull/1
    
    Using pipeline: grohan2002/demo08/master build: #1
    WARNING: Failed to query the Pull Request last commit status for https://github.com/grohan2002/environment-carpcoal-staging/pull/1 ref d74c381b0cdaa2568b405e4cd21af5a83788f260 Could not find a status for repository grohan2002/environment-carpcoal-staging with ref d74c381b0cdaa2568b405e4cd21af5a83788f260
    Pull Request https://github.com/grohan2002/environment-carpcoal-staging/pull/1 is merged at sha 0cca71e15070fb485714bf8ce5763fd9c9ba72f6
    Merge commit has not yet any statuses on repo grohan2002/environment-carpcoal-staging merge sha 0cca71e15070fb485714bf8ce5763fd9c9ba72f6
    merge status: pending for URL https://api.github.com/repos/grohan2002/environment-carpcoal-staging/statuses/0cca71e15070fb485714bf8ce5763fd9c9ba72f6 with target: http://unconfigured-jenkins-location/job/grohan2002/job/environment-carpcoal-staging/job/master/2/display/redirect description: This commit is being built
    EXITCODE   0merge status: success for URL https://api.github.com/repos/grohan2002/environment-carpcoal-staging/statuses/0cca71e15070fb485714bf8ce5763fd9c9ba72f6 with target: http://unconfigured-jenkins-location/job/grohan2002/job/environment-carpcoal-staging/job/master/2/display/redirect description: This commit looks good
    Merge status checks all passed so the promotion worked!
    Application is available at: http://demo08.jx-staging.35.230.49.158.nip.io
    [Pipeline] }
    [Pipeline] // container
    [Pipeline] }
    [Pipeline] // dir
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (Declarative: Post Actions)
    [Pipeline] cleanWs
    [WS-CLEANUP] Deleting project workspace...[WS-CLEANUP] done
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] }
    [Pipeline] // withEnv
    [Pipeline] }
    [Pipeline] // withCredentials
    [Pipeline] }
    [Pipeline] // withEnv
    [Pipeline] }
    [Pipeline] // node
    [Pipeline] End of Pipeline
    
    GitHub has been notified of this commit’s build result
    
    Finished: SUCCESS

    • The first build takes time because it downloads some dependencies from maven central.
    • We are using Nexus which was installed as a part of Jenkins X platform so that remaining builds will be faster because dependencies will be cached.
    • After that it tags our potential release & push tags to Github.It then builds application using maven.
    • It uploads artefacts to Nexus so that it can be shared between the teams.
    • Docker image is been built for this application & pushed to docker registry.
    • It then generates change log and publish it to chartmuseum registry.
    • Pipeline waits for pull request for staging environment to be merged and then waits for another pipeline to be triggered & perform deployment for our new application on staging environment using helm.
    • Now we can see staging environment with our application running in it.

    3. Application deployment onto staging environment 

    Using CLI, we can see our application is now deployed to staging environment with version 0.0.1

    $ jx get apps
    APPLICATION STAGING PODS URL
    
    PRODUCTION PODS URL
    demo08 0.0.1 1/1 http://demo08.jx-staging.35.230.49.158.nip.io

    4. Application URL

    We can get application URL with following command

    $ jx open --env staging
    Name URL
    demo08 http://demo08.jx-staging.35.230.49.158.nip.io

    5. Start working on the project

    Now we can start working on our new project. Go to your project location and from there you can actually create a Github issue.

    $ cd demo08/
    $ jx create issue -t 'add a homepage'

    6. Add HTML Page

    Now switch to your working branch and add a simple HTML page.

    $ git checkout -b wip
    $ vi src/main/resources/static/index.html

    $ git add src
    $ git commit -a -m 'add a homepage fixes #1'
    $ git push origin wip

    7. Create a pull request 

    Then create a pull request from working branch to master branch. After that our CI pipeline is automatically triggered.

    After some time, our CI checks pass.

    8. There we can see a comment has been added to the pull request saying our application is been built and deployed into the preview environment.

    9. Now our application is deployed in preview environment.

    $ jx get apps 

    10. Now, you can see the application running on the given URL.

    So where is Jenkins?

    As you have seen, there was no direct interaction with Jenkins, but it is there, running the pipelines for continuous integration and continuous delivery of the repository, and orchestrating things with Kubernetes.

    If you run jx get pipelines you can see URLs to the various pipelines that have been setup for you are part of interacting with Jenkins X.

    Additional JX Commands:

    jx open

    • open apps, services or pipelines in your browser

    jx activity

    • explains how things got to where they are, a history

    jx get environments

    • list environments

    jx get apps

    • show the state of applications, what versions are in what environments.

    Conclusion

    So this is how Jenkins X automates installation, configuration of Jenkins and some other software components. It also automates CI/CD for your applications on Kubernetes along with promotions through GitHub.

  • A Comprehensive Tutorial to Implementing OpenTracing With Jaeger

    Introduction

    Recently, there has been a lot of discussion around OpenTracing. We’ll start this blog by introducing OpenTracing, explaining what it is and why it is gaining attention. Next, we will discuss distributed tracing system Jaeger and how it helps in troubleshooting microservices-based distributed systems. We will also set up Jaeger and learn to use it for monitoring and troubleshooting purposes.

    Drift to Microservice Architecture

    Microservice Architecture has now become the obvious choice for application developers. In the Microservice Architecture,  a monolithic application is broken down into a group of independently deployed services. In simple words,  an application is more like a collection of microservices. When we have millions of such intertwined microservices working together, it’s almost impossible to map the inter-dependencies of these services and understand the execution of a request.

    If a monolithic application fails then it is more feasible to do the root cause analysis and understand the path of a transaction using some logging frameworks. But in a microservice architecture, logging alone fails to deliver the complete picture.

    Is this service called first in the chain? How do I span all these services to get insight into the application? With questions like these, it becomes a significantly larger problem to debug a set of interdependent distributed services in comparison to a single monolithic application, making OpenTracing more and more popular.

    OpenTracing

    What is Distributed Tracing?

    Distributed tracing is a method used to monitor applications, mostly those built using the microservices architecture. Distributed tracing helps to highlight what causes poor performance and where failures occur.

    How OpenTracing Fits Into This?

    The OpenTracing API provides a standard, vendor neutral framework for instrumentation. This means that if a developer wants to try out a different distributed tracing system, then instead of repeating the whole instrumentation process for the new distributed tracing system, the developer can easily change the configuration of Tracer.

    OpenTracing uses basic terminologies, such as Span and Trace. You can read about them in detail here.

    OpenTracing is a way for services to “describe and propagate distributed traces without knowledge of the underlying OpenTracing implementation.

    Let us take the example of a service like renting a movie on any rental service like iTunes. A service like this requires many other microservices to check that the movie is available, proper payment credentials are received, and enough space exists on the viewer’s device for download. If either one of those microservice fail, then the entire transaction fails. In such a case, having logs just for the main rental service wouldn’t be very useful for debugging. However, if you were able to analyze each service you wouldn’t have to scratch your head to troubleshoot  which microservice failed and what made it fail.

    In real life, applications are even more complex and with the increasing complexity of applications, monitoring the applications has been a tedious task. Opentracing helps us to easily monitor:

    • Spans of services
    • Time taken by each service
    • Latency between the services
    • Hierarchy of services
    • Errors or exceptions during execution of each service.

    Jaeger: A Distributed Tracing System by Uber

    Jaeger, is released as an open source distributed tracing system by Uber Technologies. It is used for monitoring and troubleshooting microservices-based distributed systems, including:

    • Distributed transaction monitoring
    • Performance and latency optimization
    • Root cause analysis
    • Service dependency analysis
    • Distributed context propagation

    Major Components of Jaeger

    1. Jaeger Client Libraries
    2. Agent
    3. Collector
    4. Query
    5. Ingester

    Running Jaeger in a Docker Container

    1.  First, install Jaeger Client on your machine:

    $ pip install jaeger-client

    2.  Now, let’s run Jaeger backend as an all-in-one Docker image. The image launches the Jaeger UI, collector, query, and agent:

    $ docker run -d -p6831:6831/udp -p16686:16686 jaegertracing/all-in-one:latest

    TIP:  To check if the docker container is running, use: Docker ps.

    Once the container starts, open http://localhost:16686/  to access the Jaeger UI. The container runs the Jaeger backend with an in-memory store, which is initially empty, so there is not much we can do with the UI right now since the store has no traces.

    Creating Traces on Jaeger UI

    1.   Create a Python program to create Traces:

    Let’s generate some traces using a simple python program. You can clone the Jaeger-Opentracing repository given below for a sample program that is used in this blog.

    import sys
    import time
    import logging
    import random
    from jaeger_client import Config
    from opentracing_instrumentation.request_context import get_current_span, span_in_context
    
    def init_tracer(service):
        logging.getLogger('').handlers = []
        logging.basicConfig(format='%(message)s', level=logging.DEBUG)    
        config = Config(
            config={
                'sampler': {
                    'type': 'const',
                    'param': 1,
                },
                'logging': True,
            },
            service_name=service,
        )
        return config.initialize_tracer()
    
    def booking_mgr(movie):
        with tracer.start_span('booking') as span:
            span.set_tag('Movie', movie)
            with span_in_context(span):
                cinema_details = check_cinema(movie)
                showtime_details = check_showtime(cinema_details)
                book_show(showtime_details)
    
    def check_cinema(movie):
        with tracer.start_span('CheckCinema', child_of=get_current_span()) as span:
            with span_in_context(span):
                num = random.randint(1,30)
                time.sleep(num)
                cinema_details = "Cinema Details"
                flags = ['false', 'true', 'false']
                random_flag = random.choice(flags)
                span.set_tag('error', random_flag)
                span.log_kv({'event': 'CheckCinema' , 'value': cinema_details })
                return cinema_details
    
    def check_showtime( cinema_details ):
        with tracer.start_span('CheckShowtime', child_of=get_current_span()) as span:
            with span_in_context(span):
                num = random.randint(1,30)
                time.sleep(num)
                showtime_details = "Showtime Details"
                flags = ['false', 'true', 'false']
                random_flag = random.choice(flags)
                span.set_tag('error', random_flag)
                span.log_kv({'event': 'CheckCinema' , 'value': showtime_details })
                return showtime_details
    
    def book_show(showtime_details):
        with tracer.start_span('BookShow',  child_of=get_current_span()) as span:
            with span_in_context(span):
                num = random.randint(1,30)
                time.sleep(num)
                Ticket_details = "Ticket Details"
                flags = ['false', 'true', 'false']
                random_flag = random.choice(flags)
                span.set_tag('error', random_flag)
                span.log_kv({'event': 'CheckCinema' , 'value': showtime_details })
                print(Ticket_details)
    
    assert len(sys.argv) == 2
    tracer = init_tracer('booking')
    movie = sys.argv[1]
    booking_mgr(movie)
    # yield to IOLoop to flush the spans
    time.sleep(2)
    tracer.close()

    The Python program takes a movie name as an argument and calls three functions that get the cinema details, movie showtime details, and finally book a movie ticket.

    It creates some random delays in all the functions to make it more interesting, as in reality the functions would take certain time to get the details. Also the function throws random errors to give us a feel of how the traces of a real-life application may look like in case of failures.

    Here is a brief description of how OpenTracing has been used in the program:

    • Initializing a tracer:
    def init_tracer(service):
       logging.getLogger('').handlers = []
       logging.basicConfig(format='%(message)s', level=logging.DEBUG)   
       config = Config(
           config={
               'sampler': {
                   'type': 'const',
                   'param': 1,
               },
               'logging': True,
           },
           service_name=service,
       )
       return config.initialize_tracer()

    • Using the tracer instance:
    tracer = init_tracer('booking')

    • Starting new child spans using start_span:  
    with tracer.start_span('CheckCinema', child_of=get_current_span()) as span:

    • Using Tags:
    span.set_tag('Movie', movie)

    • Using Logs:
    span.log_kv({'event': 'CheckCinema' , 'value': cinema_details })

    2. Run the python program:

    $ python booking-mgr.py <movie-name>
    
    Initializing Jaeger Tracer with UDP reporter
    Using sampler ConstSampler(True)
    opentracing.tracer initialized to <jaeger_client.tracer.Tracer object at 0x7f72ffa25b50>[app_name=booking]
    Reporting span cfe1cc4b355aacd9:8d6da6e9161f32ac:cfe1cc4b355aacd9:1 booking.CheckCinema
    Reporting span cfe1cc4b355aacd9:88d294b85345ac7b:cfe1cc4b355aacd9:1 booking.CheckShowtime
    Ticket Details
    Reporting span cfe1cc4b355aacd9:98cbfafca3aa0fe2:cfe1cc4b355aacd9:1 booking.BookShow
    Reporting span cfe1cc4b355aacd9:cfe1cc4b355aacd9:0:1 booking.booking

    Now, check your Jaeger UI, you can see a new service “booking” added. Select the service and click on “Find Traces” to see the traces of your service. Every time you run the program a new trace will be created.

    You can now compare the duration of traces through the graph shown above. You can also filter traces using  “Tags” section under “Find Traces”. For example, Setting “error=true” tag will filter out all the jobs that have errors, as shown:

    To view the detailed trace, you can select a specific trace instance and check details like the time taken by each service, errors during execution and logs.

    The above trace instance has four spans, the first representing the root span “booking”, the second is the “CheckCinema”, the third is the “CheckShowtime” and last is the “BookShow”. In this particular trace instance, both the “CheckCinema” and “CheckShowtime” have reported errors, marked by the error=true tag.

    Conclusion

    In this blog, we’ve described the importance and benefits of OpenTracing, one of the core pillars of modern applications. We also explored how distributed tracer Jaeger collect and store traces while revealing inefficient portions of our applications. It is fully compatible with OpenTracing API and has a number of clients for different programming languages including Java, Go, Node.js, Python, PHP, and more.

    References

    • https://www.jaegertracing.io/docs/1.9/
    • https://opentracing.io/docs/
  • Container Security: Let’s Secure Your Enterprise Container Infrastructure!

    Introduction

    Containerized applications are becoming more popular with each passing year. A reason for this rise in popularity could be the pivotal role they play in Continuous Delivery by enabling fast and automated deployment of software services.

    Security still remains a major concern mainly because of the way container images are being used. In the world of VMs, infra/security team used to validate the OS images and installed packages for vulnerabilities. But with the adoption of containers, developers are building their own container images. Images are rarely built from scratch. They are typically built on some base image, which is itself built on top of other base images. When a developer builds a container image, he typically grabs a base image and other layers from public third party sources. These images and libraries may contain obsolete or vulnerable packages, thereby putting your infrastructure at risk. An added complexity is that many existing vulnerability-scanning tools may not work with containers, nor do they support container delivery workflows including registries and CI/CD pipelines. In addition, you can’t simply scan for vulnerabilities – you must scan, manage vulnerability fixes and enforce vulnerability-based policies.

    The Container Security Problem

    The table below shows the number of vulnerabilities found in the images available on dockerhub. Note that (as of April 2016) the worst offending community images contained almost 1,800 vulnerabilities! Official images were much better, but still contained 392 vulnerabilities in the worst case.

    If we look at the distribution of vulnerability severities, we see that pretty much all of them are high severity, for both official and community images. What we’re not told is the underlying distribution of vulnerability severities in the CVE database, so this could simply be a reflection of that distribution.

    Over 80% of the latest versions of official images contained at least one high severity vulnerability!

    • There are so many docker images readily available on dockerhub – are you sure the ones you are using are safe?
    • Do you know where your containers come from?
    • Are your developers downloading container images and libraries from unknown and potentially harmful sources?
    • Do the containers use third party library code that is obsolete or vulnerable?

    In this blog post, I will explain some of the solutions available which can help with these challenges. Solutions like ‘Docker scanning services‘, ‘Twistlock Trust’ and an open-source solution ‘Clair‘ from Coreos.com which can help in scanning and fixing vulnerability problems making your container images secure.

    Clair

    Clair is an open source project for the static analysis of vulnerabilities in application containers. It works as an API that analyzes every container layer to find known vulnerabilities using existing package managers such as Debian (dpkg), Ubuntu (dpkg), CentOS (rpm). It also can be used from the command line. It provides a list of vulnerabilities that threaten a container, and can notify users when new vulnerabilities that affect existing containers become known. In regular intervals, Clair ingests vulnerability metadata from a configured set of sources and stores it in the database. Clients use the Clair API to index their container images; this parses a list of installed source packages and stores them in the database. Clients use the Clair API to query the database; correlating data in real time, rather than a cached result that needs re-scanning.

    Clair identifies security issues that developers introduce in their container images. The vanilla process for using Clair is as follows:

    1. A developer programmatically submits their container image to Clair
    2. Clair analyzes the image, looking for security vulnerabilities
    3. Clair returns a detailed report of security vulnerabilities present in the image
    4. Developer acts based on the report

    How to use Clair

    Docker is required to follow along with this demonstration. Once Docker is installed, use the Dockerfile below to create an Ubuntu image that contains a version of SSL that is susceptible to Heartbleed attacks.

    #Dockerfile
    FROM ubuntu:precise-20160303
    #Install WGet
    RUN apt-get update
    RUN apt-get -f install
    RUN apt-get install -y wget
    #Install an OpenSSL vulnerable to Heartbleed (CVE-2014-0160)
    RUN wget --no-check-certificate https://launchpad.net/~ubuntu-security/+archive/ubuntu/ppa/+build/5436462/+files/openssl_1.0.1-4ubuntu5.11_amd64.deb
    RUN dpkg -i openssl_1.0.1-4ubuntu5.11_amd64.deb

    Build the image using below command:

    $ docker build . -t madhurnawandar/heartbeat

    After creating the insecure Docker image, the next step is to download and install Clair from here. The installation choice used for this demonstration was the Docker Compose solution. Once Clair is installed, it can be used via querying its API or through the clairctl command line tool. Submit the insecure Docker image created above to Clair for analysis and it will catch the Heartbleed vulnerability.

    $ clairctl analyze --local madhurnawandar/heartbeat
    Image: /madhurnawandar/heartbeat:latest
    9 layers found 
    ➜ Analysis [f3ce93f27451] found 0 vulnerabilities. 
    ➜ Analysis [738d67d10278] found 0 vulnerabilities. 
    ➜ Analysis [14dfb8014dea] found 0 vulnerabilities. 
    ➜ Analysis [2ef560f052c7] found 0 vulnerabilities. 
    ➜ Analysis [69a7b8948d35] found 0 vulnerabilities. 
    ➜ Analysis [a246ec1b6259] found 0 vulnerabilities. 
    ➜ Analysis [fc298ae7d587] found 0 vulnerabilities. 
    ➜ Analysis [7ebd44baf4ff] found 0 vulnerabilities. 
    ➜ Analysis [c7aacca5143d] found 52 vulnerabilities.
    $ clairctl report --local --format json madhurnawandar/heartbeat
    JSON report at reports/json/analysis-madhurnawandar-heartbeat-latest.json

    You can view the detailed report here.

    Docker Security Scanning

    Docker Cloud and Docker Hub can scan images in private repositories to verify that they are free from known security vulnerabilities or exposures, and report the results of the scan for each image tag. Docker Security Scanning is available as an add-on to Docker hosted private repositories on both Docker Cloud and Docker Hub.

    Security scanning is enabled on a per-repository basis and is only available for private repositories. Scans run each time a build pushes a new image to your private repository. They also run when you add a new image or tag. The scan traverses each layer of the image, identifies the software components in each layer, and indexes the SHA of each component.

    The scan compares the SHA of each component against the Common Vulnerabilities and Exposures (CVE®) database. The CVE is a “dictionary” of known information security vulnerabilities. When the CVE database is updated, the service reviews the indexed components for any that match the new vulnerability. If the new vulnerability is detected in an image, the service sends an email alert to the maintainers of the image.

    A single component can contain multiple vulnerabilities or exposures and Docker Security Scanning reports on each one. You can click an individual vulnerability report from the scan results and navigate to the specific CVE report data to learn more about it.

    Twistlock

    Twistlock is a rule-based access control policy system for Docker and Kubernetes containers. Twistlock is able to be fully integrated within Docker, with out-of-the-box security policies that are ready to use.

    Security policies can set the conditions for users to, say, create new containers but not delete them; or, they can launch containers but aren’t allowed to push code to them. Twistlock features the same policy management rules as those on Kubernetes, wherein a user can modify management policies but cannot delete them.

    Twistlock also handles image scanning. Users can scan an entire container image, including any packaged Docker application. Twistlock has done its due-diligence in this area, correlating with Red Hat and Mirantis to ensure no container is left vulnerable while a scan is running.

    Twistlock also deals with image scanning of containers within the registries themselves. In runtime environments, Twistlock features a Docker proxy running on the same server with an application’s other containers. This is essentially traffic filtering, whereupon the application container calling the Docker daemon is then re-routed through Twistlock. This approach enforces access control, allowing for safer configuration where no containers are set to run as root. It’s also able to SSH into an instance, for example. In order to delve into these layers of security, Twistlock enforces the policy at runtime.

    When new code is written in images, it is then integrated into the Twistlock API to push an event, whereupon the new image is deposited into the registry along with its unique IDs. It is then pulled out by Twistlock and scanned to ensure it complies with the set security policies in place. Twistlock deposits the scan result into the CI process so that developers can view the result for debugging purposes.

    Integrating these vulnerability scanning tools into your CI/CD Pipeline:

    These tools becomes more interesting paired with a CI server like Jenkins, TravisCI, etc. Given proper configuration, process becomes:

    1. A developer submits application code to source control
    2. Source control triggers a Jenkins build
    3. Jenkins builds the software containers necessary for the application
    4. Jenkins submits the container images to vulnerability scanning tool
    5. Tool identifies security vulnerabilities in the container
    6. Jenkins receives the security report, identifies a high vulnerability in the report, and stops the build

    Conclusion

    There are many solutions like ‘Docker scanning services’, ‘Twistlock Trust’, ‘Clair‘, etc to secure your containers. It’s critical for organizations to adopt such tools in their CI/CD pipelines. But this itself is not going to make containers secure. There are lot of guidelines available in the CIS Benchmark for containers like tuning kernel parameters, setting proper network configurations for inter-container connectivity, securing access to host level directories and others. I will cover these items in the next set of blogs. Stay tuned!

  • Kubernetes CSI in Action: Explained with Features and Use Cases

    Kubernetes Volume plugins have been a great way for the third-party storage providers to support a block or file storage system by extending the Kubernetes volume interface and are “In-Tree” in nature.

    In this post, we will dig into Kubernetes Container Storage Interface. We will use Hostpath CSI Driver locally on a single node bare metal cluster, to get the conceptual understanding of the CSI workflow in provisioning the Persistent Volume and its lifecycle. Also, a cool feature of snapshotting the volume and recover it back is explained.

    Introduction

    CSI is a standard for exposing  storage systems in arbitrary block and file storage to containerized workloads on Container Orchestrations like Kubernetes, Mesos, and Cloud Foundry. It becomes very extensible for third-party storage provider to expose their new storage systems using CSI, without actually touching the Kubernetes code. Single independent implementation of CSI Driver by a storage provider will work on any orchestrator.

    This new plugin mechanism has been one of the most powerful features of Kubernetes. It enables the storage vendors to:

    1. Automatically create storage when required.
    2. Make storage available to containers wherever they’re scheduled.
    3. Automatically delete the storage when no longer needed.

    This decoupling helps the vendors to maintain the independent release and feature cycles and focus on the API implementation without actually worrying about the backward incompatibility and to support their plugin just as easy as deploying a few pods.

     

    Image Source: Weekly Geekly

    Why CSI?

    Prior to CSI, k8s volume plugins have to be “In-tree”, compiled and shipped with core kubernetes binaries. This means, it will require the storage providers to check-in their into the core k8s codebase if they wish to add the support for a new storage system.

    A plugin-based solution, flex-volume, tried to address this issue by exposing the exec based API for external  plugins. Although it also tried to work on the similar notion of being detached with k8s binary, there were several major problems with that approach. Firstly, it needed the root access to the host and master file system to deploy the driver files. 

    Secondly, it comes with the huge baggage of prerequisites and OS dependencies which are assumed to be available on the host. CSI implicitly solves all these issues by being containerized and using the k8s storage primitives.

    CSI has evolved as the one-stop solution addressing all the above issues which enables storage plugins to be out-of-tree and deployed via standard k8s primitives, such as PVC, PV and StorageClasses.

    The main aim of introducing CSI is to establish a standard mechanism of exposing any type of storage system under-the-hood for all the container orchestrators.

    Deploy the Driver Plugin

    The CSI Driver comprises of a few main components which are various side cars and also the implementation of the CSI Services by the vendor, which will be understood by the Cos. The CSI Services will be described later in the blog. Let’s try out deploying hostpath CSI Driver.

    Prerequisites:

    • Kubernetes cluster (not Minikube or Microk8s): Running version 1.13 or later
    • Access to the terminal with Kubectl installed

    Deploying HostPath Driver Plugin:

    1. Clone the repo of HostPath Driver Plugin locally or just copy the deploy and example folder from the root path
    2. Checkout the master branch (if not)
    3. The hostpath driver comprises of manifests for following side-cars: (in ./deploy/master/hostpath/)
      – csi-hostpath-attacher.yaml
      – csi-hostpath-provisioner.yaml
      – csi-hostpath-snapshotter.yaml
      – csi-hostpath-plugin.yaml:
      It will deploy 2 containers, one is node-driver-registrar and a hospath-plugin
    4. The driver also includes separate Service for each component and in the deployment file with statefulsets for the containers
    5. It also deploys Cluster-role-bindings and RBAC rules for each component, maintained in a separate repo
    6. Each Component (side-car) is managed in a separate repository
    7. The /deploy/util/ contains a shell script which handles the complete deployment process
    8. After copying the folder or cloning the repo, just run:    
    $ deploy/kubernetes-latest/deploy-hostpath.sh

         9. The output will be similar to:

    applying RBAC rules
    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-provisioner/v1.0.1/deploy/kubernetes/rbac.yaml
    serviceaccount/csi-provisioner created
    clusterrole.rbac.authorization.k8s.io/external-provisioner-runner created
    clusterrolebinding.rbac.authorization.k8s.io/csi-provisioner-role created
    role.rbac.authorization.k8s.io/external-provisioner-cfg created
    rolebinding.rbac.authorization.k8s.io/csi-provisioner-role-cfg created
    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-attacher/v1.0.1/deploy/kubernetes/rbac.yaml
    serviceaccount/csi-attacher created
    clusterrole.rbac.authorization.k8s.io/external-attacher-runner created
    clusterrolebinding.rbac.authorization.k8s.io/csi-attacher-role created
    role.rbac.authorization.k8s.io/external-attacher-cfg created
    rolebinding.rbac.authorization.k8s.io/csi-attacher-role-cfg created
    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/v1.0.1/deploy/kubernetes/rbac.yaml
    serviceaccount/csi-snapshotter created
    clusterrole.rbac.authorization.k8s.io/external-snapshotter-runner created
    clusterrolebinding.rbac.authorization.k8s.io/csi-snapshotter-role created
    deploying hostpath components
       deploy/kubernetes-1.13/hostpath/csi-hostpath-attacher.yaml
            using           image: quay.io/k8scsi/csi-attacher:v1.0.1
    service/csi-hostpath-attacher created
    statefulset.apps/csi-hostpath-attacher created
       deploy/kubernetes-1.13/hostpath/csi-hostpath-plugin.yaml
            using           image: quay.io/k8scsi/csi-node-driver-registrar:v1.0.2
            using           image: quay.io/k8scsi/hostpathplugin:v1.0.1
            using           image: quay.io/k8scsi/livenessprobe:v1.0.2
    service/csi-hostpathplugin created
    statefulset.apps/csi-hostpathplugin created
       deploy/kubernetes-1.13/hostpath/csi-hostpath-provisioner.yaml
            using           image: quay.io/k8scsi/csi-provisioner:v1.0.1
    service/csi-hostpath-provisioner created
    statefulset.apps/csi-hostpath-provisioner created
       deploy/kubernetes-1.13/hostpath/csi-hostpath-snapshotter.yaml
            using           image: quay.io/k8scsi/csi-snapshotter:v1.0.1
    service/csi-hostpath-snapshotter created
    statefulset.apps/csi-hostpath-snapshotter created
       deploy/kubernetes-1.13/hostpath/csi-hostpath-testing.yaml
            using           image: alpine/socat:1.0.3
    service/hostpath-service created
    statefulset.apps/csi-hostpath-socat created
    11:43:06 waiting for hostpath deployment to complete, attempt #0
    11:43:16 waiting for hostpath deployment to complete, attempt #1
    11:43:26 waiting for hostpath deployment to complete, attempt #2
    deploying snapshotclass
    volumesnapshotclass.snapshot.storage.k8s.io/csi-hostpath-snapclass created

         10. The driver is deployed, we can check:

    $ kubectl get pods
    
    NAME                          READY   STATUS        RESTARTS    AGE
    csi-hostpath-attacher-0       1/1     Running        0          1m06s
    csi-hostpath-provisioner-0    1/1     Running        0          1m06s
    csi-hostpath-snapshotter-0    1/1     Running        0          1m06s
    csi-hostpathplugin-0          2/2     Running        0          1m06s

    CSI API-Resources:

    $ kubectl api-resources | grep -E "^Name|csi|storage|PersistentVolume"
    
    NAME                     APIGROUP                  NAMESPACED     KIND
    persistentvolumesclaims                            true           PersistentVolumeClaim
    persistentvolume                                   false          PersistentVolume
    csidrivers               csi.storage.k8s.io        false          CSIDrivers
    volumesnapshotclasses    snapshot.storage.k8s.io   false          VolumeSnapshotClass
    volumesnapshotcontents   snapshot.storage.k8s.io   false          VolumeSnapshotContent
    Volumesnapshots          snapshot.storage.k8s.io   true           VolumeSnapshot
    csidrivers               storage.k8s.io            false          CSIDriver
    csinodes                 storage.k8s.io            false          CSINode
    storageclasses           storage.k8s.io            false          VolumeAttachment

    There are resources from core apigroups, storage.k8s.io and resources which created by CRDs snapshot.storage.k8s.io and csi.storage.k8s.io.

    CSI SideCars

    K8s CSI containers are sidecars that simplify the development and deployment of the CSI Drivers on a k8s cluster. Different Drivers have some similar logic to trigger the appropriate operations against the “CSI volume driver” container and update the Kubernetes API as appropriate.

    The common controller (common containers) has to be bundled with the provider-specific containers.

    The official sig-k8s contributors maintain the following basic skeleton containers for any CSI Driver:

    Note: In case of Hostpath driver, only ‘csi-hostpath-plugin’ container will be having the specific code. All the others are common CSI sidecar containers. These containers have a socket mounted in the socket-dir volume of type EmptyDir, which makes their communication possible using gRPC

    1. External Provisioner:
      It  is a sidecar container that watches Kubernetes PersistentVolumeClaim objects and triggers CSI CreateVolume and DeleteVolume operations against a driver endpoint.
      The CSI external-attacher also supports the Snapshot DataSource. If a Snapshot CRD is specified as a data source on a PVC object, the sidecar container fetches the information about the snapshot by fetching the SnapshotContent object and populates the data source field indicating to the storage system that new volume should be populated using specified snapshot.
    2. External Attacher :
      It  is a sidecar container that watches Kubernetes VolumeAttachment objects and triggers CSI ControllerPublish and ControllerUnpublish operations against a driver endpoint
    3. Node-Driver Registrar:
      It is a sidecar container that registers the CSI driver with kubelet, and adds the drivers custom NodeId to a label on the Kubernetes Node API Object. The communication of this sidecar is handled by the ‘Identity-Service’ implemented by the driver. The CSI Driver is registered with the kubelet using its device–plugin mechanisms
    4. External Snapshotter:
      It is a sidecar container that watches the Kubernetes API server for VolumeSnapshot and VolumeSnapshotContent CRD objects.The creation of a new VolumeSnapshot object referencing a SnapshotClass CRD object corresponding to this driver causes the sidecar container to provision a new snapshot.
    5. This sidecar listens to the service which indicates the successful creation of VolumeSnapshot, and immediately creates the VolumeSnapshotContent resource
    6. Cluster-driver Registrar:
      CSI driver is registered with the cluster by a sidecar container CSI cluster-driver-registrar creating a CSIDriver object. This CSIDriver enables the driver to customize the way of k8s interaction with it.

    Developing a CSI Driver

    To start the implementation of CSIDriver, an application must implement the gRPC services described by the CSI Specification.

    The minimum service a CSI application should implement are following:

    • CSI Identity service: Enables Kubernetes components and CSI containers to identify the driver
    • CSI Node service: Required methods enable callers to make volume available at a specified path.

    All the required services may be implemented independently or in the same driver application. The CSI driver application should be containerised to make it easy to deploy on Kubernetes. Once the main specific logic of the driver is containerized, they can be attached to the sidecars and deployed, in node and/or controller mode.

    Capabilities

    CSI also have provisions to enable the custom CSI driver to support many additional features/services by using the “Capabilities”. It contains a list of all the features the driver supports.

    Note: Refer the link for detailed explanation for developing a CSI Driver.

    Try out provisioning the PV:

    1. A storage class with:

    volumeBindingMode: WaitForFirstConsumer
    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: csi-hostpath-sc
    provisioner: hostpath.csi.k8s.io
    volumeBindingMode: WaitForFirstConsumer

    2. Now, A PVC is also needed to be consumed by the sample Pod.

    And also a sample pod is also required, so that it can be bounded with the PV created by the PVC from above step
    The above files are found in ./exmples directory and can be deployed using create or apply kubectl commands

    Validate the deployed components:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-fs
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
      storageClassName: csi-hostpath-sc # defined in csi-setup.yaml

    3. The Pod to consume the PV

    kind: Pod
    apiVersion: v1
    metadata:
      name: pod-fs
    spec:
      affinity:
        podAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: app
                operator: In
                values:
                - csi-hostpathplugin
            topologyKey: kubernetes.io/hostname
      containers:
        - name: my-frontend
          image: busybox
          volumeMounts:
          - mountPath: "/data"
            name: my-csi-volume
          command: [ "sleep", "1000000" ]
      volumes:
        - name: my-csi-volume
          persistentVolumeClaim:
            claimName: pvc-fs # defined in csi-pvc.yaml

    Validate the deployed components:

    $ kubectl get pv
    
    NAME                                    CAPACITY ACCESSMODES STATUS CLAIM         STORAGECLASS     
    pvc-58d5ec38-03e5-11e9-be51-000c29e88ff1  1Gi       RWO      Bound  default/pvc-fs csi-hostpath-sc
    $ kubectl get pvc
    
    NAME      STATUS   VOLUME                                     CAPACITY  ACCESS MODES    STORAGECLASS
    csi-pvc   Bound    pvc-58d5ec38-03e5-11e9-be51-000c29e88ff1     1Gi         RWO         csi-hostpath-sc

    Brief on how it works:

    • csi-provisioner issues CreateVolumeRequest call to the CSI socket, then hostpath-plugin calls CreateVolume and informs CSI about its creation
    • csi-provisioner creates PV and updates PVC to be bound and the VolumeAttachment object is created by controller-manager
    • csi-attacher which watches for VolumeAttachments submits ControllerPublishVolume rpc call to hostpath-plugin, then hostpaths-plugin gets ControllerPublishVolume and calls hostpath AttachVolume csi-attacher update VolumeAttachment status
    • All this time kubelet waits for volume to be attached and submits NodeStageVolume (format and mount to the node to the staging dir) to the csi-node.hostpath-plugin
    • csi-node.hostpath-plugin gets NodeStageVolume call and mounts to `/var/lib/kubelet/plugins/kubernetes.io/csi/pv/<pv-name>/globalmount`, then responses to kubelet</pv-name>
    • kubelet calls NodePublishVolume (mount volume to the pod’s dir)
    • csi-node.hostpath-plugin performs NodePublishVolume and mounts the volume to `/var/lib/kubelet/pods/<pod-uuid>/volumes/</pod-uuid>kubernetes.io~csi/<pvc-name>/mount`</pvc-name>

      Finally, kubelet starts container of the pod with the provisioned volume.


    Let’s confirm the working of Hostpath CSI driver:

    The Hostpath driver is configured to create new volumes in the hostpath container in the plugin daemonset under the ‘/tmp’ directory. This path persist as long as the DaemonSet pod is up and running.

    If a file is written in the hostpath mounted volume in an application pod, should be seen in the hostpath cotainer.A file written in a properly mounted Hostpath volume inside an application should show up inside the Hostpath container.

    1. To try out the above statement, Create a file on application pod

    $ kubectl exec -it pod-fs /bin/sh
    
    / # touch /data/my-test
    / # exit

    2. And then exec in the hostpath container and run ‘ls’ command to check

    $ kubectl exec -it $(kubectl get pods --selector app=csi-hostpathplugin 
    -o jsonpath='{.items[*].metadata.name}') -c hostpath /bin/sh
    
    / # find /tmp -name my-test
    /tmp/057485ab-c714-11e8-bb16-000c2967769a/my-test
    / # exit

    Note: The better way of the verification is to inspect the VolumeAttachment object created that represents the attached volume API object created that represents the attached volume

    Support for Snapshot

    Volume Snapshotting is introduced as an Alpha feature for the Kubernetes persistent volume in v1.12. 

    Being an alpha feature, ‘VolumeSnapshotDataSource’ feature gate needs to be enabled. This feature opens a pool of use cases of keeping the snapshot of data locally. The API objects used are VolumeSnapshot, VolumeSnapshotContent and VolumeSnapshotClass. It was developed with a similar notion and relationship of PV, PVC and StorageClass. 

    To create a snapshot, the VolumeSnapshot object needs to be created with the source as PVC and VolumeSnapshotClass

    and the CSI-Snapshotter container will create a VolumeSnaphsotContent.

    Let’s try out with an example:

    Just like the provisioner create a PV for us when a PVC is created, similarly a VolumeSnapshotContent object will be created when VolumeSnapshot object is created.

    apiVersion: snapshot.storage.k8s.io/v1alpha1
    kind: VolumeSnapshot
    metadata:
      name: fs-pv-snapshot
    spec:
      snapshotClassName: csi-hostpath-snapclass
      source:
        name: pvc-fs
        kind: PersistentVolumeClaim

    The volumesnapshotcontent is created. The output will look like:

    $ kubectl get volumesnapshotcontent
     
    NAME                                                  AGE
    snapcontent-f55db632-c716-11e8-8911-000c2967769a      14s

    Restore from the snapshot:

    The DataSource field in the PVC can accept the source of kind: VolumeSnapsot which will create a new PV from that volume snapshot, when a Pod is bound to this PVC.

    The new PV will be having the same data as of the PV from which the snapshot was taken and it can be attached to any other pod. The new pod having that PV, proves of the possible “Restore” and “Cloning” use cases.

    Tear Down CSI-Hostpath installation:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: fs-pvc-restore
    spec:
      storageClassName: csi-hostpath-sc
      dataSource:
        name: fs-pv-snapshot
        kind: VolumeSnapshot
        apiGroup: snapshot.storage.k8s.io
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi

    And we’re done here.

    Conclusion

    Since Kubernetes has started supporting the Raw Block Device type of Persistent Volume, hospath driver and any other driver may also support it, which will be explained in the next part of the blog. In this blog, we got deep understanding of the CSI, its components and services. The new features of CSI and the problems it solves. The CSI Hostpath driver was deeply in this blog to experiment and understand the provisioner, snapshotter flows for PV and VolumeSnapshots. Also, the PV snapshot, restore and cloning use cases were demonstrated.

  • Acquiring Temporary AWS Credentials with Browser Navigated Authentication

    In one of my previous blog posts (Hacking your way around AWS IAM Roles), we demonstrated how users can access AWS resources without having to store AWS credentials on disk. This was achieved by setting up an OpenVPN server and client-side route that gets automatically pushed when the user is connected to the VPN. To this date, I really find this as a complaint-friendly solution without forcing users to do any manual configuration on their system. It also makes sense to have access to AWS resources as long as they are connected on VPN. One of the downsides to this method is maintaining an OpenVPN server, keeping it secure and having it running in a highly available (HA) state. If the OpenVPN server is compromised, our credentials are at stake. Secondly, all the users connected on VPN get the same level of access.

    In this blog post, we present to you a CLI utility written in Rust that writes temporary AWS credentials to a user profile (~/.aws/credentials file) using web browser navigated Google authentication. This utility is inspired by gimme-aws-creds (written in python for Okta authenticated AWS farm) and heroku cli (written in nodejs and utilizes oclif framework). We will refer to our utility as aws-authcreds throughout this post.

    “If you have an apple and I have an apple and we exchange these apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.”

    – George Bernard Shaw

    What does this CLI utility (auth-awscreds) do?

    When the user fires a command (auth-awscreds) on the terminal, our program reads utility configuration from file .auth-awscreds located in the user home directory. If this file is not present, the utility prompts for setting the configuration for the first time. Utility configuration file is INI format. Program then opens a default web browser and navigates to the URL read from the configuration file. At this point, the utility waits for the browser URL to navigate and authorize. Web UI then navigates to Google Authentication. If authentication is successful, a callback is shared with CLI utility along with temporary AWS credentials, which is then written to ~/.aws/credentials file.

    Block Diagram

    Tech Stack Used

    As stated earlier, we wrote this utility in Rust. One of the reasons for choosing Rust is because we wanted a statically typed binary (ELF) file (executed independent of interpreter), which ships as it is when compiled. Unlike programs written in Python or Node.js, one needs a language interpreter and has supporting libraries installed for your program. The golang would have also suffice our purpose, but I prefer Rust over golang.

    Software Stack:

    • Rust (for CLI utility)
    • Actix Web – HTTP Server
    • Node.js, Express, ReactJS, serverless-http, aws-sdk, AWS Amplify, axios
    • Terraform and serverless framework

    Infrastructure Stack:

    • AWS Cognito (User Pool and Federated Identities)
    • AWS API Gateway (HTTP API)
    • AWS Lambda
    • AWS S3 Bucket (React App)
    • AWS CloudFront (For Serving React App)
    • AWS ACM (SSL Certificate)

    Recipe

    Architecture Diagram

    CLI Utility: auth-awscreds

    Our goal is, when the auth-awscreds command is fired, we first check if the user’s home directory ~/.aws/credentials file exists. If not, we create a ~/.aws directory. This is the default AWS credentials directory, where usually AWS SDK looks for credentials (unless exclusively specified by env var AWS_SHARED_CREDENTIALS_FILE). The next step would be to check if a ~/.auth-awscredds file exists. If this file doesn’t exist, we create a prompt user with two inputs: 

    1. AWS credentials profile name (used by SDK, default is preferred) 

    2. Application domain URL (Our backend app domain is used for authentication)

    let app_profile_file = format!("{}/.auth-awscreds",&user_home_dir);
     
       let config_exist : bool = Path::new(&app_profile_file).exists();
     
       let mut profile_name = String::new();
       let mut app_domain = String::new();
     
       if !config_exist {
           //ask the series of questions
           print!("Which profile to write AWS Credentials [default] : ");
           io::stdout().flush().unwrap();
           io::stdin()
               .read_line(&mut profile_name)
               .expect("Failed to read line");
     
           print!("App Domain : ");
           io::stdout().flush().unwrap();
          
           io::stdin()
               .read_line(&mut app_domain)
               .expect("Failed to read line");
          
           profile_name=String::from(profile_name.trim());
           app_domain=String::from(app_domain.trim());
          
           config_profile(&profile_name,&app_domain);
          
       }
       else {
           (profile_name,app_domain) = read_profile();
       }

    These two properties are written in ~/.auth-awscreds under the default section. Followed by this, our utility generates RSA asymmetric 1024 bit public and private key. Both the keypair are converted to base64.

    pub fn genkeypairs() -> (String,String) {
       let rsa = Rsa::generate(1024).unwrap();
     
       let private_key: Vec<u8> = rsa.private_key_to_pem_passphrase(Cipher::aes_128_cbc(),"Sagar Barai".as_bytes()).unwrap();
       let public_key: Vec<u8> = rsa.public_key_to_pem().unwrap();
     
       (base64::encode(private_key) , base64::encode(public_key))
    }

    We then launch a browser window and navigate to the specified app domain URL. At this stage, our utility starts a temporary web server with the help of the Actix Web framework and listens on 63442 port of localhost.

    println!("Opening web ui for authentication...!");
       open::that(&app_domain).unwrap();
     
       HttpServer::new(move || {
           //let stopper = tx.clone();
           let cors = Cors::permissive();
           App::new()
           .wrap(cors)
           //.app_data(stopper)
           .app_data(crypto_data.clone())
           .service(get_public_key)
           .service(set_aws_creds)
       })
       .bind(("127.0.0.1",63442))?
       .run()
       .await

    Localhost web server has two end points.

    1. GET Endpoint (/publickey): This endpoint is called by our React app after authentication and returns the public key created during the initialization process. Since the web server hosted by the Rust application is insecure (non ssl),  when actual AWS credentials are received, they should be posted as an encrypted string with the help of this public key.

    #[get("/publickey")]
    pub async fn get_public_key(data: web::Data<AppData>) -> impl Responder {
       let public_key = &data.public_key;
      
       web::Json(HTTPResponseData{
           status: 200,
           msg: String::from("Ok"),
           success: true,
           data: String::from(public_key)
       })
    }

    2. POST Endpoint (/setcreds): This endpoint is called when the react app has successfully retrieved credentials from API Gateway. Credentials are decrypted by private key and then written to ~/.aws/credentials file defined by profile name in utility configuration. 

    let encrypted_data = payload["data"].as_array().unwrap();
       let username = payload["username"].as_str().unwrap();
     
       let mut decypted_payload = vec![];
     
       for str in encrypted_data.iter() {
           //println!("{}",str.to_string());
           let s = str.as_str().unwrap();
           let decrypted = decrypt_data(&private_key, &s.to_string());
           decypted_payload.extend_from_slice(&decrypted);
       }
     
       let credentials : serde_json::Value = serde_json::from_str(&String::from_utf8(decypted_payload).unwrap()).unwrap();
     
       let aws_creds = AWSCreds{
           profile_name: String::from(profile_name),
           aws_access_key_id: String::from(credentials["AccessKeyId"].as_str().unwrap()),
           aws_secret_access_key: String::from(credentials["SecretAccessKey"].as_str().unwrap()),
           aws_session_token: String::from(credentials["SessionToken"].as_str().unwrap())
       };
     
       println!("Authenticated as {}",username);
       println!("Updating AWS Credentials File...!");
     
       configcreds(&aws_creds);

    One of the interesting parts of this code is the decryption process, which iterates through an array of strings and is joined by method decypted_payload.extend_from_slice(&decrypted);. RSA 1024 is 128-byte encryption, and we used OAEP padding, which uses 42 bytes for padding and the rest for encrypted data. Thus, 86 bytes can be encrypted at max. So, when credentials are received they are an array of 128 bytes long base64 encoded data. One has to decode the bas64 string to a data buffer and then decrypt data piece by piece.

    To generate a statically typed binary file, run: cargo build –release

    AWS Cognito and Google Authentication

    This guide does not cover how to set up Cognito and integration with Google Authentication. You can refer to our old post for a detailed guide on setting up authentication and authorization. (Refer to the sections Setup Authentication and Setup Authorization).

    React App:

    The React app is launched via our Rust CLI utility. This application is served right from the S3 bucket via CloudFront. When our React app is loaded, it checks if the current session is authenticated. If not, then with the help of the AWS Amplify framework, our app is redirected to Cognito-hosted UI authentication, which in turn auto redirects to Google Login page.

    render(){
       return (
         <div className="centerdiv">
           {
             this.state.appInitialised ?
               this.state.user === null ? Auth.federatedSignIn({provider: 'Google'}) :
               <Aux>
                 {this.state.pageContent}
               </Aux>
             :
             <Loader/>
           }
         </div>
       )
     }

    Once the session is authenticated, we set the react state variables and then retrieve the public key from the actix web server (Rust CLI App: auth-awscreds) by calling /publickey GET method. Followed by this, an Ajax POST request (/auth-creds) is made via axios library to API Gateway. The payload contains a public key, and JWT token for authentication. Expected response from API gateway is encrypted AWS temporary credentials which is then proxied to our CLI application.

    To ease this deployment, we have written a terraform code (available in the repository) that takes care of creating an S3 bucket, CloudFront distribution, ACM, React build, and deploying it to the S3 bucket. Navigate to vars.tf file and change the respective default variables). The Terraform script will fail at first launch since the ACM needs a DNS record validation. You can create a CNAME record for DNS validation and re-run the Terraform script to continue deployment. The React app expects few environment variables. Below is the sample .env file; update the respective values for your environment.

    REACT_APP_IDENTITY_POOL_ID=
    REACT_APP_COGNITO_REGION=
    REACT_APP_COGNITO_USER_POOL_ID=
    REACT_APP_COGNTIO_DOMAIN_NAME=
    REACT_APP_DOMAIN_NAME=
    REACT_APP_CLIENT_ID=
    REACT_APP_CLI_APP_URL=
    REACT_APP_API_APP_URL=

    Finally, deploy the React app using below sample commands.

    $ terraform plan -out plan     #creates plan for revision
    $ terraform apply plan         #apply plan and deploy

    API Gateway HTTP API and Lambda Function

    When a request is first intercepted by API Gateway, it validates the JWT token on its own. API Gateway natively supports Cognito integration. Thus, any payload with invalid authorization header is rejected at API Gateway itself. This eases our authentication process and validates the identity. If the request is valid, it is then received by our Lambda function. Our Lambda function is written in Node.js and wrapped by serverless-http framework around express app. The Express app has only one endpoint.

    /auth-creds (POST): once the request is received, it retrieves the ID from Cognito and logs it to stdout for audit purpose.

    let identityParams = {
               IdentityPoolId: process.env.IDENTITY_POOL_ID,
               Logins: {}
           };
      
           identityParams.Logins[`${process.env.COGNITOIDP}`] = req.headers.authorization;
      
           const ci = new CognitoIdentity({region : process.env.AWSREGION});
      
           let idpResponse = await ci.getId(identityParams).promise();
      
           console.log("Auth Creds Request Received from ",JSON.stringify(idpResponse));

    The app then extracts the base64 encoded public key. Followed by this, an STS api call (Security Token Service) is made and temporary credentials are derived. These credentials are then encrypted with a public key in chunks of 86 bytes.

    const pemPublicKey = Buffer.from(public_key,'base64').toString();
     
           const authdata=await sts.assumeRole({
               ExternalId: process.env.STS_EXTERNAL_ID,
               RoleArn: process.env.IAM_ROLE_ARN,
               RoleSessionName: "DemoAWSAuthSession"
           }).promise();
     
           const creds = JSON.stringify(authdata.Credentials);
           const splitData = creds.match(/.{1,86}/g);
          
           const encryptedData = splitData.map(d=>{
               return publicEncrypt(pemPublicKey,Buffer.from(d)).toString('base64');
           });

    Here, the assumeRole calls the IAM role, which has appropriate policy documents attached. For the sake of this demo, we attached an Administrator role. However, one should consider a hardening policy document and avoid attaching Administrator policy directly to the role.

    resources:
     Resources:
       AuthCredsAssumeRole:
         Type: AWS::IAM::Role
         Properties:
           AssumeRolePolicyDocument:
             Version: "2012-10-17"
             Statement:
               -
                 Effect: Allow
                 Principal:
                   AWS: !GetAtt IamRoleLambdaExecution.Arn
                 Action: sts:AssumeRole
                 Condition:
                   StringEquals:
                     sts:ExternalId: ${env:STS_EXTERNAL_ID}
           RoleName: auth-awscreds-api
           ManagedPolicyArns:
             - arn:aws:iam::aws:policy/AdministratorAccess

    Finally, the response is sent to the React app. 

    We have used the Serverless framework to deploy the API. The Serverless framework creates API gateway, lambda function, Lambda Layer, and IAM role, and takes care of code deployment to lambda function.

    To deploy this application, follow the below steps.

    1. cd layer/nodejs && npm install && cd ../.. && npm install

    2. npm install -g serverless (on mac you can skip this step and use the npx serverless command instead) 

    3. Create .env file and below environment variables to file and set the respective values.

    AWSREGION=ap-south-1
    COGNITO_USER_POOL_ID=
    IDENTITY_POOL_ID=
    COGNITOIDP=
    APP_CLIENT_ID=
    STS_EXTERNAL_ID=
    IAM_ROLE_ARN=
    DEPLOYMENT_BUCKET=
    APP_DOMAIN=

    4. serverless deploy or npx serverless deploy

    Entire codebase for CLI APP, React App, and Backend API  is available on the GitHub repository.

    Testing:

    Assuming that you have compiled binary (auth-awscreds) available in your local machine and for the sake of testing you have installed `aws-cli`, you can then run /path/to/your/auth-awscreds. 

    App Testing

    If you selected your AWS profile name as “demo-awscreds,” you can then export the AWS_PROFILE environment variable. If you prefer a “default” profile, you don’t need to export the environment variable as AWS SDK selects a “default” profile on its own.

    [demo-awscreds]
    aws_access_key_id=ASIAUAOF2CHC77SJUPZU
    aws_secret_access_key=r21J4vwPDnDYWiwdyJe3ET+yhyzFEj7Wi1XxdIaq
    aws_session_token=FwoGZXIvYXdzEIj//////////wEaDHVLdvxSNEqaQZPPQyK2AeuaSlfAGtgaV1q2aKBCvK9c8GCJqcRLlNrixCAFga9n+9Vsh/5AWV2fmea6HwWGqGYU9uUr3mqTSFfh+6/9VQH3RTTwfWEnQONuZ6+E7KT9vYxPockyIZku2hjAUtx9dSyBvOHpIn2muMFmizZH/8EvcZFuzxFrbcy0LyLFHt2HI/gy9k6bLCMbcG9w7Ej2l8vfF3dQ6y1peVOQ5Q8dDMahhS+CMm1q/T1TdNeoon7mgqKGruO4KJrKiZoGMi1JZvXeEIVGiGAW0ro0/Vlp8DY1MaL7Af8BlWI1ZuJJwDJXbEi2Y7rHme5JjbA=

    To validate, you can then run “aws s3 ls.” You should see S3 buckets listed from your AWS account. Note that these credentials are only valid for 60 minutes. This means you will have to re-run the command and acquire a new pair of AWS credentials. Of course, you can configure your IAM role to extend expiry for an “assume role.” 

    auth-awscreds in Action:

    Summary

    Currently, “auth-awscreds” is at its early development stage. This post demonstrates how AWS credentials can be acquired temporarily without having to worry about key rotation. One of the features that we are currently working on is RBAC, with the help of AWS Cognito. Since this tool currently doesn’t support any command line argument, we can’t reconfigure utility configuration. You can manually edit or delete the utility configuration file, which triggers a prompt for configuring during the next run. We also want to add multiple profiles so that multiple AWS accounts can be used.

  • Continuous Deployment with Azure Kubernetes Service, Azure Container Registry & Jenkins

    Introduction

    Containerization has taken the application development world by storm. Kubernetes has become the standard way of deploying new containerized distributed applications used by the largest enterprises in a wide range of industries for mission-critical tasks, it has become one of the biggest open-source success stories.

    Although Google Cloud has been providing Kubernetes as a service since November 2014 (Note it started with a beta project), Microsoft with AKS (Azure Kubernetes Service) and Amazon with EKS (Elastic Kubernetes Service)  have jumped on to the scene in the second half of 2017.

    Example:

    AWS had KOPS

    Azure had Azure Container Service.

    However, they were wrapper tools available prior to these services which would help a user create a Kubernetes cluster, but the management and the maintenance (like monitoring and upgrades) needed efforts.

    Azure Container Registry:

    With container demand growing, there is always a need in the market for storing and protecting the container images. Microsoft provides a Geo Replica featured private repository as a service named Azure Container Registry.

    Azure Container Registry is a registry offering from Microsoft for hosting container images privately. It integrates well with orchestrators like Azure Container Service, including Docker Swarm, DC/OS, and the new Azure Kubernetes service. Moreover, ACR  provides capabilities such as Azure Active Directory-based authentication, webhook support, and delete operations.

    The coolest feature provided is Geo-Replication. This will create multiple copies of your image and distribute it across the globe and the container when spawned will have access to the image which is nearest.

    Although Microsoft has good documentation on how to set up ACR  in your Azure Subscription, we did encounter some issues and hence decided to write a blog on the precautions and steps required to configure the Registry in the correct manner.

    Note: We tried this using a free trial account. You can setup it up by referring the following link

    Prerequisites:

    • Make sure you have resource groups created in the supported region.
      Supported Regions: eastus, westeurope, centralus, canada central, canadaeast
    • If you are using Azure CLI for operations please make sure you use the version: 2.0.23 or 2.0.25 (This was the latest version at the time of writing this blog)

    Steps to install Azure CLI 2.0.23 or 2.0.25 (ubuntu 16.04 workstation):

    echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ wheezy main" |            
    sudo tee /etc/apt/sources.list.d/azure-cli.list
    sudo apt-key adv --keyserver packages.microsoft.com --recv-keys 52E16F86FEE04B979B07E28DB02C46DF417A0893
    sudo apt-get install apt-transport-httpssudo apt-get update && sudo apt-get install azure-cli
    
    Install a specific version:
    
    sudo apt install azure-cli=2.0.23-1
    sudo apt install azure-cli=2.0.25.1

    Steps for Container Registry Setup:

    • Login to your Azure Account:
    az  login --username --password

    • Create a resource group:
    az group create --name <RESOURCE-GROUP-NAME>  --location eastus
    Example : az group create --name acr-rg  --location eastus

    • Create a Container Registry:
    az acr create --resource-group <RESOURCE-GROUP-NAME> --name <CONTAINER-REGISTRY-NAME> --sku Basic --admin-enabled true
    Example : az acr create --resource-group acr-rg --name testacr --sku Basic --admin-enabled true

    Note: SKU defines the storage available for the registry for type Basic the storage available is 10GB, 1 WebHook and the billing amount is 11 Rs/day.

    For detailed information on the different SKU available visit the following link

    • Login to the registry :
    az acr login --name <CONTAINER-REGISTRY-NAME>
    Example :az acr login --name testacr

    • Sample docker file for a node application :
    FROM node:carbon
    # Create app directory
    WORKDIR /usr/src/app
    COPY package*.json ./
    # RUN npm install
    EXPOSE 8080
    CMD [ "npm", "start" ]

    • Build the docker image :
    docker build -t <image-tag>:<software>
    Example :docker build -t base:node8

    • Get the login server value for your ACR :
    az acr list --resource-group acr-rg --query "[].{acrLoginServer:loginServer}" --output table
    Output  :testacr.azurecr.io

    • Tag the image with the Login Server Value:
      Note: Get the image ID from docker images command

    Example:

    docker tag image-id testacr.azurecr.io/base:node8

    Push the image to the Azure Container Registry:Example:

    docker push testacr.azurecr.io/base:node8

    Microsoft does provide a GUI option to create the ACR.

    • List Images in the Registry:

    Example:

    az acr repository list --name testacr --output table

    • List tags for the Images:

    Example:

    az acr repository show-tags --name testacr --repository <name> --output table

    • How to use the ACR image in Kubernetes deployment: Use the login Server Name + the image name

    Example :

    containers:- 
    name: demo
    image: testacr.azurecr.io/base:node8

    Azure Kubernetes Service

    Microsoft released the public preview of Managed Kubernetes for Azure Container Service (AKS) on October 24, 2017. This service simplifies the deployment, management, and operations of Kubernetes. It features an Azure-hosted control plane, automated upgrades, self-healing, easy scaling.

    Similarly to Google AKE and Amazon EKS, this new service will allow access to the nodes only and the master will be managed by Cloud Provider. For more information visit the following link.

    Let’s now get our hands dirty and deploy an AKS infrastructure to play with:

    • Enable AKS preview for your Azure Subscription: At the time of writing this blog, AKS is in preview mode, it requires a feature flag on your subscription.
    az provider register -n Microsoft.ContainerService

    • Kubernetes Cluster Creation Command: Note: A new separate resource group should be created for the Kubernetes service.Since the service is in preview, it is available only to certain regions.

    Make sure you create a resource group under the following regions.

    eastus, westeurope, centralus, canadacentral, canadaeast
    az  group create  --name  <RESOURCE-GROUP>   --location eastus
    Example : az group create --name aks-rg --location eastus
    az aks create --resource-group <RESOURCE-GROUP-NAME> --name <CLUSTER-NAME>   --node-count 2 --generate-ssh-keys
    Example : az aks create --resource-group aks-rg --name akscluster  --node-count 2 --generate-ssh-keys

    Example with different arguments :

    Create a Kubernetes cluster with a specific version.

    az aks create -g MyResourceGroup -n MyManagedCluster --kubernetes-version 1.8.1

    Create a Kubernetes cluster with a larger node pool.

    az aks create -g MyResourceGroup -n MyManagedCluster --node-count 7

    Install the Kubectl CLI :

    To connect to the kubernetes cluster from the client computer Kubectl command line client is required.

    sudo az aks install-cli

    Note: If you’re using Azure CloudShell, kubectl is already installed. If you want to install it locally, run the above  command:

    • To configure kubectl to connect to your Kubernetes cluster :
    az aks get-credentials --resource-group=<RESOURCE-GROUP-NAME> --name=<CLUSTER-NAME>

    Example :

    CODE: <a href="https://gist.github.com/velotiotech/ac40b6014a435271f49ca0e3779e800f">https://gist.github.com/velotiotech/ac40b6014a435271f49ca0e3779e800f</a>.js

    • Verify the connection to the cluster :
    kubectl get nodes -o wide 

    • For all the command line features available for Azure check the link: https://docs.microsoft.com/en-us/cli/azure/aks?view=azure-cli-latest

    We had encountered a few issues while setting up the AKS cluster at the time of writing this blog. Listing them along with the workaround/fix:

    az aks create --resource-group aks-rg --name akscluster  --node-count 2 --generate-ssh-keys

    Error: Operation failed with status: ‘Bad Request’.

    Details: Resource provider registrations Microsoft.Compute, Microsoft.Storage, Microsoft.Network are needed we need to enable them.

    Fix: If you are using the trial account, click on subscriptions and check whether the following providers are registered or not :

    • Microsoft.Compute
    • Microsoft.Storage
    • Microsoft.Network
    • Microsoft.ContainerRegistry
    • Microsoft.ContainerService

    Error: We had encountered the following mentioned open issues at the time of writing this blog.

    1. Issue-1
    2. Issue-2
    3. Issue-3

    Jenkins setup for CI/CD with ACR, AKS

    Microsoft provides a solution template which will install the latest stable Jenkins version on a Linux (Ubuntu 14.04 LTS) VM along with tools and plugins configured to work with Azure. This includes:

    • git for source control
    • Azure Credentials plugin for connecting securely
    • Azure VM Agents plugin for elastic build, test and continuous integration
    • Azure Storage plugin for storing artifacts
    • Azure CLI to deploy apps using scripts

    Refer the below link to bring up the Instance

    Pipeline plan for Spinning up a Nodejs Application using ACR – AKS – Jenkins

    What the pipeline accomplishes :

    Stage 1:

    The code gets pushed in the Github. The Jenkins job gets triggered automatically. The Dockerfile is checked out from Github.

    Stage 2:

    Docker builds an image from the Dockerfile and then the image is tagged with the build number.Additionally, the latest tag is also attached to the image for the containers to use.

    Stage 3:

    We have default deployment and service YAML files stored on the Jenkins server. Jenkins makes a copy of the default YAML files, make the necessary changes according to the build and put them in a separate folder.

    Stage 4:

    kubectl was initially configured at the time of setting up AKS on the Jenkins server. The YAML files are fed to the kubectl util which in turn creates pods and services.

    Sample Jenkins pipeline code :

    node {      
      // Mark the code checkout 'stage'....        
        stage('Checkout the dockefile from GitHub') {            
          git branch: 'docker-file', credentialsId: 'git_credentials', url: 'https://gitlab.com/demo.git'        
        }        
        // Build and Deploy to ACR 'stage'...        
        stage('Build the Image and Push to Azure Container Registry') {                
          app = docker.build('testacr.azurecr.io/demo')                
          withDockerRegistry([credentialsId: 'acr_credentials', url: 'https://testacr.azurecr.io']) {                
          app.push("${env.BUILD_NUMBER}")                
          app.push('latest')                
          }        
         }        
         stage('Build the Kubernetes YAML Files for New App') {
    <The code here will differ depending on the YAMLs used for the application>        
      }        
      stage('Delpoying the App on Azure Kubernetes Service') {            
        app = docker.image('testacr.azurecr.io/demo:latest')            
        withDockerRegistry([credentialsId: 'acr_credentials', url: 'https://testacr.azurecr.io']) {            
        app.pull()            
        sh "kubectl create -f ."            
        }       
       }    
    }

    What we achieved:

    • We managed to create a private Docker registry on Azure using the ACR feature using az-cli 2.0.25.
    • Secondly, we were able to spin up a private Kubernetes cluster on Azure with 2 nodes.
    • Setup Up Jenkins using a pre-cooked template which had all the plugins necessary for communication with ACR and AKS.
    • Orchestrate  a Continuous Deployment pipeline in Jenkins which uses docker features.
  • Kubernetes Migration: How To Move Data Freely Across Clusters

    This blog focuses on migrating Kubernetes clusters from one cloud provider to another. We will be migrating our entire data from Google Kubernetes Engine to Azure Kubernetes Service using Velero.

    Prerequisite

    • A Kubernetes cluster > 1.10

    Setup Velero with Restic Integration

    Velero consists of a client installed on your local computer and a server that runs in your Kubernetes cluster, like Helm

    Installing Velero Client

    You can find the latest release corresponding to your OS and system and download Velero from there:

    $ wget
    https://github.com/vmware-tanzu/velero/releases/download/v1.3.1/velero-v1.3.1-linux-amd64.tar.gz

    Extract the tarball (change the version depending on yours) and move the Velero binary to /usr/local/bin

    $ tar -xvzf velero-v0.11.0-darwin-amd64.tar.gz
    $ sudo mv velero /usr/local/bin/
    $ velero help

    Create a Bucket for Velero on GCP

    Velero needs an object storage bucket where it will store the backup. Create a GCS bucket using:

    gsutil mb gs://<bucket-name

    Create a Service Account for Velero

    # Create a Service Account
    gcloud iam service-accounts create velero --display-name "Velero service account"
    SERVICE_ACCOUNT_EMAIL=$(gcloud iam service-accounts list --filter="displayName:Velero service account" --format 'value(email)')
    
    #Define Permissions for the Service Account
    ROLE_PERMISSIONS=(
    compute.disks.get
    compute.disks.create
    compute.disks.createSnapshot
    compute.snapshots.get
    compute.snapshots.create
    compute.snapshots.useReadOnly
    compute.snapshots.delete
    compute.zones.get
    )
    
    # Create a Role for Velero
    PROJECT_ID=$(gcloud config get-value project)
    
    gcloud iam roles create velero.server 
    --project $PROJECT_ID 
    --title "Velero Server" 
    --permissions "$(IFS=","; echo "${ROLE_PERMISSIONS[*]}")"
    
    # Create a Role Binding for Velero
    gcloud projects add-iam-policy-binding $PROJECT_ID 
    --member serviceAccount:$SERVICE_ACCOUNT_EMAIL 
    --role projects/$PROJECT_ID/roles/velero.server
    
    gsutil iam ch serviceAccount:$SERVICE_ACCOUNT_EMAIL:objectAdmin
    
    # Generate Service Key file for Velero and save it for later
    gcloud iam service-accounts keys create credentials-velero 
    --iam-account $SERVICE_ACCOUNT_EMAIL

    Install Velero Server on GKE and AKS

    Use the –use-restic flag on the Velero install command to install restic integration.

    $ velero install 
    --use-restic 
    --bucket  
    --provider gcp 
    --secret-file  
    --use-volume-snapshots=false 
    --plugins=--plugins restic/restic
    $ velero plugin add velero/velero-plugin-for-gcp:v1.0.1
    $ velero plugin add velero/velero-plugin-for-microsoft-azure:v1.0.0

    After that, you can see a DaemonSet of restic and deployment of Velero in your Kubernetes cluster.

    $ kubectl get po -n velero

    Restic Components

    In addition, there are three more Custom Resource Definitions and their associated controllers to provide restic support.

    Restic Repository

    • Maintain the complete lifecycle for Velero’s restic repositories.
    • Restic lifecycle commands such as restic init check and prune are handled by this CRD controller.

    PodVolumeBackup

    • This CRD backs up the persistent volume based on the annotated pod in selected namespaces. 
    • This controller executes backup commands on the pod to initialize backups. 

    PodVolumeRestore

    • This controller restores the respective pods that were inside restic backups. And this controller is responsible for the restore commands execution.

    Backup an application on GKE

    For this blog post, we are considering that Kubernetes already has an application that is using persistent volumes. Or you can install WordPress as an example as explained here.

    We will perform GKE Persistent disk migration to Azure Persistent Disk using Velero. 

    Follow the below steps:

    1. To back up, the deployment or statefulset checks for the volume name that is mounted to backup that particular persistent volume. For example, here pods need to be annotated with Volume Name “data”.
    volumes:
        - name: data
            persistentVolumeClaim:
                claimName: mongodb 

    1. Annotate the pods with the volume names, you’d like to take the backup of and only those volumes will be backed up: 
    $ kubectl -n NAMESPACE annotate pod/POD_NAME backup.velero.io/backup-volumes=VOLUME_NAME1,VOLUME_NAME2

    For example, 

    $ kubectl -n application annotate pod/wordpress-pod backup.velero.io/backup-volumes=data

    1. Take a backup of the entire namespace in which the application is running. You can also specify multiple namespaces or skip this flag to backup all namespaces by default.
      We are going to backup only one namespace in this blog.
    $ velero backup create testbackup --include-namespaces application

    1. Monitor the progress of backup:
    $ velero backup describe testbackup --details

       

    Once the backup is complete, you can list it using:

    $ velero backup get

    You can also check the backup on GCP Portal under Storage.
    Select the bucket you created and you should see a similar directory structure:

    Restore the application to AKS

    Follow the below steps to restore the backup:

    1. Make sure to have the same StorageClass available in Azure as used by GKE Persistent Volumes. For example, if the Storage Class of the PVs is “persistent-ssd”, create the same on AKS using below template:
    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: persistent-ssd // same name as GKE storageclass name
    provisioner: kubernetes.io/azure-disk
    parameters: 
      storageaccounttype: Premium_LRS
      kind: Managed 

    1. Run Velero restore.
    $ velero restore create testrestore --from-backup testbackup

    You can monitor the progress of restore:

    $ velero restore describe testrestore --details

    You can also check on GCP Portal, a new folder “restores” is created under the bucket.

    In some time, you should be able to see that the application namespace is back and WordPress and MySQL pods are running again.

    Troubleshooting

    For any errors/issues related to Velero, you may find below commands helpful for debugging purposes:

    # Describe the backup to see the status
    $ velero backup describe testbackup --details
    
    # Check backup logs, and look for errors if any
    $ velero backup logs testbackup
    
    # Describe the restore to see the status
    $ velero restore describe testrestore --details
    
    # Check restore logs, and look for errors if any
    $ velero restore logs testrestore
    
    # Check velero and restic pod logs, and look for errors if any
    $ kubectl -n velero logs VELERO_POD_NAME/RESTIC_POD_NAME
    NOTE: You can change the default log-level to debug mode by adding --log-level=debug as an argument to the container command in the velero pod template spec.
    
    # Describe the BackupStorageLocation resource and look for any errors in Events
    $ kubectl describe BackupStorageLocation default -n velero

    Conclusion

    The migration of persistent workloads across Kubernetes clusters on different cloud providers is difficult. This became possible by using restic integration with the Velero backup tool. This tool is still said to be in beta quality as mentioned on the official site. I have performed GKE to AKS migration and it went successfully. You can try other combinations of different cloud providers for migrations.

    The only drawback of using Velero to migrate data is if your data is too huge, it may take a while to complete migration. It took me almost a day to migrate a 350 GB disk from GKE to AKS. But, if your data is comparatively less, this should be a very efficient and hassle-free way to migrate it.

  • Automated Containerization and Migration of On-premise Applications to Cloud Platforms

    Containerized applications are becoming more popular with each passing year. All enterprise applications are adopting container technology as they modernize their IT systems. Migrating your applications from VMs or physical machines to containers comes with multiple advantages like optimal resource utilization, faster deployment times, replication, quick cloning, lesser lock-in and so on. Various container orchestration platforms like Kubernetes, Google Container Engine (GKE), Amazon EC2 Container Service (Amazon ECS) help in quick deployment and easy management of your containerized applications. But in order to use these platforms, you need to migrate your legacy applications to containers or rewrite/redeploy your applications from scratch with the containerization approach. Rearchitecting your applications using containerization approach is preferable, but is that possible for complex legacy applications? Is your deployment team capable enough to list down each and every detail about the deployment process of your application? Do you have the patience of authoring a Docker file for each of the components of your complex application stack?

    Automated migrations!

    Velotio has been helping customers with automated migration of VMs and bare-metal servers to various container platforms. We have developed automation to convert these migrated applications as containers on various container deployment platforms like GKE, Amazon ECS and Kubernetes. In this blog post, we will cover one such migration tool developed at Velotio which will migrate your application running on a VM or physical machine to Google Container Engine (GKE) by running a single command.

    Migration tool details

    We have named our migration tool as A2C(Anything to Container). It can migrate applications running on any Unix or Windows operating system. 

    The migration tool requires the following information about the server to be migrated:

    • IP of the server
    • SSH User, SSH Key/Password of the application server
    • Configuration file containing data paths for application/database/components (more details below)
    • Required name of your docker image (The docker image that will get created for your application)
    • GKE Container Cluster details

    In order to store persistent data, volumes can be defined in container definition. Data changes done on volume path remain persistent even if the container is killed or crashes. Volumes are basically filesystem path from host machine on which your container is running, NFS or cloud storage. Containers will mount the filesystem path from your local machine to container, leading to data changes being written on the host machine filesystem instead of the container’s filesystem. Our migration tool supports data volumes which can be defined in the configuration file. It will automatically create disks for the defined volumes and copy data from your application server to these disks in a consistent way.

    The configuration file we have been talking about is basically a YAML file containing filesystem level information about your application server. A sample of this file can be found below:

    includes:
    - /
    volumes:
    - var/log/httpd
    - var/log/mariadb
    - var/www/html
    - var/lib/mysql
    excludes:
    - mnt
    - var/tmp
    - etc/fstab
    - proc
    - tmp

    The configuration file contains 3 sections: includes, volumes and excludes:

    • Includes contains filesystem paths on your application server which you want to add to your container image.
    • Volumes contain filesystem paths on your application server which stores your application data. Generally, filesystem paths containing database files, application code files, configuration files, log files are good candidates for volumes.
    • The excludes section contains filesystem paths which you don’t want to make part of the container. This may include temporary filesystem paths like /proc, /tmp and also NFS mounted paths. Ideally, you would include everything by giving “/” in includes section and exclude specifics in exclude section.

    Docker image name to be given as input to the migration tool is the docker registry path in which the image will be stored, followed by the name and tag of the image. Docker registry is like GitHub of docker images, where you can store all your images. Different versions of the same image can be stored by giving version specific tag to the image. GKE also provides a Docker registry. Since in this demo we are migrating to GKE, we will also store our image to GKE registry.

    GKE container cluster details to be given as input to the migration tool, contains GKE specific details like GKE project name, GKE container cluster name and GKE region name. A container cluster can be created in GKE to host the container applications. We have a separate set of scripts to perform cluster creation operation. Container cluster creation can also be done easily through GKE UI. For now, we will assume that we have a 3 node cluster created in GKE, which we will use to host our application.

    Tasks performed under migration

    Our migration tool (A2C), performs the following set of activities for migrating the application running on a VM or physical machine to GKE Container Cluster:

    1. Install the A2C migration tool with all it’s dependencies to the target application server

    2. Create a docker image of the application server, based on the filesystem level information given in the configuration file

    3. Capture metadata from the application server like configured services information, port usage information, network configuration, external services, etc.

    4.  Push the docker image to GKE container registry

    5. Create disk in Google Cloud for each volume path defined in configuration file and prepopulate disks with data from application server

    6. Create deployment spec for the container application in GKE container cluster, which will open the required ports, configure required services, add multi container dependencies, attach the pre populated disks to containers, etc.

    7. Deploy the application, after which you will have your application running as containers in GKE with application software in running state. New application URL’s will be given as output.

    8. Load balancing, HA will be configured for your application.

    Demo

    For demonstration purpose, we will deploy a LAMP stack (Apache+PHP+Mysql) on a CentOS 7 VM and will run the migration utility for the VM, which will migrate the application to our GKE cluster. After the migration we will show our application preconfigured with the same data as on our VM, running on GKE.

    Step 1

    We setup LAMP stack using Apache, PHP and Mysql on a CentOS 7 VM in GCP. The PHP application can be used to list, add, delete or edit user data. The data is getting stored in MySQL database. We added some data to the database using the application and the UI would show the following:

    Step 2

    Now we run the A2C migration tool, which will migrate this application stack running on a VM into a container and auto-deploy it to GKE.

    # ./migrate.py -c lamp_data_handler.yml -d "tcp://35.202.201.247:4243" -i migrate-lamp -p glassy-chalice-XXXXX -u root -k ~/mykey -l a2c-host --gcecluster a2c-demo --gcezone us-central1-b 130.211.231.58

    Pushing converter binary to target machine
    Pushing data config to target machine
    Pushing installer script to target machine
    Running converter binary on target machine
    [130.211.231.58] out: creating docker image
    [130.211.231.58] out: image created with id 6dad12ba171eaa8615a9c353e2983f0f9130f3a25128708762228f293e82198d
    [130.211.231.58] out: Collecting metadata for image
    [130.211.231.58] out: Generating metadata for cent7
    [130.211.231.58] out: Building image from metadata
    Pushing the docker image to GCP container registryInitiate remote data copy
    Activated service account credentials for: [glassy-chaliceXXXXX@appspot.gserviceaccount.com]
    for volume var/log/httpd
    Creating disk migrate-lamp-0
    Disk Created Successfully
    transferring data from sourcefor volume var/log/mariadb
    Creating disk migrate-lamp-1
    Disk Created Successfully
    transferring data from sourcefor volume var/www/html
    Creating disk migrate-lamp-2
    Disk Created Successfully
    transferring data from sourcefor volume var/lib/mysql
    Creating disk migrate-lamp-3
    Disk Created Successfully
    transferring data from sourceConnecting to GCP cluster for deployment
    Created service file /tmp/gcp-service.yaml
    Created deployment file /tmp/gcp-deployment.yaml

    Deploying to GKE

    $ kubectl get pod
    
    NAMEREADY STATUSRESTARTS AGE
    migrate-lamp-3707510312-6dr5g 0/1 ContainerCreating 058s

    $ kubectl get deployment
    
    NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
    migrate-lamp 1 1 10 1m

    $ kubectl get service
    
    NAME CLUSTER-IP EXTERNAL-IP PORT(S)AGE
    kubernetes 10.59.240.1443/TCP23hmigrate-lamp 10.59.248.44 35.184.53.100 3306:31494/TCP,80:30909/TCP,22:31448/TCP 53s

    You can access your application using above connection details!

    Step 3

    Access LAMP stack on GKE using the IP 35.184.53.100 on default 80 port as was done on the source machine.

    Here is the Docker image being created in GKE Container Registry:

    We can also see that disks were created with migrate-lamp-x, as part of this automated migration.

    Load Balancer also got provisioned in GCP as part of the migration process

    Following service files and deployment files were created by our migration tool to deploy the application on GKE:

    # cat /tmp/gcp-service.yaml
    apiVersion: v1
    kind: Service
    metadata:
    labels:
    app: migrate-lamp
    name: migrate-lamp
    spec:
    ports:
    - name: migrate-lamp-3306
    port: 3306
    - name: migrate-lamp-80
    port: 80
    - name: migrate-lamp-22
    port: 22
    selector:
    app: migrate-lamp
    type: LoadBalancer

    # cat /tmp/gcp-deployment.yaml
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
    labels:
    app: migrate-lamp
    name: migrate-lamp
    spec:
    replicas: 1
    selector:
    matchLabels:
    app: migrate-lamp
    template:
    metadata:
    labels:
    app: migrate-lamp
    spec:
    containers:
    - image: us.gcr.io/glassy-chalice-129514/migrate-lamp
    name: migrate-lamp
    ports:
    - containerPort: 3306
    - containerPort: 80
    - containerPort: 22
    securityContext:
    privileged: true
    volumeMounts:
    - mountPath: /var/log/httpd
    name: migrate-lamp-var-log-httpd
    - mountPath: /var/www/html
    name: migrate-lamp-var-www-html
    - mountPath: /var/log/mariadb
    name: migrate-lamp-var-log-mariadb
    - mountPath: /var/lib/mysql
    name: migrate-lamp-var-lib-mysql
    volumes:
    - gcePersistentDisk:
    fsType: ext4
    pdName: migrate-lamp-0
    name: migrate-lamp-var-log-httpd
    - gcePersistentDisk:
    fsType: ext4
    pdName: migrate-lamp-2
    name: migrate-lamp-var-www-html
    - gcePersistentDisk:
    fsType: ext4
    pdName: migrate-lamp-1
    name: migrate-lamp-var-log-mariadb
    - gcePersistentDisk:
    fsType: ext4
    pdName: migrate-lamp-3
    name: migrate-lamp-var-lib-mysql

    Conclusion

    Migrations are always hard for IT and development teams. At Velotio, we have been helping customers to migrate to cloud and container platforms using streamlined processes and automation. Feel free to reach out to us at contact@rsystems.com to know more about our cloud and container adoption/migration offerings.