From a7e426cdc85857f2c9357f5ffc02f1f07f6cd5fc Mon Sep 17 00:00:00 2001
From: Michael Valdron <mvaldron@redhat.com>
Date: Wed, 13 Jul 2022 22:44:10 -0400
Subject: [PATCH] test registry for index/server mock testing added.

Signed-off-by: Michael Valdron <mvaldron@redhat.com>
---
 .../tests/registry/extraDevfileEntries.yaml   |  39 ++
 index/server/tests/registry/index_extra.json  |  65 +++
 index/server/tests/registry/index_main.json   | 493 ++++++++++++++++++
 .../server/tests/registry/index_registry.json | 430 +++++++++++++++
 .../code-with-quarkus/1.1.0/devfile.yaml      |  71 +++
 .../samples/nodejs-basic/1.0.0/devfile.yaml   |  64 +++
 .../samples/nodejs-basic/1.0.1/devfile.yaml   |  43 ++
 .../registry/stacks/go/1.1.0/devfile.yaml     |  47 ++
 .../registry/stacks/go/1.2.0/devfile.yaml     |  47 ++
 .../tests/registry/stacks/go/stack.yaml       |   8 +
 .../registry/stacks/java-maven/devfile.yaml   |  51 ++
 .../stacks/java-openliberty/devfile.yaml      |  92 ++++
 .../registry/stacks/java-quarkus/devfile.yaml |  60 +++
 .../stacks/java-springboot/devfile.yaml       |  53 ++
 .../registry/stacks/java-vertx/devfile.yaml   | 126 +++++
 .../java-wildfly-bootable-jar/devfile.yaml    | 204 ++++++++
 .../registry/stacks/java-wildfly/devfile.yaml | 225 ++++++++
 .../tests/registry/stacks/nodejs/archive.tar  | Bin 0 -> 848 bytes
 .../tests/registry/stacks/nodejs/devfile.yaml |  57 ++
 .../stacks/python-django/devfile.yaml         |  50 ++
 .../tests/registry/stacks/python/devfile.yaml |  45 ++
 21 files changed, 2270 insertions(+)
 create mode 100644 index/server/tests/registry/extraDevfileEntries.yaml
 create mode 100644 index/server/tests/registry/index_extra.json
 create mode 100644 index/server/tests/registry/index_main.json
 create mode 100644 index/server/tests/registry/index_registry.json
 create mode 100644 index/server/tests/registry/samples/code-with-quarkus/1.1.0/devfile.yaml
 create mode 100644 index/server/tests/registry/samples/nodejs-basic/1.0.0/devfile.yaml
 create mode 100644 index/server/tests/registry/samples/nodejs-basic/1.0.1/devfile.yaml
 create mode 100644 index/server/tests/registry/stacks/go/1.1.0/devfile.yaml
 create mode 100644 index/server/tests/registry/stacks/go/1.2.0/devfile.yaml
 create mode 100644 index/server/tests/registry/stacks/go/stack.yaml
 create mode 100644 index/server/tests/registry/stacks/java-maven/devfile.yaml
 create mode 100644 index/server/tests/registry/stacks/java-openliberty/devfile.yaml
 create mode 100644 index/server/tests/registry/stacks/java-quarkus/devfile.yaml
 create mode 100644 index/server/tests/registry/stacks/java-springboot/devfile.yaml
 create mode 100644 index/server/tests/registry/stacks/java-vertx/devfile.yaml
 create mode 100644 index/server/tests/registry/stacks/java-wildfly-bootable-jar/devfile.yaml
 create mode 100644 index/server/tests/registry/stacks/java-wildfly/devfile.yaml
 create mode 100644 index/server/tests/registry/stacks/nodejs/archive.tar
 create mode 100644 index/server/tests/registry/stacks/nodejs/devfile.yaml
 create mode 100644 index/server/tests/registry/stacks/python-django/devfile.yaml
 create mode 100644 index/server/tests/registry/stacks/python/devfile.yaml

