Fix file mess. Update micro-java endpoints, test, deployment file and pom.
This commit is contained in:
parent
98139f4401
commit
408c9919b1
5 changed files with 81 additions and 247 deletions
|
|
@ -108,6 +108,19 @@
|
||||||
<groupId>org.eclipse.jkube</groupId>
|
<groupId>org.eclipse.jkube</groupId>
|
||||||
<artifactId>openshift-maven-plugin</artifactId>
|
<artifactId>openshift-maven-plugin</artifactId>
|
||||||
<version>1.2.0</version>
|
<version>1.2.0</version>
|
||||||
|
<configuration>
|
||||||
|
<resources>
|
||||||
|
<configMap>
|
||||||
|
<name>configmap-hello</name>
|
||||||
|
<entries>
|
||||||
|
<entry>
|
||||||
|
<name>APP_MSG</name>
|
||||||
|
<value>My custom application message.</value>
|
||||||
|
</entry>
|
||||||
|
</entries>
|
||||||
|
</configMap>
|
||||||
|
</resources>
|
||||||
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,36 @@
|
||||||
package com.redhat.training.openshift.hello;
|
package com.redhat.training.openshift.hello;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import javax.ws.rs.Consumes;
|
||||||
import javax.ws.rs.GET;
|
import javax.ws.rs.GET;
|
||||||
import javax.ws.rs.Path;
|
import javax.ws.rs.Path;
|
||||||
import javax.ws.rs.Produces;
|
import javax.ws.rs.Produces;
|
||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
|
import org.eclipse.microprofile.config.inject.ConfigProperty;
|
||||||
|
|
||||||
@Path("/api")
|
@Path("/api")
|
||||||
|
@Produces(MediaType.TEXT_PLAIN)
|
||||||
|
@Consumes(MediaType.TEXT_PLAIN)
|
||||||
public class HelloResource {
|
public class HelloResource {
|
||||||
|
|
||||||
|
@ConfigProperty(name = "HOSTNAME", defaultValue = "unknown")
|
||||||
|
String hostname;
|
||||||
|
@ConfigProperty(name = "APP_MSG")
|
||||||
|
Optional<String> message;
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Produces(MediaType.TEXT_PLAIN)
|
@Path("/hello")
|
||||||
public String hello() {
|
public String hello() {
|
||||||
return "Hello RESTEasy";
|
String response = "";
|
||||||
|
|
||||||
|
if (!message.isPresent()) {
|
||||||
|
response = "Hello world from host " + hostname + "\n";
|
||||||
|
} else {
|
||||||
|
response = "Hello world from host [" + hostname + "].\n";
|
||||||
|
response += "Message received = " + message.get() + "\n";
|
||||||
|
}
|
||||||
|
return response;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
41
micro-java/src/main/jkube/deployment.yml
Normal file
41
micro-java/src/main/jkube/deployment.yml
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
revisionHistoryLimit: 2
|
||||||
|
selector:
|
||||||
|
app: micro-java
|
||||||
|
provider: jkube
|
||||||
|
group: com.redhat.training.openshift.hello
|
||||||
|
strategy:
|
||||||
|
rollingParams:
|
||||||
|
timeoutSeconds: 3600
|
||||||
|
type: Rolling
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
app.openshift.io/vcs-ref: master
|
||||||
|
jkube.io/git-url: git@github.com:maudemor/DO288-apps.git
|
||||||
|
app.openshift.io/vcs-uri: git@github.com:maudemor/DO288-apps.git
|
||||||
|
jkube.io/git-commit: 3bffad109a77ebd72831d8f791c38df68db28e60
|
||||||
|
jkube.io/git-branch: master
|
||||||
|
labels:
|
||||||
|
app: micro-java
|
||||||
|
provider: jkube
|
||||||
|
version: 1.0.0-SNAPSHOT
|
||||||
|
group: com.redhat.training.openshift.hello
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: configmap-hello
|
||||||
|
env:
|
||||||
|
- name: KUBERNETES_NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
image: micro-java:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: quarkus
|
||||||
|
ports:
|
||||||
|
- containerPort: 8080
|
||||||
|
name: http
|
||||||
|
protocol: TCP
|
||||||
|
|
@ -1,242 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>micro-java2 - 1.0.0-SNAPSHOT</title>
|
|
||||||
<style>
|
|
||||||
h1, h2, h3, h4, h5, h6 {
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
font-weight: 400;
|
|
||||||
line-height: 1.5;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
font-size: 2.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
h2 {
|
|
||||||
font-size: 2rem
|
|
||||||
}
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
font-size: 1.75rem
|
|
||||||
}
|
|
||||||
|
|
||||||
h4 {
|
|
||||||
font-size: 1.5rem
|
|
||||||
}
|
|
||||||
|
|
||||||
h5 {
|
|
||||||
font-size: 1.25rem
|
|
||||||
}
|
|
||||||
|
|
||||||
h6 {
|
|
||||||
font-size: 1rem
|
|
||||||
}
|
|
||||||
|
|
||||||
.lead {
|
|
||||||
font-weight: 300;
|
|
||||||
font-size: 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.banner {
|
|
||||||
font-size: 2.7rem;
|
|
||||||
margin: 0;
|
|
||||||
padding: 2rem 1rem;
|
|
||||||
background-color: #0d1c2c;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
margin: 0;
|
|
||||||
font-family: -apple-system, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
||||||
}
|
|
||||||
|
|
||||||
code {
|
|
||||||
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
||||||
font-size: 87.5%;
|
|
||||||
color: #e83e8c;
|
|
||||||
word-break: break-word;
|
|
||||||
}
|
|
||||||
|
|
||||||
.left-column {
|
|
||||||
padding: .75rem;
|
|
||||||
max-width: 75%;
|
|
||||||
min-width: 55%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.right-column {
|
|
||||||
padding: .75rem;
|
|
||||||
max-width: 25%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container {
|
|
||||||
display: flex;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
li {
|
|
||||||
margin: 0.75rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.right-section {
|
|
||||||
margin-left: 1rem;
|
|
||||||
padding-left: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.right-section h3 {
|
|
||||||
padding-top: 0;
|
|
||||||
font-weight: 200;
|
|
||||||
}
|
|
||||||
|
|
||||||
.right-section ul {
|
|
||||||
border-left: 0.3rem solid #71aeef;
|
|
||||||
list-style-type: none;
|
|
||||||
padding-left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.examples {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
margin: 20px 0 20px -40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.example {
|
|
||||||
display: flex;
|
|
||||||
margin-left: 20px;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
flex-direction: column;
|
|
||||||
width: 350px;
|
|
||||||
background-color: #205894;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.example code {
|
|
||||||
color: lightgrey;
|
|
||||||
}
|
|
||||||
|
|
||||||
.example-header {
|
|
||||||
padding: 20px;
|
|
||||||
display: flex;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.example-header h4 {
|
|
||||||
margin: 0;
|
|
||||||
font-size: 1.4rem;
|
|
||||||
flex-grow: 1;
|
|
||||||
line-height: 1.5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.example-description {
|
|
||||||
padding: 0 20px;
|
|
||||||
flex-grow: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.example-paths {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.example-paths a {
|
|
||||||
display: block;
|
|
||||||
background-color: transparent;
|
|
||||||
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
||||||
color: white;
|
|
||||||
padding: 10px;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.example-paths a:before {
|
|
||||||
content: '⇨';
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 1.5rem;
|
|
||||||
margin: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.example-paths a:hover {
|
|
||||||
background-color: #0d1c2c;
|
|
||||||
}
|
|
||||||
|
|
||||||
.guide-link {
|
|
||||||
background-color: #71aeef;
|
|
||||||
position: absolute;
|
|
||||||
color: white;
|
|
||||||
text-decoration: none;
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
padding: 7px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.guide-link:hover {
|
|
||||||
background-color: #0d1c2c;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<div class="banner lead">
|
|
||||||
Your new Cloud-Native application is ready!
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="container">
|
|
||||||
<div class="left-column">
|
|
||||||
<p class="lead"> Congratulations, you have created a new Quarkus cloud application.</p>
|
|
||||||
|
|
||||||
<h2>Why do you see this?</h2>
|
|
||||||
|
|
||||||
<p>This page is served by Quarkus. The source is in
|
|
||||||
<code>src/main/resources/META-INF/resources/index.html</code>.</p>
|
|
||||||
|
|
||||||
<h2>What can I do from here?</h2>
|
|
||||||
|
|
||||||
<p>If not already done, run the application in <em>dev mode</em> using: <code>./mvnw compile quarkus:dev</code>.
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>Play with your example code in <code>src/main/java</code>:
|
|
||||||
<div class="examples">
|
|
||||||
<div class="example">
|
|
||||||
<div class="example-header">
|
|
||||||
<h4>RESTEasy JAX-RS</h4>
|
|
||||||
<a href="https://quarkus.io/guides/rest-json" target="_blank" class="guide-link">Guide</a>
|
|
||||||
</div>
|
|
||||||
<div class="example-description">
|
|
||||||
<p>A Hello World RESTEasy resource</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="example-paths">
|
|
||||||
<a href="/api" class="path-link" target="_blank">GET /api</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li>Your static assets are located in <code>src/main/resources/META-INF/resources</code>.</li>
|
|
||||||
<li>Configure your application in <code>src/main/resources/application.properties</code>.</li>
|
|
||||||
</ul>
|
|
||||||
<h2>Do you like Quarkus?</h2>
|
|
||||||
<p>Go give it a star on <a href="https://github.com/quarkusio/quarkus">GitHub</a>.</p>
|
|
||||||
</div>
|
|
||||||
<div class="right-column">
|
|
||||||
<div class="right-section">
|
|
||||||
<h3>Application</h3>
|
|
||||||
<ul>
|
|
||||||
<li>GroupId: com.redhat.training.openshift.hello</li>
|
|
||||||
<li>ArtifactId: micro-java2</li>
|
|
||||||
<li>Version: 1.0.0-SNAPSHOT</li>
|
|
||||||
<li>Quarkus Version: 1.11.6.Final-redhat-00001</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="right-section">
|
|
||||||
<h3>Next steps</h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="https://quarkus.io/guides/maven-tooling.html" target="_blank">Setup your IDE</a></li>
|
|
||||||
<li><a href="https://quarkus.io/guides/getting-started.html" target="_blank">Getting started</a></li>
|
|
||||||
<li><a href="https://quarkus.io" target="_blank">Quarkus Web Site</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,21 +1,23 @@
|
||||||
package com.redhat.training.openshift.hello;
|
package com.redhat.training.openshift.hello;
|
||||||
|
|
||||||
|
import io.quarkus.test.common.http.TestHTTPEndpoint;
|
||||||
import io.quarkus.test.junit.QuarkusTest;
|
import io.quarkus.test.junit.QuarkusTest;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import static io.restassured.RestAssured.given;
|
import static io.restassured.RestAssured.given;
|
||||||
import static org.hamcrest.CoreMatchers.is;
|
import static org.hamcrest.CoreMatchers.containsString;
|
||||||
|
|
||||||
@QuarkusTest
|
@QuarkusTest
|
||||||
|
@TestHTTPEndpoint(HelloResource.class)
|
||||||
public class HelloResourceTest {
|
public class HelloResourceTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testHelloEndpoint() {
|
public void testHelloEndpoint() {
|
||||||
given()
|
given()
|
||||||
.when().get("/api")
|
.when().get("/hello")
|
||||||
.then()
|
.then()
|
||||||
.statusCode(200)
|
.statusCode(200)
|
||||||
.body(is("Hello RESTEasy"));
|
.body(containsString("Hello world from"));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
Add table
Reference in a new issue