Tag: kubernetes

  • Learn How to Quickly Setup Istio Using GKE and its Applications

    In this blog, we will try to understand Istio and its YAML configurations. You will also learn why Istio is great for managing traffic and how to set it up using Google Kubernetes Engine (GKE). I’ve also shed some light on deploying Istio in various environments and applications like intelligent routing, traffic shifting, injecting delays, and testing the resiliency of your application.

    What is Istio?

    The Istio’s website says it is “An open platform to connect, manage, and secure microservices”.

    As a network of microservices known as ‘Service Mesh’ grows in size and complexity, it can become tougher to understand and manage. Its requirements can include discovery, load balancing, failure recovery, metrics, and monitoring, and often more complex operational requirements such as A/B testing, canary releases, rate limiting, access control, and end-to-end authentication. Istio claims that it provides complete end to end solution to these problems.

    Why Istio?

    • Provides automatic load balancing for various protocols like HTTP, gRPC, WebSocket, and TCP traffic. It means you can cater to the needs of web services and also frameworks like Tensorflow (it uses gRPC).
    • To control the flow of traffic and API calls between services, make calls more reliable, and make the network more robust in the face of adverse conditions.
    • To gain understanding of the dependencies between services and the nature and flow of traffic between them, providing the ability to quickly identify issues etc.

    Let’s explore the architecture of Istio.

    Istio’s service mesh is split logically into two components:

    1. Data plane – set of intelligent proxies (Envoy) deployed as sidecars to the microservice they control communications between microservices.
    2. Control plane – manages and configures proxies to route traffic. It also enforces policies.

    Envoy – Istio uses an extended version of envoy (L7 proxy and communication bus designed for large modern service-oriented architectures) written in C++. It manages inbound and outbound traffic for service mesh.

    Enough of theory, now let us setup Istio to see things in action. A notable point is that Istio is pretty fast. It’s written in Go and adds a very tiny overhead to your system.

    Setup Istio on GKE

    You can either setup Istio via command line or via UI. We have used command line installation for this blog.

    Sample Book Review Application

    Following this link, you can easily

    The Bookinfo application is broken into four separate microservices:

    • productpage. The productpage microservice calls the details and reviews microservices to populate the page.
    • details. The details microservice contains book information.
    • reviews. The reviews microservice contains book reviews. It also calls the ratings microservice.
    • ratings. The ratings microservice contains book ranking information that accompanies a book review.

    There are 3 versions of the reviews microservice:

    • Version v1 doesn’t call the ratings service.
    • Version v2 calls the ratings service and displays each rating as 1 to 5 black stars.
    • Version v3 calls the ratings service and displays each rating as 1 to 5 red stars.

    The end-to-end architecture of the application is shown below.

    If everything goes well, You will have a web app like this (served at http://GATEWAY_URL/productpage)

    Let’s take a case where 50% of traffic is routed to v1 and the remaining 50% to v3.

    This is how the config file looks like (/path/to/istio-0.2.12/samples/bookinfo/kube/route-rule-reviews-50-v3.yaml) 

    apiVersion: config.istio.io/v1alpha2
    kind: RouteRule
    metadata:
      name: reviews-default
    spec:
      destination:
        name: reviews
      precedence: 1
      route:
      - labels:
          version: v1
        weight: 50
      - labels:
          version: v3
        weight: 50

    Let’s try to understand the config file above.

    Istio provides a simple Domain-specific language (DSL) to control how API calls and layer-4 traffic flow across various services in the application deployment.

    In the above configuration, we are trying to Add a “Route Rule”. It means we will be routing the traffic coming to destinations. The destination is the name of the service to which the traffic is being routed. The route labels identify the specific service instances that will receive traffic.

    In this Kubernetes deployment of Istio, the route label “version: v1” and “version: v3” indicates that only pods containing the label “version: v1” and “version: v3” will receive 50% traffic each.

    Now multiple route rules could be applied to the same destination. The order of evaluation of rules corresponding to a given destination, when there is more than one, can be specified by setting the precedence field of the rule.

    The precedence field is an optional integer value, 0 by default. Rules with higher precedence values are evaluated first. If there is more than one rule with the same precedence value the order of evaluation is undefined.

    When is precedence useful? Whenever the routing story for a particular service is purely weight based, it can be specified in a single rule.

    Once a rule is found that applies to the incoming request, it will be executed and the rule-evaluation process will terminate. That’s why it’s very important to carefully consider the priorities of each rule when there is more than one.

    In short, it means route label “version: v1” is given preference over route label “version: v3”.

    Intelligent Routing Using Istio

    We will demonstrate an example in which we will be aiming to get more control over routing the traffic coming to our app. Before reading ahead, make sure that you have installed Istio and book review application.

    First, we will set a default version for all microservices.

    > kubectl create -f samples/bookinfo/kube/route-rule-all-v1.yaml

    Then wait a few seconds for the rules to propagate to all pods before attempting to access the application. This will set the default route to v1 version (which doesn’t call rating service). Now we want a specific user, say Velotio, to see v2 version. We write a yaml (test-velotio.yaml) file.

    apiVersion: config.istio.io/v1alpha2
    kind: RouteRule
    metadata:
      name: test-velotio
      namespace: default
      ...
    spec:
      destination:
        name: reviews
      match:
        request:
          headers:
            cookie:
              regex: ^(.*?;)?(user=velotio)(;.*)?$
      precedence: 2
      route:
      - labels:
          version: v2

    We then set this rule

    > kubectl create -f path/to/test-velotio.yml

    Now if any other user logs in it won’t see any ratings (it will see v1 version) but when “velotio” user logs in it will see v2 version!

    This is how we can intelligently do content-based routing. We used Istio to send 100% of the traffic to the v1 version of each of the Bookinfo services. You then set a rule to selectively send traffic to version v2 of the reviews service based on a header (i.e., a user cookie) in a request.

    Traffic Shifting

    Now Let’s take a case in which we have to shift traffic from an old service to a new service.

    We can use Istio to gradually transfer traffic from one microservice to another one. For example, we can move 10, 20, 25..100% of traffic. Here for simplicity of the blog, we will move traffic from reviews:v1 to reviews:v3 in two steps 40% to 100%.

    First, we set the default version v1.

    > kubectl create -f samples/bookinfo/kube/route-rule-all-v1.yaml

    We write a yaml file route-rule-reviews-40-v3.yaml

    apiVersion: config.istio.io/v1alpha2
    kind: RouteRule
    metadata:
      name: reviews-default
      namespace: default
    spec:
      destination:
        name: reviews
      precedence: 1
      route:
      - labels:
          version: v1
        weight: 60
      - labels:
          version: v3
        weight: 40

    Then we apply a new rule.

    > kubectl create -f path/to/route-rule-reviews-40-v3.yaml

    Now, Refresh the productpage in your browser and you should now see red colored star ratings approximately 40% of the time. Once that is stable, we transfer all the traffic to v3.

    > istioctl replace -f samples/bookinfo/kube/route-rule-reviews-v3.yaml

    Inject Delays and Test the Resiliency of Your Application

    Here we will check fault injection using HTTP delay. To test our Bookinfo application microservices for resiliency, we will inject a 7s delay between the reviews:v2 and ratings microservices, for user “Jason”. Since the reviews:v2 service has a 10s timeout for its calls to the ratings service, we expect the end-to-end flow to continue without any errors.

    > istioctl create -f samples/bookinfo/kube/route-rule-ratings-test-delay.yaml

    Now we check if the rule was applied correctly,

    > istioctl get routerule ratings-test-delay -o yaml

    Now we allow several seconds to account for rule propagation delay to all pods. Log in as user “Jason”. If the application’s front page was set to correctly handle delays, we expect it to load within approximately 7 seconds.

    Conclusion

    In this blog we only explored the routing capabilities of Istio. We found Istio to give us good amount of control over routing, fault injection etc in microservices. Istio has a lot more to offer like load balancing and security. We encourage you guys to toy around with Istio and tell us about your experiences.

    Happy Coding!

  • 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.
  • Demystifying High Availability in Kubernetes Using Kubeadm

    Introduction

    The rise of containers has reshaped the way we develop, deploy and maintain the software. Containers allow us to package the different services that constitute an application into separate containers, and to deploy those containers across a set of virtual and physical machines. This gives rise to container orchestration tool to automate the deployment, management, scaling and availability of a container-based application. Kubernetes allows deployment and management of container-based applications at scale. Learn more about backup and disaster recovery for your Kubernetes clusters.

    One of the main advantages of Kubernetes is how it brings greater reliability and stability to the container-based distributed application, through the use of dynamic scheduling of containers. But, how do you make sure Kubernetes itself stays up when a component or its master node goes down?
     

     

    Why we need Kubernetes High Availability?

    Kubernetes High-Availability is about setting up Kubernetes, along with its supporting components in a way that there is no single point of failure. A single master cluster can easily fail, while a multi-master cluster uses multiple master nodes, each of which has access to same worker nodes. In a single master cluster the important component like API server, controller manager lies only on the single master node and if it fails you cannot create more services, pods etc. However, in case of Kubernetes HA environment, these important components are replicated on multiple masters(usually three masters) and if any of the masters fail, the other masters keep the cluster up and running.

    Advantages of multi-master

    In the Kubernetes cluster, the master node manages the etcd database, API server, controller manager, and scheduler, along with all the worker nodes. What if we have only a single master node and if that node fails, all the worker nodes will be unscheduled and the cluster will be lost.

    In a multi-master setup, by contrast, a multi-master provides high availability for a single cluster by running multiple apiserver, etcd, controller-manager, and schedulers. This does not only provides redundancy but also improves network performance because all the masters are dividing the load among themselves.

    A multi-master setup protects against a wide range of failure modes, from a loss of a single worker node to the failure of the master node’s etcd service. By providing redundancy, a multi-master cluster serves as a highly available system for your end-users.

    Steps to Achieve Kubernetes HA

    Before moving to steps to achieve high-availability, let us understand what we are trying to achieve through a diagram:

    (Image Source: Kubernetes Official Documentation)

    Master Node: Each master node in a multi-master environment run its’ own copy of Kube API server. This can be used for load balancing among the master nodes. Master node also runs its copy of the etcd database, which stores all the data of cluster. In addition to API server and etcd database, the master node also runs k8s controller manager, which handles replication and scheduler, which schedules pods to nodes.

    Worker Node: Like single master in the multi-master cluster also the worker runs their own component mainly orchestrating pods in the Kubernetes cluster. We need 3 machines which satisfy the Kubernetes master requirement and 3 machines which satisfy the Kubernetes worker requirement.

    For each master, that has been provisioned, follow the installation guide to install kubeadm and its dependencies. In this blog we will use k8s 1.10.4 to implement HA.

    Note: Please note that cgroup driver for docker and kubelet differs in some version of k8s, make sure you change cgroup driver to cgroupfs for docker and kubelet. If cgroup driver for kubelet and docker differs then the master doesn’t come up when rebooted.

    Setup etcd cluster

    1. Install cfssl and cfssljson

    $ curl -o /usr/local/bin/cfssl https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 
    $ curl -o /usr/local/bin/cfssljson https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
    $ chmod +x /usr/local/bin/cfssl*
    $ export PATH=$PATH:/usr/local/bin

    2 . Generate certificates on master-0

    $ mkdir -p /etc/kubernetes/pki/etcd
    $ cd /etc/kubernetes/pki/etcd

    3. Create config.json file in /etc/kubernetes/pki/etcd folder with following content.

    {
        "signing": {
            "default": {
                "expiry": "43800h"
            },
            "profiles": {
                "server": {
                    "expiry": "43800h",
                    "usages": [
                        "signing",
                        "key encipherment",
                        "server auth",
                        "client auth"
                    ]
                },
                "client": {
                    "expiry": "43800h",
                    "usages": [
                        "signing",
                        "key encipherment",
                        "client auth"
                    ]
                },
                "peer": {
                    "expiry": "43800h",
                    "usages": [
                        "signing",
                        "key encipherment",
                        "server auth",
                        "client auth"
                    ]
                }
            }
        }
    }

    4. Create ca-csr.json file in /etc/kubernetes/pki/etcd folder with following content.

    {
        "CN": "etcd",
        "key": {
            "algo": "rsa",
            "size": 2048
        }
    }

    5. Create client.json file in /etc/kubernetes/pki/etcd folder with following content.

    {
        "CN": "client",
        "key": {
            "algo": "ecdsa",
            "size": 256
        }
    }

    $ cfssl gencert -initca ca-csr.json | cfssljson -bare ca -
    $ cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=client client.json | cfssljson -bare client

    6. Create a directory  /etc/kubernetes/pki/etcd on master-1 and master-2 and copy all the generated certificates into it.

    7. On all masters, now generate peer and etcd certs in /etc/kubernetes/pki/etcd. To generate them, we need the previous CA certificates on all masters.

    $ export PEER_NAME=$(hostname)
    $ export PRIVATE_IP=$(ip addr show eth0 | grep -Po 'inet K[d.]+')
    
    $ cfssl print-defaults csr > config.json
    $ sed -i 's/www.example.net/'"$PRIVATE_IP"'/' config.json
    $ sed -i 's/example.net/'"$PEER_NAME"'/' config.json
    $ sed -i '0,/CN/{s/example.net/'"$PEER_NAME"'/}' config.json
    
    $ cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=server config.json | cfssljson -bare server
    $ cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=peer config.json | cfssljson -bare peer

    This will replace the default configuration with your machine’s hostname and IP address, so in case if you encounter any problem just check the hostname and IP address are correct and rerun cfssl command.

    8. On all masters, Install etcd and set it’s environment file.

    $ yum install etcd -y
    $ touch /etc/etcd.env
    $ echo "PEER_NAME=$PEER_NAME" >> /etc/etcd.env
    $ echo "PRIVATE_IP=$PRIVATE_IP" >> /etc/etcd.env

    9. Now, we will create a 3 node etcd cluster on all 3 master nodes. Starting etcd service on all three nodes as systemd. Create a file /etc/systemd/system/etcd.service on all masters.

    [Unit]
    Description=etcd
    Documentation=https://github.com/coreos/etcd
    Conflicts=etcd.service
    Conflicts=etcd2.service
    
    [Service]
    EnvironmentFile=/etc/etcd.env
    Type=notify
    Restart=always
    RestartSec=5s
    LimitNOFILE=40000
    TimeoutStartSec=0
    
    ExecStart=/bin/etcd --name <host_name>  --data-dir /var/lib/etcd --listen-client-urls http://<host_private_ip>:2379,http://127.0.0.1:2379 --advertise-client-urls http://<host_private_ip>:2379 --listen-peer-urls http://<host_private_ip>:2380 --initial-advertise-peer-urls http://<host_private_ip>:2380 --cert-file=/etc/kubernetes/pki/etcd/server.pem --key-file=/etc/kubernetes/pki/etcd/server-key.pem --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.pem --peer-cert-file=/etc/kubernetes/pki/etcd/peer.pem --peer-key-file=/etc/kubernetes/pki/etcd/peer-key.pem --peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.pem --initial-cluster master-0=http://<master0_private_ip>:2380,master-1=http://<master1_private_ip>:2380,master-2=http://<master2_private_ip>:2380 --initial-cluster-token my-etcd-token --initial-cluster-state new --client-cert-auth=false --peer-client-cert-auth=false
    
    [Install]
    WantedBy=multi-user.target

    10. Ensure that you will replace the following placeholder with

    • <host_name> : Replace as the master’s hostname</host_name>
    • <host_private_ip>: Replace as the current host private IP</host_private_ip>
    • <master0_private_ip>: Replace as the master-0 private IP</master0_private_ip>
    • <master1_private_ip>: Replace as the master-1 private IP</master1_private_ip>
    • <master2_private_ip>: Replace as the master-2 private IP</master2_private_ip>

    11. Start the etcd service on all three master nodes and check the etcd cluster health:

    $ systemctl daemon-reload
    $ systemctl enable etcd
    $ systemctl start etcd
    
    $ etcdctl cluster-health

    This will show the cluster healthy and connected to all three nodes.

    Setup load balancer

    There are multiple cloud provider solutions for load balancing like AWS elastic load balancer, GCE load balancing etc. There might not be a physical load balancer available, we can setup a virtual IP load balancer to healthy node master. We are using keepalived for load balancing, install keepalived on all master nodes

    $ yum install keepalived -y

    Create the following configuration file /etc/keepalived/keepalived.conf on all master nodes:

    ! Configuration File for keepalived
    global_defs {
      router_id LVS_DEVEL
    }
    
    vrrp_script check_apiserver {
      script "/etc/keepalived/check_apiserver.sh"
      interval 3
      weight -2
      fall 10
      rise 2
    }
    
    vrrp_instance VI_1 {
        state <state>
        interface <interface>
        virtual_router_id 51
        priority <priority>
        authentication {
            auth_type PASS
            auth_pass velotiotechnologies
        }
        virtual_ipaddress {
            <virtual ip>
        }
        track_script {
            check_apiserver
        }
    }

    • state is either MASTER (on the first master nodes) or BACKUP (the other master nodes).
    • Interface is generally the primary interface, in my case it is eth0
    • Priority should be higher for master node e.g 101 and lower for others e.g 100
    • Virtual_ip should contain the virtual ip of master nodes

    Install the following health check script to /etc/keepalived/check_apiserver.sh on all master nodes:

    #!/bin/sh
    
    errorExit() {
        echo "*** $*" 1>&2
        exit 1
    }
    
    curl --silent --max-time 2 --insecure https://localhost:6443/ -o /dev/null || errorExit "Error GET https://localhost:6443/"
    if ip addr | grep -q <VIRTUAL-IP>; then
        curl --silent --max-time 2 --insecure https://<VIRTUAL-IP>:6443/ -o /dev/null || errorExit "Error GET https://<VIRTUAL-IP>:6443/"
    fi

    $ systemctl restart keepalived

    Setup three master node cluster

    Run kubeadm init on master0:

    Create config.yaml file with following content.

    apiVersion: kubeadm.k8s.io/v1alpha1
    kind: MasterConfiguration
    api:
      advertiseAddress: <master-private-ip>
    etcd:
      endpoints:
      - http://<master0-ip-address>:2379
      - http://<master1-ip-address>:2379
      - http://<master2-ip-address>:2379
      caFile: /etc/kubernetes/pki/etcd/ca.pem
      certFile: /etc/kubernetes/pki/etcd/client.pem
      keyFile: /etc/kubernetes/pki/etcd/client-key.pem
    networking:
      podSubnet: <podCIDR>
    apiServerCertSANs:
    - <load-balancer-ip>
    apiServerExtraArgs:
      endpoint-reconciler-type: lease

    Please ensure that the following placeholders are replaced:

    • <master-private-ip> with the private IPv4 of the master server on which config file resides.</master-private-ip>
    • <master0-ip-address>, <master1-ip-address> and <master-2-ip-address> with the IP addresses of your three master nodes</master-2-ip-address></master1-ip-address></master0-ip-address>
    • <podcidr> with your Pod CIDR. Please read the </podcidr>CNI network section of the docs for more information. Some CNI providers do not require a value to be set. I am using weave-net as pod network, hence podCIDR will be 10.32.0.0/12
    • <load-balancer-ip> with the virtual IP set up in the load balancer in the previous section.</load-balancer-ip>
    $ kubeadm init --config=config.yaml

    10. Run kubeadm init on master1 and master2:

    First of all copy /etc/kubernetes/pki/ca.crt, /etc/kubernetes/pki/ca.key, /etc/kubernetes/pki/sa.key, /etc/kubernetes/pki/sa.pub to master1’s and master2’s /etc/kubernetes/pki folder.

    Note: Copying this files is crucial, otherwise the other two master nodes won’t go into the ready state.

    Copy the config file config.yaml from master0 to master1 and master2. We need to change <master-private-ip> to current master host’s private IP.</master-private-ip>

    $ kubeadm init --config=config.yaml

    11. Now you can install pod network on all three masters to bring them in the ready state. I am using weave-net pod network, to apply weave-net run:

    export kubever=$(kubectl version | base64 | tr -d 'n') kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"

    12. By default, k8s doesn’t schedule any workload on the master, so if you want to schedule workload on master node as well, taint all the master nodes using the command:

    $ kubectl taint nodes --all node-role.kubernetes.io/master-

    13. Now that we have functional master nodes, we can join some worker nodes:

    Use the join string you got at the end of kubeadm init command

    $ kubeadm join 10.0.1.234:6443 --token llb1kx.azsbunpbg13tgc8k --discovery-token-ca-cert-hash sha256:1ad2a436ce0c277d0c5bd3826091e72badbd8417ffdbbd4f6584a2de588bf522

    High Availability in action

    The Kubernetes HA cluster will look like:

    [root@master-0 centos]# kubectl get nodes
    NAME       STATUS     ROLES     AGE       VERSION
    master-0   NotReady   master    4h        v1.10.4
    master-1   Ready      master    4h        v1.10.4
    master-2   Ready      master    4h        v1.10.4

    [root@master-0 centos]# kubectl get pods -n kube-system
    NAME                              READY     STATUS     RESTARTS   AGE
    kube-apiserver-master-0            1/1       Unknown    0          4h
    kube-apiserver-master-1            1/1       Running    0          4h
    kube-apiserver-master-2            1/1       Running    0          4h
    kube-controller-manager-master-0   1/1       Unknown    0          4h
    kube-controller-manager-master-1   1/1       Running    0          4h
    kube-controller-manager-master-2   1/1       Running    0          4h
    kube-dns-86f4d74b45-wh795          3/3       Running    0          4h
    kube-proxy-9ts6r                   1/1       Running    0          4h
    kube-proxy-hkbn7                   1/1       NodeLost   0          4h
    kube-proxy-sq6l6                   1/1       Running    0          4h
    kube-scheduler-master-0            1/1       Unknown    0          4h
    kube-scheduler-master-1            1/1       Running    0          4h
    kube-scheduler-master-2            1/1       Running    0          4h
    weave-net-6nzbq                    2/2       NodeLost   0          4h
    weave-net-ndx2q                    2/2       Running    0          4h
    weave-net-w2mfz                    2/2       Running    0          4h

    After failing over one master node the Kubernetes cluster is still accessible.

    [root@master-0 centos]# kubectl get nodes
    NAME       STATUS     ROLES     AGE       VERSION
    master-0   NotReady   master    4h        v1.10.4
    master-1   Ready      master    4h        v1.10.4
    master-2   Ready      master    4h        v1.10.4

    [root@master-0 centos]# kubectl get pods -n kube-system
    NAME                              READY     STATUS     RESTARTS   AGE
    kube-apiserver-master-0            1/1       Unknown    0          4h
    kube-apiserver-master-1            1/1       Running    0          4h
    kube-apiserver-master-2            1/1       Running    0          4h
    kube-controller-manager-master-0   1/1       Unknown    0          4h
    kube-controller-manager-master-1   1/1       Running    0          4h
    kube-controller-manager-master-2   1/1       Running    0          4h
    kube-dns-86f4d74b45-wh795          3/3       Running    0          4h
    kube-proxy-9ts6r                   1/1       Running    0          4h
    kube-proxy-hkbn7                   1/1       NodeLost   0          4h
    kube-proxy-sq6l6                   1/1       Running    0          4h
    kube-scheduler-master-0            1/1       Unknown    0          4h
    kube-scheduler-master-1            1/1       Running    0          4h
    kube-scheduler-master-2            1/1       Running    0          4h
    weave-net-6nzbq                    2/2       NodeLost   0          4h
    weave-net-ndx2q                    2/2       Running    0          4h
    weave-net-w2mfz                    2/2       Running    0          4h

    Even after one node failed, all the important components are up and running. The cluster is still accessible and you can create more pods, deployment services etc.

    [root@master-1 centos]# kubectl create -f nginx.yaml 
    deployment.apps "nginx-deployment" created
    [root@master-1 centos]# kubectl get pods -o wide
    NAME                                READY     STATUS    RESTARTS   AGE       IP              NODE
    nginx-deployment-75675f5897-884kc   1/1       Running   0          10s       10.117.113.98   master-2
    nginx-deployment-75675f5897-crgxt   1/1       Running   0          10s       10.117.113.2    master-1

    Conclusion

    High availability is an important part of reliability engineering, focused on making system reliable and avoid any single point of failure of the complete system. At first glance, its implementation might seem quite complex, but high availability brings tremendous advantages to the system that requires increased stability and reliability. Using highly available cluster is one of the most important aspects of building a solid infrastructure.

  • Exploring Upgrade Strategies for Stateful Sets in Kubernetes

    Introduction

    In the age of continuous delivery and agility where the software is being deployed 10s of times per day and sometimes per hour as well using container orchestration platforms, a seamless upgrade mechanism becomes a critical aspect of any technology adoption, Kubernetes being no exception. 

    Kubernetes provides a variety of controllers that define how pods are set up and deployed within the Kubernetes cluster. These controllers can group pods together according to their runtime needs and can be used to define pod replication and pod startup ordering. Kubernetes controllers are nothing but an application pattern. The controller controls the pods(smallest unit in Kubernetes), so, you don’t need to create, manage and delete the pods. There are few types of controllers in Kubernetes like,

    1. Deployment
    2. Statefulset
    3. Daemonset
    4. Job
    5. Replica sets

    Each controller represents an application pattern. For example, Deployment represents the stateless application pattern in which you don’t store the state of your application. Statefulset represents the statefulset application pattern where you store the data, for example, databases, message queues.  We will be focusing on Statefulset controller and its update feature in this blog.

    Statefulset

    The StatefulSet acts as a controller in Kubernetes to deploy applications according to a specified rule set and is aimed towards the use of persistent and stateful applications. It is an ordered and graceful deployment. Statefulset is generally used with a distributed applications that require each node to have a persistent state and the ability to configure an arbitrary number of nodes. StatefulSet pods have a unique identity that is comprised of an ordinal, a stable network identity, and stable storage. The identity sticks to the pod, regardless of which node it’s scheduled on. For more details check here.

    Update Strategies FOR STATEFULSETS

    There are a couple of different strategies available for upgrades – Blue/Green and Rolling updates. Let’s review them in detail:

    Blue-Green DeploymentBlue-green deployment is one of the commonly used update strategies. There are 2 identical environments of your application in this strategy. One is the Blue environment which is running the current deployment and the Green environment is the new deployment to which we want to upgrade. The approach is simple:

    1. Switch the load balancer to route traffic to the Green environment.
    2. Delete the Blue environment once the Green environment is verified. 

    Disadvantages of Blue-Green deployment:

    1. One of the disadvantages of this strategy is that all current transactions and sessions will be lost, due to the physical switch from one machine serving the traffic to another one.
    2. Implementing blue-green deployment become complex with the database, especially if, the database schema changes across version.
    3. In blue-green deployment, you need the extra cloud setup/hardware which increases the overall costing.

    Rolling update strategy

    After Blue-Green deployment, let’s take a look at Rolling updates and how it works.

    1. In short, as the name suggests this strategy replaces currently running instances of the application with new instances, one by one. 
    2. In this strategy, health checks play an important role i.e. old instances of the application are removed only if new version are healthy. Due to this, the existing deployment becomes heterogeneous while moving from the old version of the application to new version. 
    3. The benefit of this strategy is that its incremental approach to roll out the update and verification happens in parallel while increasing traffic to the application.
    4. In rolling update strategy, you don’t need extra hardware/cloud setup and hence it’s cost-effective technique of upgrade.

    Statefulset upgrade strategies

    With the basic understanding of upgrade strategies, let’s explore the update strategies available for Stateful sets in Kubernetes. Statefulsets are used for databases where the state of the application is the crucial part of the deployment. We will take the example of Cassandra to learn about statefulset upgrade feature. We will use the gce-pd storage to store the data. StatefulSets(since Kubernetes 1.7) uses an update strategy to configure and disable automated rolling updates for containers, labels, resource request/limits, and annotations for its pods. The update strategy is configured using the updateStrategy field.

    The updateStrategy field accepts one of the following value 

    1. OnDelete
    2. RollingUpdate

    OnDelete update strategy

    OnDelete prevents the controller from automatically updating its pods. One needs to delete the pod manually for the changes to take effect. It’s more of a manual update process for the Statefulset application and this is the main difference between OnDelete and RollingUpdate strategy. OnDelete update strategy plays an important role where the user needs to perform few action/verification post the update of each pod. For example, after updating a single pod of Cassandra user might need to check if the updated pod joined the Cassandra cluster correctly.

    We will now create a Statefulset deployment first. Let’s take a simple example of Cassandra and deploy it using a Statefulset controller. Persistent storage is the key point in Statefulset controller. You can read more about the storage class here.

    For the purpose of this blog, we will use the Google Kubernetes Engine.

    • First, define the storage class as follows:
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: fast
    provisioner: kubernetes.io/gce-pd
    parameters:
      type: pd-ssd

    • Then create the Storage class using kubectl:
    $ kubectl create -f storage_class.yaml

    • Here is the YAML file for the Cassandra service and the Statefulset deployment.
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: cassandra
      name: cassandra
    spec:
      clusterIP: None
      ports:
      - port: 9042
      selector:
        app: cassandra
    ---
    apiVersion: apps/v1beta2
    kind: StatefulSet
    metadata:
      name: cassandra
      labels:
        app: cassandra
    spec:
      serviceName: cassandra
      replicas: 3
      updateStrategy:
        type: OnDelete
      selector:
        matchLabels:
          app: cassandra
      template:
        metadata:
          labels:
            app: cassandra
        spec:
          terminationGracePeriodSeconds: 1800
          containers:
          - name: cassandra
            image: gcr.io/google-samples/cassandra:v12
            imagePullPolicy: Always
            ports:
            - containerPort: 7000
              name: intra-node
            - containerPort: 7001
              name: tls-intra-node
            - containerPort: 7199
              name: jmx
            - containerPort: 9042
              name: cql
            resources:
              limits:
                cpu: "500m"
                memory: 1Gi
              requests:
               cpu: "500m"
               memory: 1Gi
            securityContext:
              capabilities:
                add:
                  - IPC_LOCK
            lifecycle:
              preStop:
                exec:
                  command: 
                  - /bin/sh
                  - -c
                  - nodetool drain
            env:
              - name: MAX_HEAP_SIZE
                value: 512M
              - name: HEAP_NEWSIZE
                value: 100M
              - name: CASSANDRA_SEEDS
                value: "cassandra-0.cassandra.default.svc.cluster.local"
              - name: CASSANDRA_CLUSTER_NAME
                value: "K8Demo"
              - name: CASSANDRA_DC
                value: "DC1-K8Demo"
              - name: CASSANDRA_RACK
                value: "Rack1-K8Demo"
              - name: POD_IP
                valueFrom:
                  fieldRef:
                    fieldPath: status.podIP
            readinessProbe:
              exec:
                command:
                - /bin/bash
                - -c
                - /ready-probe.sh
              initialDelaySeconds: 15
              timeoutSeconds: 5
            volumeMounts:
            - name: cassandra-data
              mountPath: /cassandra_data
      volumeClaimTemplates:
      - metadata:
          name: cassandra-data
        spec:
          accessModes: [ "ReadWriteOnce" ]
          storageClassName: "fast"
          resources:
            requests:
              storage: 5Gi

    • Let’s create the Statefulset now.
    $ kubectl create -f cassandra.yaml

    • After creating Cassandra Statefulset, if you check the running pods then you will find something like,
    $ kubectl get podsNAME READY STATUS RESTARTS AGE
    cassandra-0 1/1 Running 0 2m
    cassandra-1 1/1 Running 0 2m
    cassandra-2 1/1 Running 0 2m

    • Check if Cassandra cluster is formed correctly using following command:
    $ kubectl exec -it cassandra-0 -- nodetool statusDatacenter: DC1-K8Demo
    #ERROR!
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    
    Address Load Tokens Owns Host ID Rack
    UN 192.168.4.193 101.15 KiB 32 72.0% abd9f52d-85ef-44ee-863c-e1b174cd9412 Rack1-K8Demo
    UN 192.168.199.67 187.81 KiB 32 72.8% c40e89e4-44fe-4fc2-9e8a-863b6a74c90c Rack1-K8Demo
    UN 192.168.187.196 131.42 KiB 32 55.2% c235505c-eec5-43bc-a4d9-350858814fe5 Rack1-K8Demo

    • Let’s describe the running pod first before updating. Look for the image field in the output of the following command
    $ kubectl describe pod cassandra-0

    • The Image field will show gcr.io/google-samples/cassandra:v12 . Now, let’s patch the Cassandra statefulset with the latest image to which we want to update. The latest image might contain the new Cassandra version or database schema changes. Before upgrading such crucial components, it’s always safe to have the backup of the data,
    $ kubectl patch statefulset cassandra --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value":"gcr.io/google-samples/cassandra:v13"}]'

    You will see output as `statefulset.apps “cassandra” patched`, but controller won’t update the running pod automatically in this strategy. You need to delete the pods once and wait till pods with new configuration comes up. Let’s try deleting the cassandra-0 pod.

    $ kubectl delete pod cassandra-0

    • Wait till cassandra-0 comes up in running state and then check if the cassandra-0 is running with intended/updated image i.e. gcr.io/google-samples/cassandra:v13 Now, cassandra-0 is running the new image while cassandra-1 and cassandra-2 are still running the old image. You need to delete these pods for the new image to take effect in this strategy.

    Rolling update strategy

    Rolling update is an automated update process. In this, the controller deletes and then recreates each of its pods. Pods get updated one at a time. While updating, the controller makes sure that an updated pod is running and is in ready state before updating its predecessor. The pods in the StatefulSet are updated in reverse ordinal order(same as pod termination order i.e from the largest ordinal to the smallest)

    For the rolling update strategy, we will create the Cassandra statefulset with the .spec.updateStrategy field pointing to RollingUpdate

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: cassandra
      name: cassandra
    spec:
      clusterIP: None
      ports:
      - port: 9042
      selector:
        app: cassandra
    ---
    apiVersion: apps/v1beta2
    kind: StatefulSet
    metadata:
      name: cassandra
      labels:
        app: cassandra
    spec:
      serviceName: cassandra
      replicas: 3
      updateStrategy:
        type: RollingUpdate
      selector:
        matchLabels:
          app: cassandra
      template:
        metadata:
          labels:
            app: cassandra
        spec:
          terminationGracePeriodSeconds: 1800
          containers:
          - name: cassandra
            image: gcr.io/google-samples/cassandra:v12
            imagePullPolicy: Always
            ports:
            - containerPort: 7000
              name: intra-node
            - containerPort: 7001
              name: tls-intra-node
            - containerPort: 7199
              name: jmx
            - containerPort: 9042
              name: cql
            resources:
              limits:
                cpu: "500m"
                memory: 1Gi
              requests:
               cpu: "500m"
               memory: 1Gi
            securityContext:
              capabilities:
                add:
                  - IPC_LOCK
            lifecycle:
              preStop:
                exec:
                  command: 
                  - /bin/sh
                  - -c
                  - nodetool drain
            env:
              - name: MAX_HEAP_SIZE
                value: 512M
              - name: HEAP_NEWSIZE
                value: 100M
              - name: CASSANDRA_SEEDS
                value: "cassandra-0.cassandra.default.svc.cluster.local"
              - name: CASSANDRA_CLUSTER_NAME
                value: "K8Demo"
              - name: CASSANDRA_DC
                value: "DC1-K8Demo"
              - name: CASSANDRA_RACK
                value: "Rack1-K8Demo"
              - name: POD_IP
                valueFrom:
                  fieldRef:
                    fieldPath: status.podIP
            readinessProbe:
              exec:
                command:
                - /bin/bash
                - -c
                - /ready-probe.sh
              initialDelaySeconds: 15
              timeoutSeconds: 5
            volumeMounts:
            - name: cassandra-data
              mountPath: /cassandra_data
      volumeClaimTemplates:
      - metadata:
          name: cassandra-data
        spec:
          accessModes: [ "ReadWriteOnce" ]
          storageClassName: "fast"
          resources:
            requests:
              storage: 5Gi

    • To try the rolling update feature, we can patch the existing statefulset with the updated image.
    $ kubectl patch statefulset cassandra --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value":"gcr.io/google-samples/cassandra:v13"}]'

    • Once you execute the above command, monitor the output of the following command,
    $ kubectl get pods -w

    In the case of failure in update process, controller restores any pod that fails during the update to its current version i.e. pods that have already received the update will be restored to the updated version, and pods that have not yet received the update will be restored to the previous version.

    Partitioning a RollingUpdate (Staging an Update)

    The updateStrategy contains one more field for partitioning the RollingUpdate. If a partition is specified, all pods with an ordinal greater than or equal to that of the provided partition will be updated and the pods with an ordinal that is less than the partition will not be updated. If the pods with an ordinal value less than the partition get deleted, then those pods will get recreated with the old definition/version. This partitioning rolling update feature plays important role in the scenario where if you want to stage an update, roll out a canary, or perform a phased rollout.

    RollingUpdate supports partitioning option. You can define the partition parameter in the .spec.updateStrategy

    $ kubectl patch statefulset cassandra -p '{"spec":{"updateStrategy":{"type":"RollingUpdate","rollingUpdate":{"partition":2}}}}'

    In the above command, we are giving partition value as 2, which will patch the Cassandra statefulset in such a way that, whenever we try to update the Cassandra statefulset, it will update the cassandra-2 pod only. Let’s try to patch the updated image to existing statefulset.

    $ kubectl patch statefulset cassandra --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value":"gcr.io/google-samples/cassandra:v14"}]'

    After patching, watch the following command output,

    $ kubectl get pods -w

    You can keep decrementing the partition value and that many pods will keep taking the effect of the applied patch. For example, if you patch the statefulset with partition=0 then all the pods of the Cassandra statefulset will get updated with provided upgrade configuration.

    Verifying if the upgrade was successful

    Verifying the upgrade process of your application is the important step to conclude the upgrade. This step might differ as per the application. Here, in the blog we have taken the Cassandra example, so we will verify if the cluster of the Cassandra nodes is being formed properly.

    Use `nodetool status` command to verify the cluster. After upgrading all the pods, you might want to run some post-processing like migrating schema if your upgrade dictates that etc.

    As per the upgrade strategy, verification of your application can be done by following ways.

    1. In OnDelete update strategy, you can keep updating pod one by one and keep checking the application status to make sure the upgrade working fine.
    2. In RollingUpdate strategy, you can check the application status once all the running pods of your application gets upgraded.

    For Cassandra like application, OnDelete update is more preferred than RollingUpdate. In rolling update, we saw that Cassandra pod gets updated one by one, starting from high to low ordinal index. There might be the case where after updating 2 pods, Cassandra cluster might go in failed state but you can not recover it like the OnDelete strategy. You have to try to recover Cassandra once the complete upgrade is done i.e. once all the pods get upgraded to provided image. If you have to use the rolling update then try partitioning the rolling update.

    Conclusion

    In this blog, we went through the Kubernetes controllers and mainly through statefulsets. We learnt about the differences between blue-green deployment and rolling update strategies then we played with the Cassandra statefulset example and successfully upgraded it with update strategies like OnDelete and RollingUpdate. Do let us know if you have any questions, queries and additional thoughts in the comments section below.

  • Extending Kubernetes APIs with Custom Resource Definitions (CRDs)

    Introduction:

    Custom resources definition (CRD) is a powerful feature introduced in Kubernetes 1.7 which enables users to add their own/custom objects to the Kubernetes cluster and use it like any other native Kubernetes objects. In this blog post, we will see how we can add a custom resource to a Kubernetes cluster using the command line as well as using the Golang client library thus also learning how to programmatically interact with a Kubernetes cluster.

    What is a Custom Resource Definition (CRD)?

    In the Kubernetes API, every resource is an endpoint to store API objects of certain kind. For example, the built-in service resource contains a collection of service objects. The standard Kubernetes distribution ships with many inbuilt API objects/resources. CRD comes into picture when we want to introduce our own object into the Kubernetes cluster to full fill our requirements. Once we create a CRD in Kubernetes we can use it like any other native Kubernetes object thus leveraging all the features of Kubernetes like its CLI, security, API services, RBAC etc.

    The custom resource created is also stored in the etcd cluster with proper replication and lifecycle management. CRD allows us to use all the functionalities provided by a Kubernetes cluster for our custom objects and saves us the overhead of implementing them on our own.

    How to register a CRD using command line interface (CLI)

    Step-1: Create a CRD definition file sslconfig-crd.yaml

    apiVersion: "apiextensions.k8s.io/v1beta1"
    kind: "CustomResourceDefinition"
    metadata:
      name: "sslconfigs.blog.velotio.com"
    spec:
      group: "blog.velotio.com"
      version: "v1alpha1"
      scope: "Namespaced"
      names:
        plural: "sslconfigs"
        singular: "sslconfig"
        kind: "SslConfig"
      validation:
        openAPIV3Schema:
          required: ["spec"]
          properties:
            spec:
              required: ["cert","key","domain"]
              properties:
                cert:
                  type: "string"
                  minimum: 1
                key:
                  type: "string"
                  minimum: 1
                domain:
                  type: "string"
                  minimum: 1 

    Here we are creating a custom resource definition for an object of kind SslConfig. This object allows us to store the SSL configuration information for a domain. As we can see under the validation section specifying the cert, key and the domain are mandatory for creating objects of this kind, along with this we can store other information like the provider of the certificate etc. The name metadata that we specify must be spec.names.plural+”.”+spec.group.

    An API group (blog.velotio.com here) is a collection of API objects which are logically related to each other. We have also specified version for our custom objects (spec.version), as the definition of the object is expected to change/evolve in future so it’s better to start with alpha so that the users of the object knows that the definition might change later. In the scope, we have specified Namespaced, by default a custom resource name is clustered scoped. 

    # kubectl create -f crd.yaml
    # kubectl get crd NAME AGE sslconfigs.blog.velotio.com 5s

    Step-2:  Create objects using the definition we created above

    apiVersion: "blog.velotio.com/v1alpha1"
    kind: "SslConfig"
    metadata:
      name: "sslconfig-velotio.com"
    spec:
      cert: "my cert file"
      key : "my private  key"
      domain: "*.velotio.com"
      provider: "digicert"

    # kubectl create -f crd-obj.yaml
    # kubectl get sslconfig NAME AGE sslconfig-velotio.com 12s

    Along with the mandatory fields cert, key and domain, we have also stored the information of the provider ( certifying authority ) of the cert.

    How to register a CRD programmatically using client-go

    Client-go project provides us with packages using which we can easily create go client and access the Kubernetes cluster.  For creating a client first we need to create a connection with the API server.
    How we connect to the API server depends on whether we will be accessing it from within the cluster (our code running in the Kubernetes cluster itself) or if our code is running outside the cluster (locally)

    If the code is running outside the cluster then we need to provide either the path of the config file or URL of the Kubernetes proxy server running on the cluster.

    kubeconfig := filepath.Join(
    os.Getenv("HOME"), ".kube", "config",
    )
    config, err := clientcmd.BuildConfigFromFlags("", kubeconfig)
    if err != nil {
    log.Fatal(err)
    }

    OR

    var (
    // Set during build
    version string
    
    proxyURL = flag.String("proxy", "",
    `If specified, it is assumed that a kubctl proxy server is running on the
    given url and creates a proxy client. In case it is not given InCluster
    kubernetes setup will be used`)
    )
    if *proxyURL != "" {
    config, err = clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
    &clientcmd.ClientConfigLoadingRules{},
    &clientcmd.ConfigOverrides{
    ClusterInfo: clientcmdapi.Cluster{
    Server: *proxyURL,
    },
    }).ClientConfig()
    if err != nil {
    glog.Fatalf("error creating client configuration: %v", err)
    }

    When the code is to be run as a part of the cluster then we can simply use

    import "k8s.io/client-go/rest"  ...  rest.InClusterConfig() 

    Once the connection is established we can use it to create clientset. For accessing Kubernetes objects, generally the clientset from the client-go project is used, but for CRD related operations we need to use the clientset from apiextensions-apiserver project

    apiextension “k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset”

    kubeClient, err := apiextension.NewForConfig(config)
    if err != nil {
    glog.Fatalf("Failed to create client: %v.", err)
    }

    Now we can use the client to make the API call which will create the CRD for us.

    package v1alpha1
    
    import (
    	"reflect"
    
    	apiextensionv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
    	apiextension "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
    	apierrors "k8s.io/apimachinery/pkg/api/errors"
    	meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    )
    
    const (
    	CRDPlural   string = "sslconfigs"
    	CRDGroup    string = "blog.velotio.com"
    	CRDVersion  string = "v1alpha1"
    	FullCRDName string = CRDPlural + "." + CRDGroup
    )
    
    func CreateCRD(clientset apiextension.Interface) error {
    	crd := &apiextensionv1beta1.CustomResourceDefinition{
    		ObjectMeta: meta_v1.ObjectMeta{Name: FullCRDName},
    		Spec: apiextensionv1beta1.CustomResourceDefinitionSpec{
    			Group:   CRDGroup,
    			Version: CRDVersion,
    			Scope:   apiextensionv1beta1.NamespaceScoped,
    			Names: apiextensionv1beta1.CustomResourceDefinitionNames{
    				Plural: CRDPlural,
    				Kind:   reflect.TypeOf(SslConfig{}).Name(),
    			},
    		},
    	}
    
    	_, err := clientset.ApiextensionsV1beta1().CustomResourceDefinitions().Create(crd)
    	if err != nil && apierrors.IsAlreadyExists(err) {
    		return nil
    	}
    	return err
    }

    In the create CRD function, we first create the definition of our custom object and then pass it to the create method which creates it in our cluster. Just like we did while creating our definition using CLI, here also we set the parameters like version, group, kind etc.

    Once our definition is ready we can create objects of its type just like we did earlier using the CLI. First we need to define our object.

    package v1alpha1
    
    import meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    
    type SslConfig struct {
    	meta_v1.TypeMeta   `json:",inline"`
    	meta_v1.ObjectMeta `json:"metadata"`
    	Spec               SslConfigSpec   `json:"spec"`
    	Status             SslConfigStatus `json:"status,omitempty"`
    }
    type SslConfigSpec struct {
    	Cert   string `json:"cert"`
    	Key    string `json:"key"`
    	Domain string `json:"domain"`
    }
    
    type SslConfigStatus struct {
    	State   string `json:"state,omitempty"`
    	Message string `json:"message,omitempty"`
    }
    
    type SslConfigList struct {
    	meta_v1.TypeMeta `json:",inline"`
    	meta_v1.ListMeta `json:"metadata"`
    	Items            []SslConfig `json:"items"`
    }

    Kubernetes API conventions suggests that each object must have two nested object fields that govern the object’s configuration: the object spec and the object status. Objects must also have metadata associated with them. The custom objects that we define here comply with these standards. It is also recommended to create a list type for every type thus we have also created a SslConfigList struct.

    Now we need to write a function which will create a custom client which is aware of the new resource that we have created.

    package v1alpha1
    
    import (
    	meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    	"k8s.io/apimachinery/pkg/runtime"
    	"k8s.io/apimachinery/pkg/runtime/schema"
    	"k8s.io/apimachinery/pkg/runtime/serializer"
    	"k8s.io/client-go/rest"
    )
    
    var SchemeGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion}
    
    func addKnownTypes(scheme *runtime.Scheme) error {
    	scheme.AddKnownTypes(SchemeGroupVersion,
    		&SslConfig{},
    		&SslConfigList{},
    	)
    	meta_v1.AddToGroupVersion(scheme, SchemeGroupVersion)
    	return nil
    }
    
    func NewClient(cfg *rest.Config) (*SslConfigV1Alpha1Client, error) {
    	scheme := runtime.NewScheme()
    	SchemeBuilder := runtime.NewSchemeBuilder(addKnownTypes)
    	if err := SchemeBuilder.AddToScheme(scheme); err != nil {
    		return nil, err
    	}
    	config := *cfg
    	config.GroupVersion = &SchemeGroupVersion
    	config.APIPath = "/apis"
    	config.ContentType = runtime.ContentTypeJSON
    	config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: serializer.NewCodecFactory(scheme)}
    	client, err := rest.RESTClientFor(&config)
    	if err != nil {
    		return nil, err
    	}
    	return &SslConfigV1Alpha1Client{restClient: client}, nil
    }

    Building the custom client library

    Once we have registered our custom resource definition with the Kubernetes cluster we can create objects of its type using the Kubernetes cli as we did earlier but for creating controllers for these objects or for developing some custom functionalities around them we need to build a client library also using which we can access them from go API. For native Kubernetes objects, this type of library is provided for each object.

    package v1alpha1
    
    import (
    	meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    	"k8s.io/client-go/rest"
    )
    
    func (c *SslConfigV1Alpha1Client) SslConfigs(namespace string) SslConfigInterface {
    	return &sslConfigclient{
    		client: c.restClient,
    		ns:     namespace,
    	}
    }
    
    type SslConfigV1Alpha1Client struct {
    	restClient rest.Interface
    }
    
    type SslConfigInterface interface {
    	Create(obj *SslConfig) (*SslConfig, error)
    	Update(obj *SslConfig) (*SslConfig, error)
    	Delete(name string, options *meta_v1.DeleteOptions) error
    	Get(name string) (*SslConfig, error)
    }
    
    type sslConfigclient struct {
    	client rest.Interface
    	ns     string
    }
    
    func (c *sslConfigclient) Create(obj *SslConfig) (*SslConfig, error) {
    	result := &SslConfig{}
    	err := c.client.Post().
    		Namespace(c.ns).Resource("sslconfigs").
    		Body(obj).Do().Into(result)
    	return result, err
    }
    
    func (c *sslConfigclient) Update(obj *SslConfig) (*SslConfig, error) {
    	result := &SslConfig{}
    	err := c.client.Put().
    		Namespace(c.ns).Resource("sslconfigs").
    		Body(obj).Do().Into(result)
    	return result, err
    }
    
    func (c *sslConfigclient) Delete(name string, options *meta_v1.DeleteOptions) error {
    	return c.client.Delete().
    		Namespace(c.ns).Resource("sslconfigs").
    		Name(name).Body(options).Do().
    		Error()
    }
    
    func (c *sslConfigclient) Get(name string) (*SslConfig, error) {
    	result := &SslConfig{}
    	err := c.client.Get().
    		Namespace(c.ns).Resource("sslconfigs").
    		Name(name).Do().Into(result)
    	return result, err
    }

    We can add more methods like watch, update status etc. Their implementation will also be similar to the methods we have defined above. For looking at the methods available for various Kubernetes objects like pod, node etc. we can refer to the v1 package.

    Putting all things together

    Now in our main function we will get all the things together.

    package main
    
    import (
    	"flag"
    	"fmt"
    	"time"
    
    	"blog.velotio.com/crd-blog/v1alpha1"
    	"github.com/golang/glog"
    	apiextension "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
    	meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    	"k8s.io/client-go/rest"
    	"k8s.io/client-go/tools/clientcmd"
    	clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
    )
    
    var (
    	// Set during build
    	version string
    
    	proxyURL = flag.String("proxy", "",
    		`If specified, it is assumed that a kubctl proxy server is running on the
    		given url and creates a proxy client. In case it is not given InCluster
    		kubernetes setup will be used`)
    )
    
    func main() {
    
    	flag.Parse()
    	var err error
    
    	var config *rest.Config
    	if *proxyURL != "" {
    		config, err = clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
    			&clientcmd.ClientConfigLoadingRules{},
    			&clientcmd.ConfigOverrides{
    				ClusterInfo: clientcmdapi.Cluster{
    					Server: *proxyURL,
    				},
    			}).ClientConfig()
    		if err != nil {
    			glog.Fatalf("error creating client configuration: %v", err)
    		}
    	} else {
    		if config, err = rest.InClusterConfig(); err != nil {
    			glog.Fatalf("error creating client configuration: %v", err)
    		}
    	}
    
    	kubeClient, err := apiextension.NewForConfig(config)
    	if err != nil {
    		glog.Fatalf("Failed to create client: %v", err)
    	}
    	// Create the CRD
    	err = v1alpha1.CreateCRD(kubeClient)
    	if err != nil {
    		glog.Fatalf("Failed to create crd: %v", err)
    	}
    
    	// Wait for the CRD to be created before we use it.
    	time.Sleep(5 * time.Second)
    
    	// Create a new clientset which include our CRD schema
    	crdclient, err := v1alpha1.NewClient(config)
    	if err != nil {
    		panic(err)
    	}
    
    	// Create a new SslConfig object
    
    	SslConfig := &v1alpha1.SslConfig{
    		ObjectMeta: meta_v1.ObjectMeta{
    			Name:   "sslconfigobj",
    			Labels: map[string]string{"mylabel": "test"},
    		},
    		Spec: v1alpha1.SslConfigSpec{
    			Cert:   "my-cert",
    			Key:    "my-key",
    			Domain: "*.velotio.com",
    		},
    		Status: v1alpha1.SslConfigStatus{
    			State:   "created",
    			Message: "Created, not processed yet",
    		},
    	}
    	// Create the SslConfig object we create above in the k8s cluster
    	resp, err := crdclient.SslConfigs("default").Create(SslConfig)
    	if err != nil {
    		fmt.Printf("error while creating object: %vn", err)
    	} else {
    		fmt.Printf("object created: %vn", resp)
    	}
    
    	obj, err := crdclient.SslConfigs("default").Get(SslConfig.ObjectMeta.Name)
    	if err != nil {
    		glog.Infof("error while getting the object %vn", err)
    	}
    	fmt.Printf("SslConfig Objects Found: n%vn", obj)
    	select {}
    }

    Now if we run our code then our custom resource definition will get created in the Kubernetes cluster and also an object of its type will be there just like with the cli. The docker image akash125/crdblog is build using the code discussed above it can be directly pulled from docker hub and run in a Kubernetes cluster. After the image is run successfully, the CRD definition that we discussed above will get created in the cluster along with an object of its type. We can verify the same using the CLI the way we did earlier, we can also check the logs of the pod running the docker image to verify it. The complete code is available here.

    Conclusion and future work

    We learned how to create a custom resource definition and objects using Kubernetes command line interface as well as the Golang client. We also learned how to programmatically access a Kubernetes cluster, using which we can build some really cool stuff on Kubernetes, we can now also create custom controllers for our resources which continuously watches the cluster for various life cycle events of our object and takes desired action accordingly. To read more about CRD refer the following links:

  • Getting Started With Kubernetes Operators (Ansible Based) – Part 2

    Introduction

    In the first part of this blog series, getting started with Kubernetes operators (Helm based), we learned the basics of operators and build a Helm based operator. In this blog post, we will try out an Ansible-based operator. Ansible is a very popular tool used by organizations across the globe for configuration management, deployment, and automation of other operational tasks, this makes Ansible an ideal tool to build operators as with operators also we intend to eliminate/minimize the manual interventions required while running/managing our applications on Kubernetes. Ansible based operators allow us to use Ansible playbooks and roles to manage our application on Kubernetes.

    Operator Maturity Model

    Image source: Github

    Before we start building the operator let’s spend some time in understanding the operator maturity model. Operator maturity model gives an idea of the kind of application management capabilities different types of operators can have. As we can see in the diagram above the model describes five generic phases of maturity/capability for operators. The minimum expectation/requirement from an operator is that they should be able to deploy/install and upgrade application and that is provided by all the operators. Helm based operators are simplest of all of them as Helm is Chart manager and we can do only install and upgrades using it. Ansible based operators can be more mature as Ansible has modules to perform a wide variety of operational tasks, we can use these modules in the Ansible roles/playbooks we use in our operator and make them handle more complex applications or use cases. In the case of Golang based operators, we write the operational logic ourselves so we have the liberty to customize it as per our requirements.

    Building an Ansible Based Operator

    1. Let’s first install the operator sdk

    go get -d github.com/operator-framework/operator-sdk
    cd $GOPATH/src/github.com/operator-framework/operator-sdk
    git checkout master make dep make install

    Now we will have the operator-sdk binary in the $GOPATH/bin folder.

    2.  Setup the project

    Operator-sdk new bookstore-operator–api-version=blog.velotio.com/v1alpha1–kind=BookStore–type=ansible

    In the above command we have set the operator type as ansible as we want an ansible based operator. It creates a folder structure as shown below

    bookstore-operator/
    
    | |- build/ # Contains the Dockerfile to build the operator image.
    
    | |- deploy/ # Contains the crd, cr and manifest files for deploying operator.
    
    | |- roles/ # Contains the helm chart we used while creating the project.
    
    | |- molecule/ # molecule is used for testing the ansible roles.
    
    | |- watches.yaml # Specifies the resource the operator watches (maintains the state of). 

    Inside the roles folder, it creates an Ansible role name `bookstore`. This role is bootstrapped with all the directories and files which are part of the standard ansible roles.

    Now let’s take a look at the watches.yaml file:

    ---
    - version: v1alpha1
      group: blog.velotio.com
      kind: BookStore
      role: /opt/ansible/roles/bookstore

    Here we can see that it looks just like the operator is going to watch the events related to the objects of BookStore kind and execute the ansible role bookstore.  Drawing parallels from our helm based operator we can see that the behavior in both the cases are similar the only difference being that in case of Helm based operator the operator used to execute the helm chart specified in response to the events related to the object it was watching and here we are executing an ansible role.

    In case of ansible based operators, we can get the operator to execute an Ansible playbook as well rather than an ansible role.

    3.  Building the bookstore Ansible role        

    Now we need to modify the bookstore Ansible roles created for us by the operator-framework.

    First we will update the custom resource (CR) file ( blog_v1alpha1_bookstore_cr.yaml) available at deploy/crd/ location. In this CR we can configure all the values which we want to pass to the bookstore Ansible role. By default the CR contains only the size field, we will update it to include other field which we need in our role.  To keep things simple, we will just include some basic variables like image name, tag etc. in our spec.

    apiVersion: blog.velotio.com/v1alpha1
    kind: BookStore
    metadata:
      name: my-bookstore
    spec:
      image:
        app:
          repository: akash125/pyapp
          tag: latest
          pullPolicy: IfNotPresent
        mongodb:
          repository: mongo
          tag: latest
          pullPolicy: IfNotPresent
        
      service:
        app:
          type: LoadBalancer
        mongodb:
          type: ClusterIP

    The Ansible operator passes the key values pairs listed in the spec of the cr as variables to Ansible.  The operator changes the name of the variables to snake_case before running Ansible so when we use the variables in our role we will refer the values in snake case.

    Next, we need to create the tasks the bookstore roles will execute. Now we will update the tasks to define our deployment. By default an Ansible role executes the tasks defined at `/tasks/main.yml`. For defining our deployment we will leverage k8s module of Ansible. We will create a kubernetes deployment and service for our app as well as mongodb.

    ---
    # tasks file for bookstore
    
    - name: Create the mongodb deployment
      k8s:
        definition:
          kind: Deployment
          apiVersion: apps/v1beta1
          metadata:
            name: mongodb-deployment
            namespace: '{{ meta.namespace }}'
          spec:
            replicas: 1
            selector:
            matchLabels:
              app: book-store-mongodb
            template:
              metadata:
                labels:
                  app: book-store-mongodb
              spec:
                containers:
                - name: mongodb
                  image: "{{image.mongodb.repository}}:{{image.mongodb.tag}}"
                  imagePullPolicy: "{{ image.mongodb.pull_policy }}"
                  ports:
                  - containerPort: 27017
    
    - name: Create the mongodb service
      k8s:
        definition:
          apiVersion: v1
          kind: Service
          metadata:
            name: mongodb-service
            namespace: '{{ meta.namespace }}'
            labels:
              app: book-store-mongodb
          spec:
            type: "{{service.mongodb.type}}"
            ports:
            - name: elb-port
              port: 27017
              protocol: TCP
              targetPort: 27017
            selector:
              app: book-store-mongodb
     - name: Create the bookstore deployment
      k8s:
        definition: 
          kind: Deployment
          apiVersion: apps/v1beta1
          metadata:
            name: book-store
            namespace: '{{ meta.namespace }}'
          spec:
            replicas: 1
            selector:
            matchLabels:
              app: book-store
            template:
              metadata:
                labels:
                  app: book-store
              spec:
                containers:
                - name: book-store
                  image: "{{image.app.repository}}:{{image.app.tag}}"
                  imagePullPolicy: "{{image.app.pull_policy}}"         
                  ports:
                  - containerPort: 3000
    
    - name: Create the bookstore service
      k8s:
        definition:
          apiVersion: v1
          kind: Service
          metadata:
            name: book-store
            namespace: '{{ meta.namespace }}'
            labels:
              app: book-store
          spec:
            type: "{{service.app.type}}"
            ports:
            - name: elb-port
              port: 80
              protocol: TCP
              targetPort: 3000
            selector:
              app: book-store

    In the above file we can see that we have used the pullPolicy field defined in our cr spec as ‘pull_policy’ in our tasks. Here we have used inline definition to create our k8s objects as our app is quite simple. For large applications creating objects using separate definition files would be a better approach.

    4 . Build the bookstore-operator image

    The Dockerfile for building the operator image is already in our build folder we need to run the below command from the root folder of our operator project to build the image.

    ‘operator-sdk build akash125/bookstore-operator:ansible’

    You can use your own docker repository instead of ‘akash125/bookstore-operator’

    5. Run the bookstore-operator

    As we have our operator image ready we can now go ahead and run it. The deployment file (operator.yaml under deploy folder) for the operator was created as a part of our project setup we just need to set the image for this deployment to the one we built in the previous step.

    After updating the image in the operator.yaml we are ready to deploy the operator.

    kubectl create -f deploy/service_account.yaml
    kubectl create -f deploy/role.yaml
    kubectl create -f deploy/role_binding.yaml
    kubectl create -f deploy/operator.yaml

    Note: The role created might have more permissions then actually required for the operator so it is always a good idea to review it and trim down the permissions in production setups.

    Verify that the operator pod is in running state.

    Here two containers have been started as part of the operator deployment. One is the operator and the other one is ansible. The ansible pod exists only to make the logs available to stdout in ansible format.

    6. Deploy the bookstore app

    Now we have the bookstore-operator running in our cluster we just need to create the custom resource for deploying our bookstore app.

    First, we can create bookstore cr we need to register its crd

    ‘kubectl delete -f deploy/crds/blog_v1alpha1_bookstore_crd.yaml’

    Now we can create the bookstore object

    ‘kubectl delete -f deploy/crds/blog_v1alpha1_bookstore_cr.yaml’

    Now we can see that our operator has deployed out book-store app:

    Now let’s grab the external IP of the app and make some requests to store details of books.

    Let’s hit the external IP on the browser and see if it lists the books we just stored:

    We can see that our ‘book-store’ app is up and running.

    The operator build is available here.

    Conclusion

    In this blog post, we learned how we can create an Ansible based operator using the operator framework. Ansible based operators are a great way to combine the power of Ansible and Kubernetes as it allows us to deploy our applications using Ansible role and playbooks and we can pass parameters to them (control them) using custom K8s resources. If Ansible is being heavily used across your organization and you are migrating to Kubernetes then Ansible based operators are an ideal choice for managing deployments. In the next blog, we will learn about Golang based operators.

  • Getting Started With Kubernetes Operators (Golang Based) – Part 3

    Introduction

    In the first, getting started with Kubernetes operators (Helm based), and the second part, getting started with Kubernetes operators (Ansible based), of this Introduction to Kubernetes operators blog series we learned various concepts related to Kubernetes operators and created a Helm based operator and an Ansible based operator respectively. In this final part, we will build a Golang based operator. In case of Helm based operators, we were executing a helm chart when changes were made to the custom object type of our application, similarly in the case of an Ansible based operator we executed an Ansible role. In case of Golang based operator we write the code for the action we need to perform (reconcile logic) whenever the state of our custom object change, this makes the Golang based operators quite powerful and flexible, at the same time making them the most complex to build out of the 3 types.

    What Will We Build?

    The database server we deployed as part of our book store app in previous blogs didn’t have any persistent volume attached to it and we would lose data in case the pod restarts, to avoid this we will attach a persistent volume attached to the host (K8s worker nodes ) and run our database as an statefulset rather than a deployment. We will also add a feature to expand the persistent volume associated with the mongodb pod.

    Building the Operator

    1. Set up the project:  

    operator-sdk new bookstore-operator –dep-manager=dep

    INFO[0000] Generating api version blog.velotio.com/v1alpha1 for kind BookStore. 
    INFO[0000] Created pkg/apis/blog/group.go               
    INFO[0001] Created pkg/apis/blog/v1alpha1/bookstore_types.go 
    INFO[0001] Created pkg/apis/addtoscheme_blog_v1alpha1.go 
    INFO[0001] Created pkg/apis/blog/v1alpha1/register.go   
    INFO[0001] Created pkg/apis/blog/v1alpha1/doc.go        
    INFO[0001] Created deploy/crds/blog.velotio.com_v1alpha1_bookstore_cr.yaml 
    INFO[0009] Created deploy/crds/blog.velotio.com_bookstores_crd.yaml 
    INFO[0009] Running deepcopy code-generation for Custom Resource group versions: [blog:[v1alpha1], ] 
    INFO[0010] Code-generation complete.                    
    INFO[0010] Running OpenAPI code-generation for Custom Resource group versions: [blog:[v1alpha1], ] 
    INFO[0011] Created deploy/crds/blog.velotio.com_bookstores_crd.yaml 
    INFO[0011] Code-generation complete.                    
    INFO[0011] API generation complete.

    The above command creates the bookstore-operator folder in our $GOPATH/src, here we have set the –dep-manager as dep which signifies we want to use dep for managing dependencies, by default it uses go modules for managing dependencies. Similar to what we have seen earlier the operator sdk creates all the necessary folder structure for us inside the bookstore-operator folder.

    2. Add the custom resource definition

    operator-sdk add api –api-version=blog.velotio.com/v1alpha1 –kind=BookStore

    The above command creates the CRD and CR for the BookStore type. It also creates the golang structs (pkg/apis/blog/v1alpha1/bookstore_types.go)  for BookStore types.  It also registers the custom type (pkg/apis/blog/v1alpha1/register.go) with schema and generates deep-copy methods as well. Here we can see that all the generic tasks are being done by the operator framework itself allowing us to focus on building and object and the controller. We will update the spec of our BookStore object later. We will update the spec of BookStore type to include two custom types BookApp and BookDB.

    type BookStoreSpec struct {
    
    	BookApp BookApp     `json:"bookApp,omitempty"`
    	BookDB  BookDB      `json:"bookDB,omitempty"`
    }
    
    type BookApp struct {
    	 
    	Repository      string             `json:"repository,omitempty"`
    	Tag             string             `json:"tag,omitempty"`
    	ImagePullPolicy corev1.PullPolicy  `json:"imagePullPolicy,omitempty"`
            Replicas        int32              `json:"replicas,omitempty"`
            Port            int32              `json:"port,omitempty"`
    	TargetPort      int                `json:"targetPort,omitempty"`
    	ServiceType     corev1.ServiceType `json:"serviceType,omitempty"`
    }
    
    type BookDB struct {
    	 
    	Repository      string            `json:"repository,omitempty"`
    	Tag             string            `json:"tag,omitempty"`
    	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
            Replicas        int32             `json:"replicas,omitempty"`
    	Port            int32             `json:"port,omitempty"`
    	DBSize          resource.Quantity `json:"dbSize,omitempty"`
    }

    Let’s also update the BookStore CR (blog.velotio.com_v1alpha1_bookstore_cr.yaml)

    apiVersion: blog.velotio.com/v1alpha1
    kind: BookStore
    metadata:name: example-bookstore
    spec:
      bookApp: 
        repository: "akash125/pyapp"
        tag: latest
        imagePullPolicy: "IfNotPresent"
        replicas: 1
        port: 80
        targetPort: 3000
        serviceType: "LoadBalancer"
      bookDB:
        repository: "mongo"
        tag: latest
        imagePullPolicy: "IfNotPresent"
        replicas: 1
        port: 27017
        dbSize: 2Gi

    3. Add the bookstore controller

    operator-sdk add controller –api-version=blog.velotio.com/v1alpha1 –kind=BookStore

    INFO[0000] Generating controller version blog.velotio.com/v1alpha1 for kind BookStore. 
    INFO[0000] Created pkg/controller/bookstore/bookstore_controller.go 
    INFO[0000] Created pkg/controller/add_bookstore.go      
    INFO[0000] Controller generation complete.

    The above command adds the bookstore controller (pkg/controller/bookstore/bookstore_controller.go) to the project and also adds it to the manager.

    If we take a look at the add function in the bookstore_controller.go file we can see that a new controller is created here and added to the manager so that the manager can start the controller when it (manager) comes up,  the add(mgr manager.Manager, r reconcile.Reconciler) is called by the public function Add(mgr manager.Manager) which also creates a new reconciler objects and passes it to the add where the controller is associated with the reconciler, in the add function we also set the type of object (BookStore) which the controller will watch.

    // Watch for changes to primary resource BookStore
    	err = c.Watch(&source.Kind{Type: &blogv1alpha1.BookStore{}}, &handler.EnqueueRequestForObject{})
    	if err != nil {
    		return err
    	}

    This ensures that for any events related to any object of BookStore type, a reconcile request (a namespace/name key) is sent to the Reconcile method associated with the reconciler object (ReconcileBookStore) here.

    4. Build the reconcile logic

    The reconcile logic is implemented inside the Reconcile method of the reconciler object of the custom type which implements the reconcile loop.

    As a part of our reconcile logic we will do the following

    1. Create the bookstore app deployment if it doesn’t exist.
    2. Create the bookstore app service if it doesn’t exist.
    3. Create the Mongodb statefulset if it doesn’t exist.
    4. Create the Mongodb service if it doesn’t exist.
    5. Ensure deployments and services match their desired configurations like the replica count, image tag, service port, size of the PV associated with the Mongodb statefulset etc.

     There are three possible events that can happen with the BookStore object

    1. The object got created: Whenever an object of kind BookStore is created we create all the k8s resources we mentioned above
    2. The object has been updated: When the object gets updated then we update all the k8s resources associated with it..
    3. The object has been deleted: When the object gets deleted we don’t need to do anything as while creating the K8s objects we will set the `BookStore` type as its owner which will ensure that all the K8s objects associated with it gets automatically deleted when we delete the object.

    On receiving the reconcile request the first step if to lookup for the object.

    func (r *ReconcileBookStore) Reconcile(request reconcile.Request) (reconcile.Result, error) {
    	reqLogger := log.WithValues("Request.Namespace", request.Namespace, "Request.Name", request.Name)
    	reqLogger.Info("Reconciling BookStore")
    
    	// Fetch the BookStore instance
    	bookstore := &blogv1alpha1.BookStore{}
    	err := r.client.Get(context.TODO(), request.NamespacedName, bookstore)

    If the object is not found, we assume that it got deleted and don’t requeue the request considering the reconcile to be successful.

    If any error occurs while doing the reconcile then we return the error and whenever we return non nil error value then controller requeues the request.

    In the reconcile logic we call the BookStore method which creates or updates all the k8s objects associated with the BookStore objects based on whether the object has been created or updated.

    func (r *ReconcileBookStore) BookStore(bookstore *blogv1alpha1.BookStore) error {
         reqLogger := log.WithValues("Namespace", bookstore.Namespace)
         mongoDBSvc := getmongoDBSvc(bookstore)
         msvc := &corev1.Service{}
         err := r.client.Get(context.TODO(), types.NamespacedName{Name: "mongodb-service", Namespace: bookstore.Namespace}, msvc)
         if err != nil {
    	if errors.IsNotFound(err) {
    	   controllerutil.SetControllerReference(bookstore, mongoDBSvc, r.scheme)
    	   err = r.client.Create(context.TODO(), mongoDBSvc)
    	   if err != nil { return err }
                } else {  return err }
            } else if !reflect.DeepEqual(mongoDBSvc.Spec, msvc.Spec) {
    	   mongoDBSvc.ObjectMeta = msvc.ObjectMeta
               controllerutil.SetControllerReference(bookstore, mongoDBSvc, r.scheme)
               err = r.client.Update(context.TODO(), mongoDBSvc)
    	   if err != nil { return err }
    	      reqLogger.Info("mongodb-service updated")
    	   }
       mongoDBSS := getMongoDBStatefulsets(bookstore)
       mss := &appsv1.StatefulSet{}
       err = r.client.Get(context.TODO(), types.NamespacedName{Name: "mongodb", Namespace: bookstore.Namespace}, mss)
       if err != nil {
          if errors.IsNotFound(err) {
    	reqLogger.Info("mongodb statefulset not found, will be created")
    	controllerutil.SetControllerReference(bookstore, mongoDBSS, r.scheme)
    	err = r.client.Create(context.TODO(), mongoDBSS)
    	if err != nil { return err }
    	} else {
    	    reqLogger.Info("failed to get mongodb statefulset")
    	    return err
    	   }
    	} else if !reflect.DeepEqual(mongoDBSS.Spec, mss.Spec) {
                 r.UpdateVolume(bookstore)
    	     mongoDBSS.ObjectMeta = mss.ObjectMeta
    	     mongoDBSS.Spec.VolumeClaimTemplates = mss.Spec.VolumeClaimTemplates
    	     controllerutil.SetControllerReference(bookstore, mongoDBSS, r.scheme)
    	     err = r.client.Update(context.TODO(), mongoDBSS)
    	     if err != nil { return err }
    	        reqLogger.Info("mongodb statefulset updated")
            }
       bookStoreSvc := getBookStoreAppSvc(bookstore)
       bsvc := &corev1.Service{}
       err = r.client.Get(context.TODO(), types.NamespacedName{Name: "bookstore-svc", Namespace: bookstore.Namespace}, bsvc)
       if err != nil {
          if errors.IsNotFound(err) {
    	  controllerutil.SetControllerReference(bookstore, bookStoreSvc, r.scheme)
    	  err = r.client.Create(context.TODO(), bookStoreSvc)
    	  if err != nil { return err }
    	  } else {
    	      reqLogger.Info("failed to get bookstore service")
    	      return err
    	    }
    	} else if !reflect.DeepEqual(bookStoreSvc.Spec, bsvc.Spec) {
    	      bookStoreSvc.ObjectMeta = bsvc.ObjectMeta
    	      bookStoreSvc.Spec.ClusterIP = bsvc.Spec.ClusterIP
    	      controllerutil.SetControllerReference(bookstore, bookStoreSvc, r.scheme)
    	      err = r.client.Update(context.TODO(), bookStoreSvc)
    	      if err != nil { return err }
    	          reqLogger.Info("bookstore service updated")
    	  }
      bookStoreDep := getBookStoreDeploy(bookstore)
      bsdep := &appsv1.Deployment{}
      err = r.client.Get(context.TODO(), types.NamespacedName{Name: "bookstore", Namespace: bookstore.Namespace}, bsdep)
      if err != nil {
        if errors.IsNotFound(err) {
    	controllerutil.SetControllerReference(bookstore, bookStoreDep, r.scheme)
    	err = r.client.Create(context.TODO(), bookStoreDep)
    	if err != nil { return err }
    	} else {
    	   reqLogger.Info("failed to get bookstore deployment")
    	     return err
    	    }
    	} else if !reflect.DeepEqual(bookStoreDep.Spec, bsdep.Spec) {
    	       bookStoreDep.ObjectMeta = bsdep.ObjectMeta
    	       controllerutil.SetControllerReference(bookstore, bookStoreDep, r.scheme)
    	       err = r.client.Update(context.TODO(), bookStoreDep)
    	       if err != nil { return err }
    			reqLogger.Info("bookstore deployment updated")
    	}
      r.client.Status().Update(context.TODO(), bookstore)
      return nil
    }

    The implementation of the above method is a bit hacky but gives an idea of the flow. In the above function, we can see that we are setting the BookStore type as an owner for all the resources controllerutil.SetControllerReference(c, bookStoreDep, r.scheme) as we had discussed earlier. If we look at the owner reference for these objects we would see something like this.

    ownerReferences:
      - apiVersion: blog.velotio.com/v1alpha1
        blockOwnerDeletion: true
        controller: true
        kind: BookStore
        name: example-bookstore
        uid: 0ef42889-deb4-11e9-ba56-42010a800256
      resourceVersion: "20295281"

    5.  Deploy the operator and verify its working

    The approach to deploy and verify the working of the bookstore application is similar to what we did in the previous two blogs the only difference being that now we have deployed the Mongodb as a stateful set and even if we restart the pod we will see that the information that we stored will still be available.

    6. Verify volume expansion

    For updatingthe volume associated with the mongodb instance we first need to update the size of the volume we specified while creating the bookstore object. In the example above I had set it to 2GB let’s update it to 3GB and update the bookstore object.

    Once the bookstore object is updated if we describe the mongodb PVC we will see that it still has 2GB PV but the conditions we will see something like this.

    Conditions:
      Type                      Status  LastProbeTime                     LastTransitionTime                Reason  Message
      ----                      ------  -----------------                 ------------------                ------  -------
      FileSystemResizePending   True    Mon, 01 Jan 0001 00:00:00 +0000   Mon, 30 Sep 2019 15:07:01 +0530           Waiting for user to (re-)start a pod to finish file system resize of volume on node.
    @velotiotech

    It is clear from the message that we need to restart the pod for resizing of volume to reflect. Once we delete the pod it will get restarted and the PVC will get updated to reflect the expanded volume size.

    The complete code is available here.

    Conclusion

    Golang based operators are built mostly for stateful applications like databases. The operator can automate complex operational tasks allow us to run applications with ease. At the same time, building and maintaining it can be quite complex and we should build one only when we are fully convinced that our requirements can’t be met with any other type of operator. Operators are an interesting and emerging area in Kubernetes and I hope this blog series on getting started with it help the readers in learning the basics of it.

  • How To Implement Chaos Engineering For Microservices Using Istio

    “Embrace Failures. Chaos and failures are your friends, not enemies.” A microservice ecosystem is going to fail at some point. The issue is not if you fail, but when you fail, will you notice or not. It’s between whether it will affect your users because all of your services are down, or it will affect only a few users and you can fix it at your own time.

    Chaos Engineering is a practice to intentionally introduce faults and failures into your microservice architecture to test the resilience and stability of your system. Istio can be a great tool to do so. Let’s have a look at how Istio made it easy.

    For more information on how to setup Istio and what are virtual service and Gateways, please have a look at the following blog, how to setup Istio on GKE.

    Fault Injection With Istio

    Fault injection is a testing method to introduce errors into your microservice architecture to ensure it can withstand the error conditions. Istio lets you injects errors at HTTP layer instead of delaying the packets or killing the pods at network layer. This way, you can generate various types of HTTP error codes and test the reaction of your services under those conditions. 

    Generating HTTP 503 Error

    Here we see that two pods are running two different versions of recommendation service using the recommended tutorial while installing the sample application.

    Currently, the traffic on the recommendation service is automatically load balanced between those two pods.

    kubectl get pods -l app=recommendation
    NAME                                  READY     STATUS    RESTARTS   AGE
    recommendation-v1-798bf87d96-d9d95   2/2       Running   0          1h
    recommendation-v2-7bc4f7f696-d9j2m   2/2       Running   0          1h

    Now let’s apply a fault injection using virtual service which will send 503 HTTP error codes in 30% of the traffic serving the above pods.

    To test whether it is working, check the output from the curl of customer service microservice endpoint. 

    You will find the 503 error on approximately 30% of the request coming to recommendation service.

    To restore normal operation, please delete the above virtual service using:

    kubectl delete -f recommendation-fault.yaml

    Delay

    The most common failure we see in production is not the down service, rather a delay service. To inject network latency as a chaos experiment, you can create another virtual service. Sometimes, it happens that your application doesn’t respond on time and creates chaos in the complete ecosystem. How to simulate that behavior, let’s have a look.

    Now, if you hit the URL of endpoints of the above service in a loop, you will see the delays in some of the requests. 

    Retry‍

    In some of the production services, we expect that instead of failing instantly, it should retry N number of times to get the desired output. If not succeeded, then only a request should be considered as failed.

    For that mechanism, you can insert retries on those services as follows:

    Now any request coming to recommendation will do 3 attempts before considering it as failed.

    Timeout‍

    In the real world, an application faces most failures due to timeouts. It can be because of more load on the application or any other latency in serving the request. Your application should have proper timeouts defined, before declaring any request as “Failed”. You can use Istio to simulate the timeout mechanism and give our application a limited amount of time to respond before giving up.

    Wait only for N seconds before failing and giving up.

    kind: VirtualService
    metadata:
      name: recommendation
    spec:
      hosts:
      - recommendation
      http:
      - route:
        - destination:
            host: recommendation
        timeout: 1.000s

    Conclusion‍

    Istio lets you inject faults at the HTTP layer for your application and improves its resilience and stability. But, the application must handle the failures and take appropriate course of action. Chaos Engineering is only effective when you know your application can take failures, otherwise, there is no point in testing for chaos if you know your application is definitely broken.

  • 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.

  • 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