diff --git a/index/server/tests/registry/extraDevfileEntries.yaml b/index/server/tests/registry/extraDevfileEntries.yaml
new file mode 100644
index 000000000..a11a5cb84
--- /dev/null
+++ b/index/server/tests/registry/extraDevfileEntries.yaml
@@ -0,0 +1,39 @@
+schemaVersion: 1.0.0
+samples:
+  - name: nodejs-basic
+    displayName: Basic NodeJS
+    description: A simple Hello World application
+    icon: nodejsIcon.svg
+    tags: ["NodeJS", "Express"]
+    projectType: nodejs
+    language: nodejs
+    versions:
+      - version: 1.0.0
+        schemaVersion: 2.0.0
+        description: nodejs with devfile v2.0.0
+        git:
+          remotes:
+            origin: https://github.com/redhat-developer/devfile-sample
+      - version: 1.0.1
+        schemaVersion: 2.2.0
+        default: true
+        description: nodejs with devfile v2.2.0
+        git:
+          remotes:
+            origin: https://github.com/nodeshift-starters/devfile-sample
+  - name: code-with-quarkus
+    displayName: Basic Quarkus
+    description: A simple Hello World Java application using Quarkus
+    icon: https://raw.githubusercontent.com/elsony/devfile-sample-code-with-quarkus/main/.devfile/icon/quarkus.png
+    tags: ["Java", "Quarkus"]
+    projectType: quarkus
+    language: java
+    provider: Red Hat
+    versions:
+      - version: 1.1.0
+        schemaVersion: 2.0.0
+        default: true
+        description: java quarkus with devfile v2.0.0
+        git:
+          remotes:
+            origin: https://github.com/elsony/devfile-sample-code-with-quarkus.git
\ No newline at end of file
diff --git a/index/server/tests/registry/index_extra.json b/index/server/tests/registry/index_extra.json
new file mode 100644
index 000000000..a605f4c9b
--- /dev/null
+++ b/index/server/tests/registry/index_extra.json
@@ -0,0 +1,65 @@
+[
+  {
+    "name": "nodejs-basic",
+    "displayName": "Basic NodeJS",
+    "description": "A simple Hello World application",
+    "type": "sample",
+    "tags": [
+      "NodeJS",
+      "Express"
+    ],
+    "icon": "nodejsIcon.svg",
+    "projectType": "nodejs",
+    "language": "nodejs",
+    "versions": [
+      {
+        "version": "1.0.0",
+        "schemaVersion": "2.0.0",
+        "git": {
+          "remotes": {
+            "origin": "https://github.com/redhat-developer/devfile-sample"
+          }
+        },
+        "description": "nodejs with devfile v2.0.0"
+      },
+      {
+        "version": "1.0.1",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "git": {
+          "remotes": {
+            "origin": "https://github.com/nodeshift-starters/devfile-sample"
+          }
+        },
+        "description": "nodejs with devfile v2.2.0"
+      }
+    ]
+  },
+  {
+    "name": "code-with-quarkus",
+    "displayName": "Basic Quarkus",
+    "description": "A simple Hello World Java application using Quarkus",
+    "type": "sample",
+    "tags": [
+      "Java",
+      "Quarkus"
+    ],
+    "icon": "https://raw.githubusercontent.com/elsony/devfile-sample-code-with-quarkus/main/.devfile/icon/quarkus.png",
+    "projectType": "quarkus",
+    "language": "java",
+    "provider": "Red Hat",
+    "versions": [
+      {
+        "version": "1.1.0",
+        "schemaVersion": "2.0.0",
+        "default": true,
+        "git": {
+          "remotes": {
+            "origin": "https://github.com/elsony/devfile-sample-code-with-quarkus.git"
+          }
+        },
+        "description": "java quarkus with devfile v2.0.0"
+      }
+    ]
+  }
+]
\ No newline at end of file
diff --git a/index/server/tests/registry/index_main.json b/index/server/tests/registry/index_main.json
new file mode 100644
index 000000000..64363af21
--- /dev/null
+++ b/index/server/tests/registry/index_main.json
@@ -0,0 +1,493 @@
+[
+  {
+    "name": "go",
+    "displayName": "Go Runtime",
+    "description": "Stack with the latest Go version",
+    "type": "stack",
+    "tags": [
+      "Go",
+      "testtag"
+    ],
+    "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/golang.svg",
+    "projectType": "go",
+    "language": "go",
+    "provider": "Red Hat",
+    "versions": [
+      {
+        "version": "1.1.0",
+        "schemaVersion": "2.0.0",
+        "default": true,
+        "description": "Stack with the latest Go version with devfile v2.0.0 schema verison",
+        "tags": [
+          "Go"
+        ],
+        "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/golang.svg",
+        "links": {
+          "self": "devfile-catalog/go:1.1.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "go-starter"
+        ]
+      },
+      {
+        "version": "1.2.0",
+        "schemaVersion": "2.1.0",
+        "description": "Stack with the latest Go version with devfile v2.1.0 schema verison",
+        "tags": [
+          "testtag"
+        ],
+        "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/golang.svg",
+        "links": {
+          "self": "devfile-catalog/go:1.2.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "go-starter"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "java-maven",
+    "displayName": "Maven Java",
+    "description": "Upstream Maven and OpenJDK 11",
+    "type": "stack",
+    "tags": [
+      "Java",
+      "Maven"
+    ],
+    "projectType": "maven",
+    "language": "java",
+    "provider": "Red Hat",
+    "versions": [
+      {
+        "version": "1.1.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Upstream Maven and OpenJDK 11",
+        "tags": [
+          "Java",
+          "Maven"
+        ],
+        "links": {
+          "self": "devfile-catalog/java-maven:1.1.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "springbootproject"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "java-openliberty",
+    "displayName": "Open Liberty",
+    "description": "Java application stack using Open Liberty runtime",
+    "type": "stack",
+    "projectType": "docker",
+    "language": "java",
+    "provider": "Red Hat",
+    "versions": [
+      {
+        "version": "0.5.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Java application stack using Open Liberty runtime",
+        "links": {
+          "self": "devfile-catalog/java-openliberty:0.5.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "user-app"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "java-quarkus",
+    "displayName": "Quarkus Java",
+    "description": "Upstream Quarkus with Java+GraalVM",
+    "type": "stack",
+    "tags": [
+      "Java",
+      "Quarkus"
+    ],
+    "projectType": "quarkus",
+    "language": "java",
+    "provider": "Red Hat",
+    "versions": [
+      {
+        "version": "1.1.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Upstream Quarkus with Java+GraalVM",
+        "tags": [
+          "Java",
+          "Quarkus"
+        ],
+        "links": {
+          "self": "devfile-catalog/java-quarkus:1.1.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "community",
+          "redhat-product"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "java-springboot",
+    "displayName": "Spring Boot®",
+    "description": "Spring Boot® using Java",
+    "type": "stack",
+    "tags": [
+      "Java",
+      "Spring"
+    ],
+    "icon": "https://www.eclipse.org/che/images/logo-eclipseche.svg",
+    "projectType": "spring",
+    "language": "java",
+    "versions": [
+      {
+        "version": "1.1.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Spring Boot® using Java",
+        "tags": [
+          "Java",
+          "Spring"
+        ],
+        "icon": "https://www.eclipse.org/che/images/logo-eclipseche.svg",
+        "links": {
+          "self": "devfile-catalog/java-springboot:1.1.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "springbootproject"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "java-vertx",
+    "displayName": "Vert.x Java",
+    "description": "Upstream Vert.x using Java",
+    "type": "stack",
+    "tags": [
+      "Java",
+      "Vert.x"
+    ],
+    "projectType": "vertx",
+    "language": "java",
+    "versions": [
+      {
+        "version": "1.1.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Upstream Vert.x using Java",
+        "tags": [
+          "Java",
+          "Vert.x"
+        ],
+        "links": {
+          "self": "devfile-catalog/java-vertx:1.1.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "vertx-http-example",
+          "vertx-istio-circuit-breaker-booster",
+          "vertx-istio-routing-booster",
+          "vertx-secured-http-example-redhat",
+          "vertx-crud-example-redhat",
+          "vertx-istio-security-booster",
+          "vertx-crud-example",
+          "vertx-circuit-breaker-example",
+          "vertx-configmap-example",
+          "vertx-circuit-breaker-example-redhat",
+          "vertx-cache-example-redhat",
+          "vertx-cache-example",
+          "vertx-secured-http-example",
+          "vertx-health-checks-example-redhat",
+          "vertx-http-example-redhat",
+          "vertx-health-checks-example",
+          "vertx-configmap-example-redhat",
+          "vertx-messaging-work-queue-booster",
+          "vertx-istio-distributed-tracing-booster"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "java-wildfly",
+    "displayName": "WildFly Java",
+    "description": "Upstream WildFly",
+    "type": "stack",
+    "tags": [
+      "Java",
+      "WildFly"
+    ],
+    "projectType": "wildfly",
+    "language": "java",
+    "versions": [
+      {
+        "version": "1.0.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Upstream WildFly",
+        "tags": [
+          "Java",
+          "WildFly"
+        ],
+        "links": {
+          "self": "devfile-catalog/java-wildfly:1.0.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "microprofile-config",
+          "microprofile-fault-tolerance",
+          "microprofile-health",
+          "microprofile-jwt",
+          "microprofile-metrics",
+          "microprofile-openapi",
+          "microprofile-opentracing",
+          "microprofile-rest-client"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "java-wildfly-bootable-jar",
+    "displayName": "WildFly Bootable Jar",
+    "description": "Java stack with WildFly in bootable Jar mode, OpenJDK 11 and Maven 3.5",
+    "type": "stack",
+    "tags": [
+      "RHEL8",
+      "Java",
+      "OpenJDK",
+      "Maven",
+      "WildFly",
+      "Microprofile",
+      "WildFly Bootable"
+    ],
+    "projectType": "WildFly",
+    "language": "java",
+    "versions": [
+      {
+        "version": "1.0.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Java stack with WildFly in bootable Jar mode, OpenJDK 11 and Maven 3.5",
+        "tags": [
+          "RHEL8",
+          "Java",
+          "OpenJDK",
+          "Maven",
+          "WildFly",
+          "Microprofile",
+          "WildFly Bootable"
+        ],
+        "links": {
+          "self": "devfile-catalog/java-wildfly-bootable-jar:1.0.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "microprofile-config",
+          "microprofile-fault-tolerance",
+          "microprofile-health",
+          "microprofile-jwt",
+          "microprofile-metrics",
+          "microprofile-openapi",
+          "microprofile-opentracing",
+          "microprofile-rest-client"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "nodejs",
+    "displayName": "NodeJS Runtime",
+    "description": "Stack with NodeJS 12",
+    "type": "stack",
+    "tags": [
+      "NodeJS",
+      "Express",
+      "ubi8"
+    ],
+    "projectType": "nodejs",
+    "language": "nodejs",
+    "versions": [
+      {
+        "version": "1.0.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Stack with NodeJS 12",
+        "tags": [
+          "NodeJS",
+          "Express",
+          "ubi8"
+        ],
+        "links": {
+          "self": "devfile-catalog/nodejs:1.0.0"
+        },
+        "resources": [
+          "archive.tar",
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "nodejs-starter"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "python",
+    "displayName": "Python",
+    "description": "Python Stack with Python 3.7",
+    "type": "stack",
+    "tags": [
+      "Python",
+      "pip"
+    ],
+    "projectType": "python",
+    "language": "python",
+    "versions": [
+      {
+        "version": "1.0.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Python Stack with Python 3.7",
+        "tags": [
+          "Python",
+          "pip"
+        ],
+        "links": {
+          "self": "devfile-catalog/python:1.0.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "python-example"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "python-django",
+    "displayName": "Django",
+    "description": "Python3.7 with Django",
+    "type": "stack",
+    "tags": [
+      "Python",
+      "pip",
+      "Django"
+    ],
+    "projectType": "django",
+    "language": "python",
+    "versions": [
+      {
+        "version": "1.0.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Python3.7 with Django",
+        "tags": [
+          "Python",
+          "pip",
+          "Django"
+        ],
+        "links": {
+          "self": "devfile-catalog/python-django:1.0.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "django-example"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "nodejs-basic",
+    "displayName": "Basic NodeJS",
+    "description": "A simple Hello World application",
+    "type": "sample",
+    "tags": [
+      "NodeJS",
+      "Express"
+    ],
+    "icon": "nodejsIcon.svg",
+    "projectType": "nodejs",
+    "language": "nodejs",
+    "versions": [
+      {
+        "version": "1.0.0",
+        "schemaVersion": "2.0.0",
+        "git": {
+          "remotes": {
+            "origin": "https://github.com/redhat-developer/devfile-sample"
+          }
+        },
+        "description": "nodejs with devfile v2.0.0"
+      },
+      {
+        "version": "1.0.1",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "git": {
+          "remotes": {
+            "origin": "https://github.com/nodeshift-starters/devfile-sample"
+          }
+        },
+        "description": "nodejs with devfile v2.2.0"
+      }
+    ]
+  },
+  {
+    "name": "code-with-quarkus",
+    "displayName": "Basic Quarkus",
+    "description": "A simple Hello World Java application using Quarkus",
+    "type": "sample",
+    "tags": [
+      "Java",
+      "Quarkus"
+    ],
+    "icon": "https://raw.githubusercontent.com/elsony/devfile-sample-code-with-quarkus/main/.devfile/icon/quarkus.png",
+    "projectType": "quarkus",
+    "language": "java",
+    "provider": "Red Hat",
+    "versions": [
+      {
+        "version": "1.1.0",
+        "schemaVersion": "2.0.0",
+        "default": true,
+        "git": {
+          "remotes": {
+            "origin": "https://github.com/elsony/devfile-sample-code-with-quarkus.git"
+          }
+        },
+        "description": "java quarkus with devfile v2.0.0"
+      }
+    ]
+  }
+]
\ No newline at end of file
diff --git a/index/server/tests/registry/index_registry.json b/index/server/tests/registry/index_registry.json
new file mode 100644
index 000000000..f0050be0b
--- /dev/null
+++ b/index/server/tests/registry/index_registry.json
@@ -0,0 +1,430 @@
+[
+  {
+    "name": "go",
+    "displayName": "Go Runtime",
+    "description": "Stack with the latest Go version",
+    "type": "stack",
+    "tags": [
+      "Go",
+      "testtag"
+    ],
+    "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/golang.svg",
+    "projectType": "go",
+    "language": "go",
+    "provider": "Red Hat",
+    "versions": [
+      {
+        "version": "1.1.0",
+        "schemaVersion": "2.0.0",
+        "default": true,
+        "description": "Stack with the latest Go version with devfile v2.0.0 schema verison",
+        "tags": [
+          "Go"
+        ],
+        "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/golang.svg",
+        "links": {
+          "self": "devfile-catalog/go:1.1.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "go-starter"
+        ]
+      },
+      {
+        "version": "1.2.0",
+        "schemaVersion": "2.1.0",
+        "description": "Stack with the latest Go version with devfile v2.1.0 schema verison",
+        "tags": [
+          "testtag"
+        ],
+        "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/golang.svg",
+        "links": {
+          "self": "devfile-catalog/go:1.2.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "go-starter"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "java-maven",
+    "displayName": "Maven Java",
+    "description": "Upstream Maven and OpenJDK 11",
+    "type": "stack",
+    "tags": [
+      "Java",
+      "Maven"
+    ],
+    "projectType": "maven",
+    "language": "java",
+    "provider": "Red Hat",
+    "versions": [
+      {
+        "version": "1.1.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Upstream Maven and OpenJDK 11",
+        "tags": [
+          "Java",
+          "Maven"
+        ],
+        "links": {
+          "self": "devfile-catalog/java-maven:1.1.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "springbootproject"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "java-openliberty",
+    "displayName": "Open Liberty",
+    "description": "Java application stack using Open Liberty runtime",
+    "type": "stack",
+    "projectType": "docker",
+    "language": "java",
+    "provider": "Red Hat",
+    "versions": [
+      {
+        "version": "0.5.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Java application stack using Open Liberty runtime",
+        "links": {
+          "self": "devfile-catalog/java-openliberty:0.5.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "user-app"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "java-quarkus",
+    "displayName": "Quarkus Java",
+    "description": "Upstream Quarkus with Java+GraalVM",
+    "type": "stack",
+    "tags": [
+      "Java",
+      "Quarkus"
+    ],
+    "projectType": "quarkus",
+    "language": "java",
+    "provider": "Red Hat",
+    "versions": [
+      {
+        "version": "1.1.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Upstream Quarkus with Java+GraalVM",
+        "tags": [
+          "Java",
+          "Quarkus"
+        ],
+        "links": {
+          "self": "devfile-catalog/java-quarkus:1.1.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "community",
+          "redhat-product"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "java-springboot",
+    "displayName": "Spring Boot®",
+    "description": "Spring Boot® using Java",
+    "type": "stack",
+    "tags": [
+      "Java",
+      "Spring"
+    ],
+    "icon": "https://www.eclipse.org/che/images/logo-eclipseche.svg",
+    "projectType": "spring",
+    "language": "java",
+    "versions": [
+      {
+        "version": "1.1.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Spring Boot® using Java",
+        "tags": [
+          "Java",
+          "Spring"
+        ],
+        "icon": "https://www.eclipse.org/che/images/logo-eclipseche.svg",
+        "links": {
+          "self": "devfile-catalog/java-springboot:1.1.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "springbootproject"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "java-vertx",
+    "displayName": "Vert.x Java",
+    "description": "Upstream Vert.x using Java",
+    "type": "stack",
+    "tags": [
+      "Java",
+      "Vert.x"
+    ],
+    "projectType": "vertx",
+    "language": "java",
+    "versions": [
+      {
+        "version": "1.1.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Upstream Vert.x using Java",
+        "tags": [
+          "Java",
+          "Vert.x"
+        ],
+        "links": {
+          "self": "devfile-catalog/java-vertx:1.1.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "vertx-http-example",
+          "vertx-istio-circuit-breaker-booster",
+          "vertx-istio-routing-booster",
+          "vertx-secured-http-example-redhat",
+          "vertx-crud-example-redhat",
+          "vertx-istio-security-booster",
+          "vertx-crud-example",
+          "vertx-circuit-breaker-example",
+          "vertx-configmap-example",
+          "vertx-circuit-breaker-example-redhat",
+          "vertx-cache-example-redhat",
+          "vertx-cache-example",
+          "vertx-secured-http-example",
+          "vertx-health-checks-example-redhat",
+          "vertx-http-example-redhat",
+          "vertx-health-checks-example",
+          "vertx-configmap-example-redhat",
+          "vertx-messaging-work-queue-booster",
+          "vertx-istio-distributed-tracing-booster"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "java-wildfly",
+    "displayName": "WildFly Java",
+    "description": "Upstream WildFly",
+    "type": "stack",
+    "tags": [
+      "Java",
+      "WildFly"
+    ],
+    "projectType": "wildfly",
+    "language": "java",
+    "versions": [
+      {
+        "version": "1.0.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Upstream WildFly",
+        "tags": [
+          "Java",
+          "WildFly"
+        ],
+        "links": {
+          "self": "devfile-catalog/java-wildfly:1.0.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "microprofile-config",
+          "microprofile-fault-tolerance",
+          "microprofile-health",
+          "microprofile-jwt",
+          "microprofile-metrics",
+          "microprofile-openapi",
+          "microprofile-opentracing",
+          "microprofile-rest-client"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "java-wildfly-bootable-jar",
+    "displayName": "WildFly Bootable Jar",
+    "description": "Java stack with WildFly in bootable Jar mode, OpenJDK 11 and Maven 3.5",
+    "type": "stack",
+    "tags": [
+      "RHEL8",
+      "Java",
+      "OpenJDK",
+      "Maven",
+      "WildFly",
+      "Microprofile",
+      "WildFly Bootable"
+    ],
+    "projectType": "WildFly",
+    "language": "java",
+    "versions": [
+      {
+        "version": "1.0.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Java stack with WildFly in bootable Jar mode, OpenJDK 11 and Maven 3.5",
+        "tags": [
+          "RHEL8",
+          "Java",
+          "OpenJDK",
+          "Maven",
+          "WildFly",
+          "Microprofile",
+          "WildFly Bootable"
+        ],
+        "links": {
+          "self": "devfile-catalog/java-wildfly-bootable-jar:1.0.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "microprofile-config",
+          "microprofile-fault-tolerance",
+          "microprofile-health",
+          "microprofile-jwt",
+          "microprofile-metrics",
+          "microprofile-openapi",
+          "microprofile-opentracing",
+          "microprofile-rest-client"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "nodejs",
+    "displayName": "NodeJS Runtime",
+    "description": "Stack with NodeJS 12",
+    "type": "stack",
+    "tags": [
+      "NodeJS",
+      "Express",
+      "ubi8"
+    ],
+    "projectType": "nodejs",
+    "language": "nodejs",
+    "versions": [
+      {
+        "version": "1.0.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Stack with NodeJS 12",
+        "tags": [
+          "NodeJS",
+          "Express",
+          "ubi8"
+        ],
+        "links": {
+          "self": "devfile-catalog/nodejs:1.0.0"
+        },
+        "resources": [
+          "archive.tar",
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "nodejs-starter"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "python",
+    "displayName": "Python",
+    "description": "Python Stack with Python 3.7",
+    "type": "stack",
+    "tags": [
+      "Python",
+      "pip"
+    ],
+    "projectType": "python",
+    "language": "python",
+    "versions": [
+      {
+        "version": "1.0.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Python Stack with Python 3.7",
+        "tags": [
+          "Python",
+          "pip"
+        ],
+        "links": {
+          "self": "devfile-catalog/python:1.0.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "python-example"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "python-django",
+    "displayName": "Django",
+    "description": "Python3.7 with Django",
+    "type": "stack",
+    "tags": [
+      "Python",
+      "pip",
+      "Django"
+    ],
+    "projectType": "django",
+    "language": "python",
+    "versions": [
+      {
+        "version": "1.0.0",
+        "schemaVersion": "2.2.0",
+        "default": true,
+        "description": "Python3.7 with Django",
+        "tags": [
+          "Python",
+          "pip",
+          "Django"
+        ],
+        "links": {
+          "self": "devfile-catalog/python-django:1.0.0"
+        },
+        "resources": [
+          "devfile.yaml"
+        ],
+        "starterProjects": [
+          "django-example"
+        ]
+      }
+    ]
+  }
+]
\ No newline at end of file
diff --git a/index/server/tests/registry/samples/code-with-quarkus/1.1.0/devfile.yaml b/index/server/tests/registry/samples/code-with-quarkus/1.1.0/devfile.yaml
new file mode 100644
index 000000000..a77942058
--- /dev/null
+++ b/index/server/tests/registry/samples/code-with-quarkus/1.1.0/devfile.yaml
@@ -0,0 +1,71 @@
+schemaVersion: 2.0.0
+metadata:
+  name: java-quarkus
+  version: 1.1.0
+  attributes:
+    alpha.build-context: .
+    alpha.build-dockerfile: src/main/docker/Dockerfile.jvm.staged
+  website: https://quarkus.io
+  displayName: Quarkus Java
+  description: Upstream Quarkus with Java+GraalVM
+  tags: ["Java", "Quarkus"]
+  projectType: "quarkus"
+  language: "java"
+starterProjects:
+  - name: community
+    zip:
+      location: https://code.quarkus.io/d?e=io.quarkus%3Aquarkus-resteasy&e=io.quarkus%3Aquarkus-micrometer&e=io.quarkus%3Aquarkus-smallrye-health&e=io.quarkus%3Aquarkus-openshift&cn=devfile
+  - name: redhat-product
+    zip:
+      location: https://code.quarkus.redhat.com/d?e=io.quarkus%3Aquarkus-resteasy&e=io.quarkus%3Aquarkus-smallrye-health&e=io.quarkus%3Aquarkus-openshift
+components:
+  - name: buildguidance
+    attributes:
+      tool: console-import
+    container:
+      image: buildguidanceimage-placeholder
+      memoryLimit: 1024Mi
+      endpoints:
+        - name: http-8081
+          targetPort: 8081
+  - name: tools
+    container:
+      image: quay.io/eclipse/che-quarkus:nightly
+      memoryLimit: 1512Mi
+      mountSources: true
+      volumeMounts:
+        - name: m2
+          path: /home/user/.m2
+      endpoints:
+        - name: '8080-http'
+          targetPort: 8080
+  - name: m2
+    volume:
+      size: 3Gi
+commands:
+  - id: init-compile
+    exec:
+      component: tools
+      commandLine: "mvn -Dmaven.repo.local=/home/user/.m2/repository compile"
+      workingDir: $PROJECTS_ROOT
+  - id: dev-run
+    exec:
+      component: tools
+      commandLine: "mvn -Dmaven.repo.local=/home/user/.m2/repository quarkus:dev -Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
+      hotReloadCapable: true
+      group:
+        kind: run
+        isDefault: true
+      workingDir: $PROJECTS_ROOT
+  - id: dev-debug
+    exec:
+      component: tools
+      commandLine: "mvn -Dmaven.repo.local=/home/user/.m2/repository quarkus:dev -Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Ddebug=${DEBUG_PORT}"
+      hotReloadCapable: true
+      group:
+        kind: debug
+        isDefault: true
+      workingDir: $PROJECTS_ROOT
+events:
+  postStart:
+    - init-compile
diff --git a/index/server/tests/registry/samples/nodejs-basic/1.0.0/devfile.yaml b/index/server/tests/registry/samples/nodejs-basic/1.0.0/devfile.yaml
new file mode 100644
index 000000000..5fa08e605
--- /dev/null
+++ b/index/server/tests/registry/samples/nodejs-basic/1.0.0/devfile.yaml
@@ -0,0 +1,64 @@
+schemaVersion: 2.0.0
+metadata:
+  name: nodejs
+  version: 1.0.1
+  displayName: Node.js Runtime
+  description: Stack with Node.js 14
+  tags: ["NodeJS", "Express", "ubi8"]
+  projectType: "nodejs"
+  language: "nodejs"
+  attributes:
+    alpha.build-context: .
+    alpha.build-dockerfile: Dockerfile
+components:
+  - name: buildguidance
+    attributes:
+      tool: console-import
+    container:
+      image: buildguidanceimage-placeholder
+      memoryLimit: 1024Mi
+      endpoints:
+        - name: http-3001
+          targetPort: 3001
+  - name: runtime
+    container:
+      image: registry.access.redhat.com/ubi8/nodejs-14:latest
+      memoryLimit: 1024Mi
+      mountSources: true
+      sourceMapping: /project
+      endpoints:
+        - name: http-3000
+          targetPort: 3000
+commands:
+  - id: install
+    exec:
+      component: runtime
+      commandLine: npm install
+      workingDir: /project
+      group:
+        kind: build
+        isDefault: true
+  - id: run
+    exec:
+      component: runtime
+      commandLine: npm start
+      workingDir: /project
+      group:
+        kind: run
+        isDefault: true
+  - id: debug
+    exec:
+      component: runtime
+      commandLine: npm run debug
+      workingDir: /project
+      group:
+        kind: debug
+        isDefault: true
+  - id: test
+    exec:
+      component: runtime
+      commandLine: npm test
+      workingDir: /project
+      group:
+        kind: test
+        isDefault: true
diff --git a/index/server/tests/registry/samples/nodejs-basic/1.0.1/devfile.yaml b/index/server/tests/registry/samples/nodejs-basic/1.0.1/devfile.yaml
new file mode 100644
index 000000000..77164e36f
--- /dev/null
+++ b/index/server/tests/registry/samples/nodejs-basic/1.0.1/devfile.yaml
@@ -0,0 +1,43 @@
+schemaVersion: 2.2.0
+metadata:
+  name: nodejs
+  version: 1.0.1
+  displayName: Node.js Runtime
+  description: Stack with Node.js 14
+  tags: ["NodeJS", "Express", "ubi8"]
+  projectType: "nodejs"
+  language: "nodejs"
+  attributes:
+    alpha.dockerimage-port: 3001
+  provider: Red Hat
+  supportUrl: https://github.com/devfile-samples/devfile-support#support-information
+parent:
+  id: nodejs
+  registryUrl: "https://registry.devfile.io"
+components:
+  - name: outerloop-build
+    image:
+      imageName: nodejs-image:latest
+      dockerfile:
+        uri: Dockerfile
+        buildContext: .
+        rootRequired: false
+  - name: outerloop-deploy
+    kubernetes:
+      uri: outerloop-deploy.yaml
+commands:
+  - id: build-image
+    apply:
+      component: outerloop-build
+  - id: deployk8s
+    apply:
+      component: outerloop-deploy
+  - id: deploy
+    composite:
+      commands:
+        - build-image
+        - deployk8s
+      group:
+        kind: deploy
+        isDefault: true
+
diff --git a/index/server/tests/registry/stacks/go/1.1.0/devfile.yaml b/index/server/tests/registry/stacks/go/1.1.0/devfile.yaml
new file mode 100644
index 000000000..001d47077
--- /dev/null
+++ b/index/server/tests/registry/stacks/go/1.1.0/devfile.yaml
@@ -0,0 +1,47 @@
+schemaVersion: 2.0.0
+metadata:
+  description: Stack with the latest Go version with devfile v2.0.0 schema verison
+  displayName: Go Runtime
+  icon: https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/golang.svg
+  language: go
+  name: go
+  provider: Red Hat
+  projectType: go
+  tags:
+    - Go
+  version: 1.1.0
+starterProjects:
+  - name: go-starter
+    git:
+      checkoutFrom:
+        revision: main
+      remotes:
+        origin: https://github.com/devfile-samples/devfile-stack-go.git
+components:
+  - container:
+      endpoints:
+        - name: http
+          targetPort: 8080
+      image: golang:latest
+      memoryLimit: 1024Mi
+      mountSources: true
+      sourceMapping: /project
+    name: runtime
+commands:
+  - exec:
+      commandLine: GOCACHE=/project/.cache go build main.go
+      component: runtime
+      group:
+        isDefault: true
+        kind: build
+      workingDir: /project
+    id: build
+  - exec:
+      commandLine: ./main
+      component: runtime
+      group:
+        isDefault: true
+        kind: run
+      workingDir: /project
+    id: run
+
diff --git a/index/server/tests/registry/stacks/go/1.2.0/devfile.yaml b/index/server/tests/registry/stacks/go/1.2.0/devfile.yaml
new file mode 100644
index 000000000..a879fa8fd
--- /dev/null
+++ b/index/server/tests/registry/stacks/go/1.2.0/devfile.yaml
@@ -0,0 +1,47 @@
+schemaVersion: 2.1.0
+metadata:
+  description: Stack with the latest Go version with devfile v2.1.0 schema verison
+  displayName: Go Runtime
+  icon: https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/golang.svg
+  language: go
+  name: go
+  provider: Red Hat
+  projectType: go
+  tags:
+    - testtag
+  version: 1.2.0
+starterProjects:
+  - name: go-starter
+    git:
+      checkoutFrom:
+        revision: main
+      remotes:
+        origin: https://github.com/devfile-samples/devfile-stack-go.git
+components:
+  - container:
+      endpoints:
+        - name: http
+          targetPort: 8080
+      image: golang:latest
+      memoryLimit: 1024Mi
+      mountSources: true
+      sourceMapping: /project
+    name: runtime
+commands:
+  - exec:
+      commandLine: GOCACHE=/project/.cache go build main.go
+      component: runtime
+      group:
+        isDefault: true
+        kind: build
+      workingDir: /project
+    id: build
+  - exec:
+      commandLine: ./main
+      component: runtime
+      group:
+        isDefault: true
+        kind: run
+      workingDir: /project
+    id: run
+
diff --git a/index/server/tests/registry/stacks/go/stack.yaml b/index/server/tests/registry/stacks/go/stack.yaml
new file mode 100644
index 000000000..4ac2bf82a
--- /dev/null
+++ b/index/server/tests/registry/stacks/go/stack.yaml
@@ -0,0 +1,8 @@
+name: go
+description: Stack with the latest Go version
+displayName: Go Runtime
+icon: https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/golang.svg
+versions:
+  - version: 1.1.0
+    default: true #should have one and only one default version
+  - version: 1.2.0
diff --git a/index/server/tests/registry/stacks/java-maven/devfile.yaml b/index/server/tests/registry/stacks/java-maven/devfile.yaml
new file mode 100644
index 000000000..744702fff
--- /dev/null
+++ b/index/server/tests/registry/stacks/java-maven/devfile.yaml
@@ -0,0 +1,51 @@
+schemaVersion: 2.2.0
+metadata:
+  name: java-maven
+  version: 1.1.0
+  displayName: Maven Java
+  description: Upstream Maven and OpenJDK 11
+  tags: ["Java", "Maven"]
+  projectType: "maven"
+  language: "java"
+  provider: "Red Hat"
+starterProjects:
+  - name: springbootproject
+    git:
+      remotes:
+        origin: "https://github.com/odo-devfiles/springboot-ex.git"
+components:
+  - name: tools
+    container:
+      image: quay.io/eclipse/che-java11-maven:nightly
+      memoryLimit: 512Mi
+      mountSources: true
+      endpoints:
+        - name: 'http-8080'
+          targetPort: 8080
+      volumeMounts:
+        - name: m2
+          path: /home/user/.m2
+  - name: m2
+    volume: {}
+commands:
+  - id: mvn-package
+    exec:
+      component: tools
+      commandLine: "mvn -Dmaven.repo.local=/home/user/.m2/repository package"
+      group:
+        kind: build
+        isDefault: true
+  - id: run 
+    exec:
+      component: tools
+      commandLine: "java -jar target/*.jar"
+      group:
+        kind: run
+        isDefault: true
+  - id: debug
+    exec:
+      component: tools
+      commandLine: "java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=${DEBUG_PORT},suspend=n -jar target/*.jar"
+      group:
+        kind: debug
+        isDefault: true
\ No newline at end of file
diff --git a/index/server/tests/registry/stacks/java-openliberty/devfile.yaml b/index/server/tests/registry/stacks/java-openliberty/devfile.yaml
new file mode 100644
index 000000000..9b16a26ef
--- /dev/null
+++ b/index/server/tests/registry/stacks/java-openliberty/devfile.yaml
@@ -0,0 +1,92 @@
+# Copyright (c) 2021 IBM Corporation and others
+#
+# See the NOTICE file(s) distributed with this work for additional
+# information regarding copyright ownership.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# You may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+schemaVersion: 2.2.0
+metadata:
+  name: java-openliberty
+  version: 0.5.0
+  description: Java application stack using Open Liberty runtime
+  displayName: "Open Liberty"
+  language: "java"
+  projectType: "docker"
+  provider: "Red Hat"
+  alpha.build-dockerfile: "https://github.com/OpenLiberty/application-stack/releases/download/outer-loop-0.5.1/Dockerfile"
+  alpha.deployment-manifest: "https://github.com/OpenLiberty/application-stack/releases/download/outer-loop-0.5.1/app-deploy.yaml"
+starterProjects:
+  - name: user-app
+    git:
+      remotes:
+        origin: 'https://github.com/OpenLiberty/application-stack-starters.git'
+components:
+  - name: devruntime
+    container:
+        # In the original upstream of this devfile, the image used is openliberty/application-stack:<x.y.z>, which is built from the repository: https://github.com/OpenLiberty/application-stack
+      image: openliberty/application-stack:0.5
+      memoryLimit: 1512Mi
+      mountSources: true
+      endpoints:
+        - exposure: public
+          path: /
+          name: ep1
+          targetPort: 9080
+          protocol: http
+commands:
+  - id: build
+    exec:  
+      component: devruntime 
+      commandLine: /stack/ol/scripts/devbuild-cmd.sh 21.0.0.3
+      workingDir: /projects
+      hotReloadCapable: true
+      group:
+        kind: build 
+        isDefault: true
+  - id: run
+    exec:
+      component: devruntime 
+      commandLine: mvn -Dliberty.runtime.version=21.0.0.3 -Ddebug=false -DhotTests=true -DcompileWait=3 liberty:dev
+      workingDir: /projects
+      hotReloadCapable: true
+      group:
+        kind: run
+        isDefault: true
+  - id: run-test-off
+    exec:
+      component: devruntime
+      commandLine: mvn -Dliberty.runtime.version=21.0.0.3 -Ddebug=false liberty:dev
+      workingDir: /projects
+      hotReloadCapable: true
+      group:
+        kind: run
+        isDefault: false
+  - id: debug
+    exec:
+      component: devruntime 
+      commandLine: mvn -Dliberty.runtime.version=21.0.0.3 -DdebugPort=${DEBUG_PORT} liberty:dev -Dliberty.env.WLP_DEBUG_REMOTE=y
+      workingDir: /projects
+      hotReloadCapable: true
+      group:
+        kind: debug
+        isDefault: true
+  - id: test
+    # The 'test' command requires an active container, so we don't need to specify the liberty runtime version
+    exec:
+      component: devruntime 
+      commandLine: mvn failsafe:integration-test failsafe:verify
+      workingDir: /projects
+      hotReloadCapable: true
+      group:
+        kind: test
+        isDefault: true
diff --git a/index/server/tests/registry/stacks/java-quarkus/devfile.yaml b/index/server/tests/registry/stacks/java-quarkus/devfile.yaml
new file mode 100644
index 000000000..b7746e290
--- /dev/null
+++ b/index/server/tests/registry/stacks/java-quarkus/devfile.yaml
@@ -0,0 +1,60 @@
+schemaVersion: 2.2.0
+metadata:
+  name: java-quarkus
+  version: 1.1.0
+  website: https://quarkus.io
+  displayName: Quarkus Java
+  description: Upstream Quarkus with Java+GraalVM
+  tags: ["Java", "Quarkus"]
+  projectType: "quarkus"
+  language: "java"
+  provider: "Red Hat"
+starterProjects:
+  - name: community
+    zip:
+      location: https://code.quarkus.io/d?e=io.quarkus%3Aquarkus-resteasy&e=io.quarkus%3Aquarkus-micrometer&e=io.quarkus%3Aquarkus-smallrye-health&e=io.quarkus%3Aquarkus-openshift&cn=devfile
+  - name: redhat-product
+    zip:
+      location: https://code.quarkus.redhat.com/d?e=io.quarkus%3Aquarkus-resteasy&e=io.quarkus%3Aquarkus-smallrye-health&e=io.quarkus%3Aquarkus-openshift
+components:
+  - name: tools
+    container:
+      image: quay.io/eclipse/che-quarkus:nightly
+      memoryLimit: 1512Mi
+      mountSources: true
+      volumeMounts:
+        - name: m2
+          path: /home/user/.m2
+      endpoints:
+        - name: '8080-http'
+          targetPort: 8080
+  - name: m2
+    volume:
+      size: 3Gi
+commands:
+  - id: init-compile
+    exec:
+      component: tools
+      commandLine: "mvn -Dmaven.repo.local=/home/user/.m2/repository compile"
+      workingDir: $PROJECTS_ROOT
+  - id: dev-run
+    exec:
+      component: tools
+      commandLine: "mvn -Dmaven.repo.local=/home/user/.m2/repository quarkus:dev -Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
+      hotReloadCapable: true
+      group:
+        kind: run
+        isDefault: true
+      workingDir: $PROJECTS_ROOT
+  - id: dev-debug
+    exec:
+      component: tools
+      commandLine: "mvn -Dmaven.repo.local=/home/user/.m2/repository quarkus:dev -Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Ddebug=${DEBUG_PORT}"
+      hotReloadCapable: true
+      group:
+        kind: debug
+        isDefault: true
+      workingDir: $PROJECTS_ROOT
+events:
+  postStart:
+    - init-compile
diff --git a/index/server/tests/registry/stacks/java-springboot/devfile.yaml b/index/server/tests/registry/stacks/java-springboot/devfile.yaml
new file mode 100644
index 000000000..abe0d0744
--- /dev/null
+++ b/index/server/tests/registry/stacks/java-springboot/devfile.yaml
@@ -0,0 +1,53 @@
+schemaVersion: 2.2.0
+metadata:
+  name: java-springboot
+  version: 1.1.0
+  displayName: Spring Boot®
+  description: Spring Boot® using Java
+  tags: ["Java", "Spring"]
+  globalMemoryLimit: 2674Mi
+  icon: https://www.eclipse.org/che/images/logo-eclipseche.svg
+  projectType: "spring"
+  language: "java"
+starterProjects:
+  - name: springbootproject
+    git:
+      remotes:
+        origin: "https://github.com/odo-devfiles/springboot-ex.git"
+components:
+  - name: tools
+    container:
+      image: quay.io/eclipse/che-java11-maven:nightly
+      memoryLimit: 768Mi
+      mountSources: true
+      endpoints:
+      - name: '8080-tcp'
+        targetPort: 8080
+      volumeMounts:
+        - name: m2
+          path: /home/user/.m2
+  - name: m2
+    volume:
+      size: 3Gi
+commands:
+  - id: build
+    exec:
+      component: tools
+      commandLine: "mvn clean -Dmaven.repo.local=/home/user/.m2/repository package -Dmaven.test.skip=true"
+      group:
+        kind: build
+        isDefault: true
+  - id: run
+    exec:
+      component: tools
+      commandLine: "mvn -Dmaven.repo.local=/home/user/.m2/repository spring-boot:run"
+      group:
+        kind: run
+        isDefault: true
+  - id: debug
+    exec:
+      component: tools
+      commandLine: "java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=${DEBUG_PORT},suspend=n -jar target/*.jar"
+      group:
+        kind: debug
+        isDefault: true
\ No newline at end of file
diff --git a/index/server/tests/registry/stacks/java-vertx/devfile.yaml b/index/server/tests/registry/stacks/java-vertx/devfile.yaml
new file mode 100644
index 000000000..a3bd188c1
--- /dev/null
+++ b/index/server/tests/registry/stacks/java-vertx/devfile.yaml
@@ -0,0 +1,126 @@
+schemaVersion: 2.2.0
+metadata:
+  name: java-vertx
+  version: 1.1.0
+  displayName: Vert.x Java
+  description: Upstream Vert.x using Java
+  tags: ["Java", "Vert.x"]
+  projectType: "vertx"
+  language: "java"
+starterProjects:
+  - name: vertx-http-example
+    git:
+      remotes:
+        origin: https://github.com/openshift-vertx-examples/vertx-http-example
+  - name: vertx-istio-circuit-breaker-booster
+    git:
+      remotes:
+        origin: https://github.com/openshift-vertx-examples/vertx-istio-circuit-breaker-booster
+  - name: vertx-istio-routing-booster
+    git:
+      remotes:
+        origin: https://github.com/openshift-vertx-examples/vertx-istio-routing-booster
+  - name: vertx-secured-http-example-redhat
+    git:
+      remotes:
+        origin: https://github.com/openshift-vertx-examples/vertx-secured-http-example-redhat
+  - name: vertx-crud-example-redhat
+    git:
+      remotes:
+        origin: https://github.com/openshift-vertx-examples/vertx-crud-example-redhat
+  - name: vertx-istio-security-booster
+    git:
+      remotes:
+        origin: https://github.com/openshift-vertx-examples/vertx-istio-security-booster
+  - name: vertx-crud-example
+    git:
+      remotes:
+        origin: https://github.com/openshift-vertx-examples/vertx-crud-example
+  - name: vertx-circuit-breaker-example
+    git:
+      remotes:
+        origin: https://github.com/openshift-vertx-examples/vertx-circuit-breaker-example
+  - name: vertx-configmap-example
+    git:
+      remotes:
+        origin: https://github.com/openshift-vertx-examples/vertx-configmap-example
+  - name: vertx-circuit-breaker-example-redhat
+    git:
+      remotes:
+        origin: https://github.com/openshift-vertx-examples/vertx-circuit-breaker-example-redhat
+  - name: vertx-cache-example-redhat
+    git:
+      remotes:
+        origin: https://github.com/openshift-vertx-examples/vertx-cache-example-redhat
+  - name: vertx-cache-example
+    git:
+      remotes:
+        origin: https://github.com/openshift-vertx-examples/vertx-cache-example
+  - name: vertx-secured-http-example
+    git:
+      remotes:
+        origin: https://github.com/openshift-vertx-examples/vertx-secured-http-example
+  - name: vertx-health-checks-example-redhat
+    git:
+      remotes:
+        origin: https://github.com/openshift-vertx-examples/vertx-health-checks-example-redhat
+  - name: vertx-http-example-redhat
+    git:
+      remotes:
+        origin: https://github.com/openshift-vertx-examples/vertx-http-example-redhat
+  - name: vertx-health-checks-example
+    git:
+      remotes:
+        origin: https://github.com/openshift-vertx-examples/vertx-health-checks-example
+  - name: vertx-configmap-example-redhat
+    git:
+      remotes:
+        origin: https://github.com/openshift-vertx-examples/vertx-configmap-example-redhat
+  - name: vertx-messaging-work-queue-booster
+    git:
+      remotes:
+        origin: https://github.com/openshift-vertx-examples/vertx-messaging-work-queue-booster
+  - name: vertx-istio-distributed-tracing-booster
+    git:
+      remotes:
+        origin: https://github.com/openshift-vertx-examples/vertx-istio-distributed-tracing-booster
+components:
+  - name: runtime
+    container:
+      endpoints:
+      - exposure: public
+        path: /
+        name: '8080-tcp'
+        targetPort: 8080
+        protocol: http
+      image: quay.io/eclipse/che-java11-maven:nightly
+      memoryLimit: 512Mi
+      mountSources: true
+      volumeMounts:
+      - name: m2
+        path: /home/user/.m2
+  - name: m2
+    volume:
+      size: 3Gi
+commands:
+  - id: mvn-package
+    exec:
+      commandLine: mvn package -Dmaven.test.skip=true
+      component: runtime
+      group:
+        isDefault: true
+        kind: build
+  - id: run
+    exec:
+      commandLine: mvn io.reactiverse:vertx-maven-plugin:run
+      component: runtime
+      group:
+        isDefault: true
+        kind: run
+  - id: debug
+    exec:
+      commandLine: mvn io.reactiverse:vertx-maven-plugin:debug -Ddebug.port=${DEBUG_PORT}
+      component: runtime
+      group:
+        isDefault: true
+        kind: debug
diff --git a/index/server/tests/registry/stacks/java-wildfly-bootable-jar/devfile.yaml b/index/server/tests/registry/stacks/java-wildfly-bootable-jar/devfile.yaml
new file mode 100644
index 000000000..4b6094da4
--- /dev/null
+++ b/index/server/tests/registry/stacks/java-wildfly-bootable-jar/devfile.yaml
@@ -0,0 +1,204 @@
+schemaVersion: 2.2.0
+metadata:
+  name: java-wildfly-bootable-jar
+  version: 1.0.0
+  website: https://docs.wildfly.org/bootablejar/
+  displayName: WildFly Bootable Jar
+  description: Java stack with WildFly in bootable Jar mode, OpenJDK 11 and Maven 3.5
+  tags:  ["RHEL8", "Java", "OpenJDK", "Maven", "WildFly", "Microprofile", "WildFly Bootable"]
+  projectType: "WildFly"
+  language: "java"
+starterProjects:
+  - name: microprofile-config
+    description: WildFly Eclipse Microprofile Config Quickstart
+    git:
+      checkoutFrom:
+        remote: wildfly-quickstart
+        revision: 22.0.0.Final
+      remotes:
+        wildfly-quickstart: https://github.com/wildfly/quickstart.git
+    subDir: microprofile-config
+  - name: microprofile-fault-tolerance
+    description: WildFly Eclipse Microprofile Fault Tolerance Quickstart
+    git:
+      checkoutFrom:
+        remote: wildfly-quickstart
+        revision: 22.0.0.Final
+      remotes:
+        wildfly-quickstart: https://github.com/wildfly/quickstart.git
+    subDir: microprofile-fault-tolerance
+  - name: microprofile-health
+    description: WildFly Eclipse Microprofile Health Quickstart
+    git:
+      checkoutFrom:
+        remote: wildfly-quickstart
+        revision: 22.0.0.Final
+      remotes:
+        wildfly-quickstart: https://github.com/wildfly/quickstart.git
+    subDir: microprofile-health
+  - name: microprofile-jwt
+    description: WildFly Eclipse Microprofile JWT Quickstart
+    git:
+      checkoutFrom:
+        remote: wildfly-quickstart
+        revision: 22.0.0.Final
+      remotes:
+        wildfly-quickstart: https://github.com/wildfly/quickstart.git
+    subDir: microprofile-jwt
+  - name: microprofile-metrics
+    description: WildFly Eclipse Microprofile Metrics Quickstart
+    git:
+      checkoutFrom:
+        remote: wildfly-quickstart
+        revision: 22.0.0.Final
+      remotes:
+        wildfly-quickstart: https://github.com/wildfly/quickstart.git
+    subDir: microprofile-metrics
+  - name: microprofile-openapi
+    description: WildFly Eclipse Microprofile OpenAPI Quickstart
+    git:
+      checkoutFrom:
+        remote: wildfly-quickstart
+        revision: 22.0.0.Final
+      remotes:
+        wildfly-quickstart: https://github.com/wildfly/quickstart.git
+    subDir: microprofile-openapi
+  - name: microprofile-opentracing
+    description: WildFly Eclipse Microprofile OpenTracing Quickstart
+    git:
+      checkoutFrom:
+        remote: wildfly-quickstart
+        revision: 22.0.0.Final
+      remotes:
+        wildfly-quickstart: https://github.com/wildfly/quickstart.git
+    subDir: microprofile-opentracing
+  - name: microprofile-rest-client
+    description: WildFly Eclipse Microprofile REST Client Quickstart
+    git:
+      checkoutFrom:
+        remote: wildfly-quickstart
+        revision: 22.0.0.Final
+      remotes:
+        wildfly-quickstart: https://github.com/wildfly/quickstart.git
+    subDir: microprofile-rest-client
+components:
+  - name: jaeger
+    container:
+      image: quay.io/jaegertracing/all-in-one:1.21.0
+      memoryLimit: 128Mi
+      endpoints:
+        - name: 'tracing-ui'
+          targetPort: 16686
+  - name: wildfly
+    container:
+      image: registry.access.redhat.com/ubi8/openjdk-11
+      memoryLimit: 1512Mi
+      mountSources: true
+      volumeMounts:
+        - name: m2-repository
+          path: /home/jboss/.m2/repository
+      env:
+        # Enabling Jaeger tracing
+        - name: WILDFLY_TRACING_ENABLED
+          value: 'true'
+        # Define the Jaeger service name 
+        - name: JAEGER_SERVICE_NAME
+          value: 'microprofile-opentracing'
+        # Configure Jaeger traces
+        - name: JAEGER_REPORTER_LOG_SPANS 
+          value: 'true'
+        - name: JAEGER_SAMPLER_TYPE
+          value: 'const'
+        - name: JAEGER_SAMPLER_PARAM
+          value: '1'
+        - name: GC_METASPACE_SIZE
+          value: '96'
+        - name: GC_MAX_METASPACE_SIZE
+          value: '256'
+        - name: JAVA_OPTS
+          value: '-Djava.security.egd=file:/dev/urandom'
+        - name: MVN_ARGS_APPEND
+          value: '-Pbootable-jar -s /home/jboss/.m2/settings.xml -Dmaven.repo.local=/home/jboss/.m2/repository -Dcom.redhat.xpaas.repo.jbossorg -Dversion.wildfly-jar.maven.plugin=3.0.1.Final'
+      endpoints:
+        - name: 'http'
+          targetPort: 8080
+  - name: m2-repository
+    volume:
+      size: 3Gi
+commands:
+  - id: build
+    exec:
+      component: wildfly
+      commandLine: mvn ${MVN_ARGS_APPEND} clean package
+      workingDir: $PROJECTS_ROOT
+      group:
+        kind: build
+        isDefault: false
+  - id: run
+    exec:
+      component: wildfly
+      commandLine: mvn ${MVN_ARGS_APPEND} org.wildfly.plugins:wildfly-jar-maven-plugin:run
+      workingDir: $PROJECTS_ROOT
+      group:
+        kind: run
+        isDefault: false
+  - id: debug
+    exec:
+      component: wildfly
+      commandLine: mvn ${MVN_ARGS_APPEND} -Dwildfly.bootable.arguments="-b=0.0.0.0" -Dwildfly.bootable.jvmArguments="-agentlib:jdwp=transport=dt_socket,address=0.0.0.0:${DEBUG_PORT},server=y,suspend=n" org.wildfly.plugins:wildfly-jar-maven-plugin:run
+      workingDir: $PROJECTS_ROOT
+      group:
+        kind: debug
+        isDefault: false
+  - id: dev-build
+    exec:
+      component: wildfly
+      commandLine: mvn ${MVN_ARGS_APPEND} -Dmaven.test.skip=true -Ddev package
+      workingDir: $PROJECTS_ROOT
+      group:
+        kind: build
+        isDefault: false
+  - id: dev-run
+    exec:
+      component: wildfly
+      commandLine: mvn ${MVN_ARGS_APPEND} -Dwildfly.bootable.arguments="-b=0.0.0.0" org.wildfly.plugins:wildfly-jar-maven-plugin:dev
+      workingDir: $PROJECTS_ROOT
+      hotReloadCapable: true
+      group:
+        kind: run
+        isDefault: false
+  - id: dev-debug
+    exec:
+      component: wildfly
+      commandLine: mvn ${MVN_ARGS_APPEND} -Dwildfly.bootable.arguments="-b=0.0.0.0" -Dwildfly.bootable.jvmArguments="-agentlib:jdwp=transport=dt_socket,address=0.0.0.0:${DEBUG_PORT},server=y,suspend=n" org.wildfly.plugins:wildfly-jar-maven-plugin:dev
+      workingDir: $PROJECTS_ROOT
+      hotReloadCapable: true
+      group:
+        kind: debug
+        isDefault: false
+  - id: watch-build
+    exec:
+      component: wildfly
+      commandLine: echo 'It's watcher mode Baby !!!''
+      workingDir: $PROJECTS_ROOT
+      group:
+        kind: build
+        isDefault: true
+  - id: watch-run
+    exec:
+      component: wildfly
+      commandLine: mvn ${MVN_ARGS_APPEND} -Dwildfly.bootable.arguments="-b=0.0.0.0" org.wildfly.plugins:wildfly-jar-maven-plugin:dev-watch -e -DskipTests
+      workingDir: $PROJECTS_ROOT
+      hotReloadCapable: true
+      group:
+        kind: run
+        isDefault: true
+  - id: watch-debug
+    exec:
+      component: wildfly
+      commandLine: mvn ${MVN_ARGS_APPEND} -Dwildfly.bootable.arguments="-b=0.0.0.0" -Dwildfly.bootable.jvmArguments="-agentlib:jdwp=transport=dt_socket,address=0.0.0.0:${DEBUG_PORT},server=y,suspend=n" org.wildfly.plugins:wildfly-jar-maven-plugin:dev-watch -e
+      workingDir: $PROJECTS_ROOT
+      hotReloadCapable: true
+      group:
+        kind: debug
+        isDefault: true
\ No newline at end of file
diff --git a/index/server/tests/registry/stacks/java-wildfly/devfile.yaml b/index/server/tests/registry/stacks/java-wildfly/devfile.yaml
new file mode 100644
index 000000000..9e95e503d
--- /dev/null
+++ b/index/server/tests/registry/stacks/java-wildfly/devfile.yaml
@@ -0,0 +1,225 @@
+schemaVersion: 2.2.0
+metadata:
+  name: java-wildfly
+  version: 1.0.0
+  website: https://wildfly.org
+  displayName: WildFly Java
+  description: Upstream WildFly
+  tags: ["Java", "WildFly"]
+  projectType: "wildfly"
+  language: "java"
+starterProjects:
+  - name: microprofile-config
+    description: WildFly Eclipse Microprofile Config Quickstart
+    git:
+      checkoutFrom:
+        remote: wildfly-quickstart
+        revision: 22.0.1.Final
+      remotes:
+        wildfly-quickstart: https://github.com/wildfly/quickstart.git
+    subDir: microprofile-config
+  - name: microprofile-fault-tolerance
+    description: WildFly Eclipse Microprofile Fault Tolerance Quickstart
+    git:
+      checkoutFrom:
+        remote: wildfly-quickstart
+        revision: 22.0.1.Final
+      remotes:
+        wildfly-quickstart: https://github.com/wildfly/quickstart.git
+    subDir: microprofile-fault-tolerance
+  - name: microprofile-health
+    description: WildFly Eclipse Microprofile Health Quickstart
+    git:
+      checkoutFrom:
+        remote: wildfly-quickstart
+        revision: 22.0.1.Final
+      remotes:
+        wildfly-quickstart: https://github.com/wildfly/quickstart.git
+    subDir: microprofile-health
+  - name: microprofile-jwt
+    description: WildFly Eclipse Microprofile JWT Quickstart
+    git:
+      checkoutFrom:
+        remote: wildfly-quickstart
+        revision: 22.0.1.Final
+      remotes:
+        wildfly-quickstart: https://github.com/wildfly/quickstart.git
+    subDir: microprofile-jwt
+  - name: microprofile-metrics
+    description: WildFly Eclipse Microprofile Metrics Quickstart
+    git:
+      checkoutFrom:
+        remote: wildfly-quickstart
+        revision: 22.0.1.Final
+      remotes:
+        wildfly-quickstart: https://github.com/wildfly/quickstart.git
+    subDir: microprofile-metrics
+  - name: microprofile-openapi
+    description: WildFly Eclipse Microprofile OpenAPI Quickstart
+    git:
+      checkoutFrom:
+        remote: wildfly-quickstart
+        revision: 22.0.1.Final
+      remotes:
+        wildfly-quickstart: https://github.com/wildfly/quickstart.git
+    subDir: microprofile-openapi
+  - name: microprofile-opentracing
+    description: WildFly Eclipse Microprofile OpenTracing Quickstart
+    git:
+      checkoutFrom:
+        remote: wildfly-quickstart
+        revision: 22.0.1.Final
+      remotes:
+        wildfly-quickstart: https://github.com/wildfly/quickstart.git
+    subDir: microprofile-opentracing
+  - name: microprofile-rest-client
+    description: WildFly Eclipse Microprofile REST Client Quickstart
+    git:
+      checkoutFrom:
+        remote: wildfly-quickstart
+        revision: 22.0.1.Final
+      remotes:
+        wildfly-quickstart: https://github.com/wildfly/quickstart.git
+    subDir: microprofile-rest-client
+components:
+  - name: wildfly
+    container:
+      image:  quay.io/wildfly/wildfly-centos7:22.0
+      memoryLimit: 1512Mi
+      mountSources: true
+      volumeMounts:
+        - name: m2-repository
+          path: /home/jboss/.m2/repository
+      env:
+        - name: GC_METASPACE_SIZE
+          value: '96'
+        - name: GC_MAX_METASPACE_SIZE
+          value: '256'
+        - name: GALLEON_PROVISION_LAYERS
+          value: 'jaxrs-server,microprofile-platform'
+        - name: S2I_DESTINATION_DIR
+          value: '/projects'
+        - name: STANDALONE_RESTORE
+          value: /home/jboss/.m2/.lucky
+        - name: JBOSS_HOME
+          value: '/projects/wildfly'
+        - name: MVN_ARGS_APPEND
+          value: '-s /home/jboss/.m2/settings.xml -Dmaven.repo.local=/home/jboss/.m2/repository -Dcom.redhat.xpaas.repo.jbossorg'
+      endpoints:
+        - name: 'wildfly-http'
+          targetPort: 8080
+  - name: m2-repository
+    volume:
+      size: 3Gi
+  - name: jaeger
+    container:
+      image: quay.io/jaegertracing/all-in-one:1.21.0
+      memoryLimit: 128Mi
+      endpoints:
+        - name: 'tracing-ui'
+          targetPort: 16686
+commands:
+  - id: build
+    composite:
+      label: Build and deploy on WildFly Server
+      commands:
+        - compile
+        - copy-artifact
+      parallel: false
+      group:
+        kind: build
+        isDefault: true
+  - id: compile
+    exec:
+      label: Compile and package the application
+      component: wildfly
+      commandLine: source ${JBOSS_CONTAINER_MAVEN_DEFAULT_MODULE}/scl-enable-maven && mvn ${MVN_ARGS_APPEND} -Dmaven.test.skip=true clean package 
+      workingDir: $PROJECTS_ROOT
+      group:
+        kind: build
+        isDefault: false
+  - id: copy-artifact
+    exec:
+      label: Copy application artifact
+      component: wildfly
+      commandLine: cp target/*.war $JBOSS_HOME/standalone/deployments/ROOT.war
+      workingDir: $PROJECTS_ROOT
+      group:
+        kind: build
+        isDefault: false
+  - id: run
+    exec:
+      label: Launch WildFly Server
+      component: wildfly
+      commandLine: cp -f $STANDALONE_RESTORE/standalone.xml $JBOSS_HOME/standalone/configuration/standalone.xml && $JBOSS_HOME/bin/openshift-launch.sh
+      workingDir: $PROJECTS_ROOT
+      hotReloadCapable: true
+      group:
+        kind: run
+        isDefault: true
+  - id: debug
+    exec:
+      label: Launch WildFly Server with debug enabled
+      component: wildfly
+      commandLine: cp -f $STANDALONE_RESTORE/standalone.xml $JBOSS_HOME/standalone/configuration/standalone.xml&& $JBOSS_HOME/bin/openshift-launch.sh
+      workingDir: $PROJECTS_ROOT
+      hotReloadCapable: true
+      env:
+        - name: JAVA_OPTS_APPEND
+          value: '-Xrunjdwp:transport=dt_socket,address=0.0.0.0:$DEBUG_PORT,server=y,suspend=n -Dsun.util.logging.disableCallerCheck=true'
+      group:
+        kind: debug
+        isDefault: true
+#Hack to avoid the file permissions issue with the random openshift user
+  - id: copy-galleon
+    exec:
+      component: wildfly
+      commandLine: cp -Rf /opt/jboss/container/wildfly/s2i/galleon/galleon-m2-repository /tmp/. && cp -Rf /opt/wildfly /tmp/.
+      workingDir: $PROJECTS_ROOT
+      group:
+        kind: build
+        isDefault: false
+  - id: copy-settings
+    exec:
+      component: wildfly
+      commandLine: cp ${JBOSS_CONTAINER_MAVEN_DEFAULT_MODULE}/jboss-settings.xml /tmp/settings.xml
+      workingDir: $PROJECTS_ROOT
+      group:
+        kind: build
+        isDefault: false
+  - id: provision-server
+    exec:
+      component: wildfly
+      commandLine: /usr/local/s2i/assemble && cp -Rf $JBOSS_HOME .
+      workingDir: $PROJECTS_ROOT
+      env:
+        - name: JBOSS_HOME
+          value: '/tmp/wildfly'
+      group:
+        kind: build
+        isDefault: false
+  - id: store-config
+    exec:
+      component: wildfly
+      commandLine: mkdir $STANDALONE_RESTORE && cp -f $JBOSS_HOME/standalone/configuration/standalone.xml $STANDALONE_RESTORE/standalone.xml
+      workingDir: $PROJECTS_ROOT      
+      env:
+        - name: JBOSS_HOME
+          value: '/tmp/wildfly'
+      group:
+        kind: build
+        isDefault: false
+  - id: init-server
+    composite:
+      label: Provision WildFly Server
+      commands:
+        - copy-galleon
+        - provision-server
+        - store-config
+      parallel: false
+      group:
+        kind: build
+        isDefault: false
+events:
+  postStart:
+    - "init-server"
\ No newline at end of file
diff --git a/index/server/tests/registry/stacks/nodejs/archive.tar b/index/server/tests/registry/stacks/nodejs/archive.tar
new file mode 100644
index 0000000000000000000000000000000000000000..1655dace7f3a862b35de3b40ad82af5e7153c956
GIT binary patch
literal 848
zcmV-W1F!raiwFQFGKgRR1MOGaZrer>^)tU>pa6L)DM}`lf<PV&+bx7v7cgpzq6v%@
zIV9I6cZuDl4I#+CcX+WRI<{IAQG&KQFAHgQX3ku8Mp{=qkB4VRh3mR+d>@)~(w^?v
zYtIfa@?3B1p1Tvz2X}Pt`TiOB$EDSx(uOIba?3@UR1Zv~&)=hKNpiqW7svMemtfu0
z|4K%8s1lyzF?>)yCZ6|l{r!per2f9=duQMtgUnO>&+GpRrh-Dtb1)eKD@%y6L=mHi
zIBMVm7$g;m=Q2i!n?3<vuoSHy!o>^}rd%7faaa_g){eqBW5$VOF|5}7`=KDUTWycV
z!N~S}%eq`Fe+LJKrINQ8nW1I9f_GI}N@aklH8+Z>4OF`J5^F2`We!o6suJuF+^rhC
zehu#}AVgUq<64-$t+wLYXo!Wpr<y{|;D#<$Ikxsx0k%qZ6nYn|T|#OS_S1}5zb(R_
zuBPG6S8Y<11*NK0vu%>ZRb;pn6z}W`{uq#a@Er{5Rx^VS-@4}epxAP`Iqm}Z2lId8
zk5BXeYoM!tdlV>)T`<8D)W+GcBL5;j{$l=*z4J-G{$tl4zd6nSuL0Y(tvfE_0Is$z
zV6l?_ib~S}3+k1ihxa3^K*M5YSU_V}umS`4_|dss%$AG!^?Y?RznEQr`b4svtufa@
zGn`4+xvSQw1RB&1m&0aAis(h{=X4Hvd+vToL)Mnb^D4T;s3xZ<S{^YSz=%F+%xRQM
z)zU7QiL#&f;%L0QM8RND=FDKHyO*YBKPhDOCRp);-V`gyjG%SeN%NkQgKmgqN4+sC
zg<)J!k#@@V!MZ%6+1=fx`RZaizYcGvvx^`5x9WYoXL{d!W=z==?6FyrT4Q^;2v<FW
zjZr0yjAS0b>T+rAI`18-dmdr0?f!PhJ!WN(vHir;E~L-7(c@3ie9pVy5r@jZDT&!-
zPICm+blIrtI);lR;ewk@KtG)X?u8r5%JhR(^*4^BUl}^%iK(0Tzw_cqK?rG@SJ1KS
zMVd+4H7Qc}&?BPs42-I9u&t|+txmsH>TeFSd_bONRMe5{cHPn1d8yzJ^gk$KDqc#O
a3y($n*3<cf6HYkcc=!{4HVs+;6aWA{#IipC

literal 0
HcmV?d00001

diff --git a/index/server/tests/registry/stacks/nodejs/devfile.yaml b/index/server/tests/registry/stacks/nodejs/devfile.yaml
new file mode 100644
index 000000000..10a813347
--- /dev/null
+++ b/index/server/tests/registry/stacks/nodejs/devfile.yaml
@@ -0,0 +1,57 @@
+schemaVersion: 2.2.0
+metadata:
+  name: nodejs
+  version: 1.0.0
+  displayName: NodeJS Runtime
+  description: Stack with NodeJS 12
+  tags: ["NodeJS", "Express", "ubi8"]
+  projectType: "nodejs"
+  language: "nodejs"
+starterProjects:
+  - name: nodejs-starter
+    git:
+      remotes:
+        origin: "https://github.com/odo-devfiles/nodejs-ex.git"
+components:
+  - name: runtime
+    container:
+      image: registry.access.redhat.com/ubi8/nodejs-14:latest
+      memoryLimit: 1024Mi
+      mountSources: true
+      sourceMapping: /project
+      endpoints:
+        - name: http-3000
+          targetPort: 3000
+commands:
+  - id: install
+    exec:
+      component: runtime
+      commandLine: npm install
+      workingDir: /project
+      group:
+        kind: build
+        isDefault: true
+  - id: run
+    exec:
+      component: runtime
+      commandLine: npm start
+      workingDir: /project
+      group:
+        kind: run
+        isDefault: true
+  - id: debug
+    exec:
+      component: runtime
+      commandLine: npm run debug
+      workingDir: /project
+      group:
+        kind: debug
+        isDefault: true
+  - id: test
+    exec:
+      component: runtime
+      commandLine: npm test
+      workingDir: /project
+      group:
+        kind: test
+        isDefault: true
diff --git a/index/server/tests/registry/stacks/python-django/devfile.yaml b/index/server/tests/registry/stacks/python-django/devfile.yaml
new file mode 100644
index 000000000..cccebc8d2
--- /dev/null
+++ b/index/server/tests/registry/stacks/python-django/devfile.yaml
@@ -0,0 +1,50 @@
+schemaVersion: 2.2.0
+metadata:
+  name: python-django
+  version: 1.0.0
+  displayName: Django
+  description: Python3.7 with Django
+  tags: ["Python", "pip", "Django"]
+  projectType: "django"
+  language: "python"
+starterProjects:
+  - name: django-example
+    git:
+      remotes:
+        origin: https://github.com/odo-devfiles/python-django-ex
+components:
+  - name: py-web
+    container:
+      image: quay.io/eclipse/che-python-3.7:nightly
+      mountSources: true
+      endpoints:
+        - name: web
+          targetPort: 8000
+commands:
+  - id: pip-install-requirements
+    exec:
+      commandLine: pip install --user -r requirements.txt
+      group:
+        kind: build
+        isDefault: true
+      component: py-web
+  - id: run-app
+    exec:
+      commandLine: "python manage.py runserver 0.0.0.0:8000"
+      workingDir: ${PROJECTS_ROOT}
+      component: py-web
+      group:
+        kind: run
+        isDefault: true
+  - id: run-migrations
+    exec:
+      commandLine: "python manage.py migrate"
+      workingDir: ${PROJECTS_ROOT}
+      component: py-web
+  - id: debug
+    exec:
+      commandLine: "pip install --user debugpy && export DEBUG_MODE=True && python -m debugpy --listen 0.0.0.0:${DEBUG_PORT} manage.py runserver 0.0.0.0:8000 --noreload --nothreading"
+      workingDir: ${PROJECTS_ROOT}
+      component: py-web
+      group:
+        kind: debug
\ No newline at end of file
diff --git a/index/server/tests/registry/stacks/python/devfile.yaml b/index/server/tests/registry/stacks/python/devfile.yaml
new file mode 100644
index 000000000..59db96483
--- /dev/null
+++ b/index/server/tests/registry/stacks/python/devfile.yaml
@@ -0,0 +1,45 @@
+schemaVersion: 2.2.0
+metadata:
+  name: python
+  version: 1.0.0
+  displayName: Python
+  description: Python Stack with Python 3.7
+  tags: ["Python", "pip"]
+  projectType: "python"
+  language: "python"
+starterProjects:
+  - name: python-example
+    git:
+      remotes:
+        origin: https://github.com/odo-devfiles/python-ex
+components:
+  - name: py-web
+    container:
+      image: quay.io/eclipse/che-python-3.7:nightly
+      mountSources: true
+      endpoints:
+        - name: web
+          targetPort: 8080
+commands:
+  - id: pip-install-requirements
+    exec:
+      commandLine: pip install --user -r requirements.txt
+      group:
+        kind: build
+        isDefault: true
+      component: py-web
+  - id: run-app
+    exec:
+      commandLine: "python app.py"
+      workingDir: ${PROJECTS_ROOT}
+      component: py-web
+      group:
+        kind: run
+        isDefault: true
+  - id: debugpy
+    exec:
+      commandLine: "pip install --user debugpy && python -m debugpy --listen 0.0.0.0:${DEBUG_PORT} app.py"
+      workingDir: ${PROJECTS_ROOT}
+      component: py-web
+      group:
+        kind: debug