{
    "apiVersion": "v1",
    "kind": "Template",
    "message": "A new java application has been created in your project.",
    "metadata": {
        "annotations": {
            "description": "An example Java application using OpenJDK. For more information about using this template, see https://github.com/jboss-openshift/application-templates.",
            "iconClass": "icon-rh-openjdk",
            "openshift.io/display-name": "OpenJDK",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "tags": "java",
            "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/",
            "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat OpenJDK Java based application.",
            "template.openshift.io/support-url": "https://access.redhat.com",
            "version": "1.4.17"
        },
        "labels": {
            "template": "openjdk-web-basic-s2i",
            "xpaas": "1.4.17"
        },
        "name": "openjdk-web-basic-s2i"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "The application's http port."
                },
                "labels": {
                    "application": "${APPLICATION_NAME}"
                },
                "name": "${APPLICATION_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "port": 8080,
                        "targetPort": 8080
                    }
                ],
                "selector": {
                    "deploymentConfig": "${APPLICATION_NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "id": "${APPLICATION_NAME}-http",
            "kind": "Route",
            "metadata": {
                "annotations": {
                    "description": "Route for application's http service."
                },
                "labels": {
                    "application": "${APPLICATION_NAME}"
                },
                "name": "${APPLICATION_NAME}"
            },
            "spec": {
                "host": "${HOSTNAME_HTTP}",
                "to": {
                    "name": "${APPLICATION_NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "ImageStream",
            "metadata": {
                "labels": {
                    "application": "${APPLICATION_NAME}"
                },
                "name": "${APPLICATION_NAME}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "BuildConfig",
            "metadata": {
                "labels": {
                    "application": "${APPLICATION_NAME}"
                },
                "name": "${APPLICATION_NAME}"
            },
            "spec": {
                "output": {
                    "to": {
                        "kind": "ImageStreamTag",
                        "name": "${APPLICATION_NAME}:latest"
                    }
                },
                "source": {
                    "contextDir": "${CONTEXT_DIR}",
                    "git": {
                        "ref": "${SOURCE_REPOSITORY_REF}",
                        "uri": "${SOURCE_REPOSITORY_URL}"
                    },
                    "type": "Git"
                },
                "strategy": {
                    "sourceStrategy": {
                        "forcePull": true,
                        "from": {
                            "kind": "ImageStreamTag",
                            "name": "java:${JAVA_IMAGE_STREAM_TAG}",
                            "namespace": "${IMAGE_STREAM_NAMESPACE}"
                        }
                    },
                    "type": "Source"
                },
                "triggers": [
                    {
                        "github": {
                            "secret": "${GITHUB_WEBHOOK_SECRET}"
                        },
                        "type": "GitHub"
                    },
                    {
                        "generic": {
                            "secret": "${GENERIC_WEBHOOK_SECRET}"
                        },
                        "type": "Generic"
                    },
                    {
                        "imageChange": {},
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "labels": {
                    "application": "${APPLICATION_NAME}"
                },
                "name": "${APPLICATION_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "deploymentConfig": "${APPLICATION_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "application": "${APPLICATION_NAME}",
                            "deploymentConfig": "${APPLICATION_NAME}"
                        },
                        "name": "${APPLICATION_NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [],
                                "image": "${APPLICATION_NAME}",
                                "imagePullPolicy": "Always",
                                "name": "${APPLICATION_NAME}",
                                "ports": [
                                    {
                                        "containerPort": 8778,
                                        "name": "jolokia",
                                        "protocol": "TCP"
                                    },
                                    {
                                        "containerPort": 8080,
                                        "name": "http",
                                        "protocol": "TCP"
                                    },
                                    {
                                        "containerPort": 8443,
                                        "name": "https",
                                        "protocol": "TCP"
                                    }
                                ]
                            }
                        ],
                        "terminationGracePeriodSeconds": 75
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "${APPLICATION_NAME}"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "${APPLICATION_NAME}:latest"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        }
    ],
    "parameters": [
        {
            "description": "The name for the application.",
            "displayName": "Application Name",
            "name": "APPLICATION_NAME",
            "required": true,
            "value": "openjdk-app"
        },
        {
            "description": "The version of Java to use, e.g. 8, 11, latest. (Corresponds to the 'java' ImageStream tag.)",
            "displayName": "Java Version",
            "name": "JAVA_IMAGE_STREAM_TAG",
            "required": true,
            "value": "latest"
        },
        {
            "description": "Git source URI for application",
            "displayName": "Git Repository URL",
            "name": "SOURCE_REPOSITORY_URL",
            "required": true,
            "value": "https://github.com/jboss-openshift/openshift-quickstarts"
        },
        {
            "description": "Git branch/tag reference",
            "displayName": "Git Reference",
            "name": "SOURCE_REPOSITORY_REF",
            "required": false,
            "value": "master"
        },
        {
            "description": "Path within Git project to build; empty for root project directory.",
            "displayName": "Context Directory",
            "name": "CONTEXT_DIR",
            "required": false,
            "value": "undertow-servlet"
        },
        {
            "description": "Custom hostname for http service route.  Leave blank for default hostname, e.g.: <application-name>-<project>.<default-domain-suffix>",
            "displayName": "Custom http Route Hostname",
            "name": "HOSTNAME_HTTP",
            "required": false,
            "value": ""
        },
        {
            "description": "GitHub trigger secret",
            "displayName": "Github Webhook Secret",
            "from": "[a-zA-Z0-9]{8}",
            "generate": "expression",
            "name": "GITHUB_WEBHOOK_SECRET",
            "required": true
        },
        {
            "description": "Generic build trigger secret",
            "displayName": "Generic Webhook Secret",
            "from": "[a-zA-Z0-9]{8}",
            "generate": "expression",
            "name": "GENERIC_WEBHOOK_SECRET",
            "required": true
        },
        {
            "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.",
            "displayName": "ImageStream Namespace",
            "name": "IMAGE_STREAM_NAMESPACE",
            "required": true,
            "value": "openshift"
        }
    ]
}