initial commit with apps from course repo
This commit is contained in:
29
hello-swarm/Dockerfile
Normal file
29
hello-swarm/Dockerfile
Normal file
@@ -0,0 +1,29 @@
|
||||
FROM registry.access.redhat.com/rhel7:7.6
|
||||
|
||||
MAINTAINER Red Hat Training <training@redhat.com>
|
||||
|
||||
# command line options to pass to the JVM
|
||||
ENV JAVA_OPTIONS -Xmx512m
|
||||
|
||||
|
||||
# Install the Java runtime, create a user for running the app, and set permissions
|
||||
RUN rpm --rebuilddb && \
|
||||
yum install -y --noplugins java-1.8.0-openjdk-headless && \
|
||||
yum clean all --noplugins -y && \
|
||||
useradd wildfly && \
|
||||
mkdir -p /opt/app-root/bin
|
||||
|
||||
# Copy the runnable fat JAR to the container.
|
||||
ADD http://content.example.com/ocp4.0/x86_64/installers/hello-swarm.jar /opt/app-root/bin/
|
||||
|
||||
COPY run-app.sh /opt/app-root/bin/
|
||||
|
||||
RUN chown -R wildfly:wildfly /opt/app-root && \
|
||||
chmod -R 700 /opt/app-root
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
USER wildfly
|
||||
|
||||
# Run the fat JAR
|
||||
CMD /opt/app-root/bin/run-app.sh
|
||||
49
hello-swarm/app-src/.classpath
Normal file
49
hello-swarm/app-src/.classpath
Normal file
@@ -0,0 +1,49 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" output="target/classes" path="src/main/java">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="test" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" path="target/generated-sources/annotations">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="ignore_optional_problems" value="true"/>
|
||||
<attribute name="m2e-apt" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" output="target/test-classes" path="target/generated-test-sources/test-annotations">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="ignore_optional_problems" value="true"/>
|
||||
<attribute name="m2e-apt" value="true"/>
|
||||
<attribute name="test" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
||||
23
hello-swarm/app-src/.project
Normal file
23
hello-swarm/app-src/.project
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>hello-swarm</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -0,0 +1,4 @@
|
||||
eclipse.preferences.version=1
|
||||
encoding//src/main/java=UTF-8
|
||||
encoding//src/main/resources=UTF-8
|
||||
encoding/<project>=UTF-8
|
||||
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.apt.aptEnabled=false
|
||||
9
hello-swarm/app-src/.settings/org.eclipse.jdt.core.prefs
Normal file
9
hello-swarm/app-src/.settings/org.eclipse.jdt.core.prefs
Normal file
@@ -0,0 +1,9 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
|
||||
org.eclipse.jdt.core.compiler.processAnnotations=disabled
|
||||
org.eclipse.jdt.core.compiler.release=disabled
|
||||
org.eclipse.jdt.core.compiler.source=1.8
|
||||
4
hello-swarm/app-src/.settings/org.eclipse.m2e.core.prefs
Normal file
4
hello-swarm/app-src/.settings/org.eclipse.m2e.core.prefs
Normal file
@@ -0,0 +1,4 @@
|
||||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
resolveWorkspaceProjects=true
|
||||
version=1
|
||||
102
hello-swarm/app-src/pom.xml
Normal file
102
hello-swarm/app-src/pom.xml
Normal file
@@ -0,0 +1,102 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>com.redhat.training.openshift</groupId>
|
||||
<artifactId>hello-swarm</artifactId>
|
||||
<version>1.0</version>
|
||||
<packaging>war</packaging>
|
||||
<name>Red Hat Training ToT app</name>
|
||||
<description>Hello microservice using WildFly Swarm</description>
|
||||
|
||||
<properties>
|
||||
<!-- Explicitly declaring the source encoding eliminates the following
|
||||
message: -->
|
||||
<!-- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered
|
||||
resources, i.e. build is platform dependent! -->
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
|
||||
<!-- JBoss dependency versions -->
|
||||
<version.wildfly.swarm>2017.10.0</version.wildfly.swarm>
|
||||
|
||||
<!-- other plugin versions -->
|
||||
<version.compiler.plugin>3.1</version.compiler.plugin>
|
||||
<version.surefire.plugin>2.16</version.surefire.plugin>
|
||||
<version.war.plugin>2.5</version.war.plugin>
|
||||
|
||||
<!-- maven-compiler-plugin -->
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
|
||||
</properties>
|
||||
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<!-- JBoss distributes a complete set of Java EE 7 APIs including a Bill
|
||||
of Materials (BOM). A BOM specifies the versions of a "stack" (or a collection)
|
||||
of artifacts. We use this here so that we always get the correct versions
|
||||
of artifacts. -->
|
||||
<dependency>
|
||||
<groupId>org.wildfly.swarm</groupId>
|
||||
<artifactId>bom</artifactId>
|
||||
<version>${version.wildfly.swarm}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.wildfly.swarm</groupId>
|
||||
<artifactId>jaxrs-jsonp</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wildfly.swarm</groupId>
|
||||
<artifactId>jaxrs-cdi</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wildfly.swarm</groupId>
|
||||
<artifactId>cdi</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<!-- Maven will append the version to the finalName (which is the name
|
||||
given to the generated war, and hence the context root) -->
|
||||
<finalName>hello</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<version>${version.war.plugin}</version>
|
||||
<configuration>
|
||||
<!-- Java EE 7 doesn't require web.xml, Maven needs to catch up! -->
|
||||
<failOnMissingWebXml>false</failOnMissingWebXml>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!-- The WildFly Swarm plugin creates an uber jar -->
|
||||
<!-- To use, run: mvn wildfly-swarm:run -->
|
||||
<plugin>
|
||||
<groupId>org.wildfly.swarm</groupId>
|
||||
<artifactId>wildfly-swarm-plugin</artifactId>
|
||||
<version>${version.wildfly.swarm}</version>
|
||||
<configuration>
|
||||
<mainClass>com.redhat.training.openshift.hello.Main</mainClass>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>package</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
|
||||
</project>
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.redhat.training.openshift.hello;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
|
||||
@Path("/")
|
||||
public class HelloResource {
|
||||
|
||||
@GET
|
||||
@Path("/hello")
|
||||
@Produces("text/plain")
|
||||
public String hello() {
|
||||
String hostname = System.getenv().getOrDefault("HOSTNAME", "unknown");
|
||||
String message = System.getenv().getOrDefault("APP_MSG", null);
|
||||
String response = "";
|
||||
if (message == null)
|
||||
response = "Hello world from host "+hostname+"\n";
|
||||
else
|
||||
response = "Hello world from host ["+hostname+"]. Message received = "+message+"\n";
|
||||
return response;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.redhat.training.openshift.hello;
|
||||
|
||||
import javax.ws.rs.ApplicationPath;
|
||||
import javax.ws.rs.core.Application;
|
||||
|
||||
@ApplicationPath("/api")
|
||||
public class JaxRsActivator extends Application {
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.redhat.training.openshift.hello;
|
||||
|
||||
import org.jboss.shrinkwrap.api.ShrinkWrap;
|
||||
import org.jboss.shrinkwrap.api.asset.ClassLoaderAsset;
|
||||
import org.wildfly.swarm.Swarm;
|
||||
import org.wildfly.swarm.undertow.WARArchive;
|
||||
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
// Instantiate the container
|
||||
Swarm swarm = new Swarm(args);
|
||||
|
||||
// Create one or more deployments
|
||||
WARArchive deployment = ShrinkWrap.create(WARArchive.class);
|
||||
|
||||
// Add resource to deployment
|
||||
deployment.addPackage(Main.class.getPackage());
|
||||
deployment.addAllDependencies();
|
||||
|
||||
// Add Web resources
|
||||
deployment.addAsWebInfResource(
|
||||
new ClassLoaderAsset("WEB-INF/web.xml", Main.class.getClassLoader()), "web.xml");
|
||||
deployment.addAsWebInfResource(
|
||||
new ClassLoaderAsset("WEB-INF/beans.xml", Main.class.getClassLoader()), "beans.xml");
|
||||
|
||||
swarm.start().deploy(deployment);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
5
hello-swarm/app-src/src/main/resources/WEB-INF/beans.xml
Normal file
5
hello-swarm/app-src/src/main/resources/WEB-INF/beans.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
|
||||
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd" bean-discovery-mode="all">
|
||||
</beans>
|
||||
6
hello-swarm/app-src/src/main/resources/WEB-INF/web.xml
Normal file
6
hello-swarm/app-src/src/main/resources/WEB-INF/web.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
|
||||
|
||||
</web-app>
|
||||
5
hello-swarm/app-src/target/classes/WEB-INF/beans.xml
Normal file
5
hello-swarm/app-src/target/classes/WEB-INF/beans.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
|
||||
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd" bean-discovery-mode="all">
|
||||
</beans>
|
||||
6
hello-swarm/app-src/target/classes/WEB-INF/web.xml
Normal file
6
hello-swarm/app-src/target/classes/WEB-INF/web.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
|
||||
|
||||
</web-app>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
7
hello-swarm/run-app.sh
Executable file
7
hello-swarm/run-app.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
echo "Starting wildfly swarm app..."
|
||||
echo "JVM options => $JAVA_OPTIONS"
|
||||
echo
|
||||
|
||||
java $JAVA_OPTIONS -jar /opt/app-root/bin/hello-swarm.jar
|
||||
54
hello-swarm/training.repo
Normal file
54
hello-swarm/training.repo
Normal file
@@ -0,0 +1,54 @@
|
||||
[rhel-7-dvd]
|
||||
baseurl = http://content.example.com/rhel7.6/x86_64/dvd
|
||||
enabled = true
|
||||
gpgcheck = false
|
||||
name = Remote classroom copy of RHEL DVD
|
||||
|
||||
[rhel-server-rhscl-7-rpms]
|
||||
baseurl = http://content.example.com/ocp4.0/x86_64/rhelrhscl
|
||||
enabled = true
|
||||
gpgcheck = false
|
||||
name = Remote classroom copy of RHSCL
|
||||
|
||||
[rhel-7-server-datapath-rpms]
|
||||
baseurl = http://content.example.com/ocp4.0/x86_64/rheladditional/rhel-7-fast-datapath-rpms
|
||||
enabled = true
|
||||
gpgcheck = false
|
||||
name = Remote classroom copy of RHEL 7.6 Datapath Packages
|
||||
|
||||
[rhel-7-server-ansible-26]
|
||||
baseurl = http://content.example.com/ocp4.0/x86_64/rheladditional/rhel-7-server-ansible-2.6-rpms
|
||||
enabled = true
|
||||
gpgcheck = false
|
||||
name = Remote classroom copy of RHEL 7.6 Ansible Packages
|
||||
|
||||
[rhel-7-server-extras-rpms]
|
||||
baseurl = http://content.example.com/ocp4.0/x86_64/rheladditional/rhel-7-server-extras-rpms
|
||||
enabled = true
|
||||
gpgcheck = false
|
||||
name = Remote classroom copy of RHEL 7.6 Extra Packages
|
||||
|
||||
[rhel-7-server-common-rpms]
|
||||
baseurl = http://content.example.com/ocp4.0/x86_64/rheladditional/rhel-7-server-rh-common-rpms
|
||||
enabled = true
|
||||
gpgcheck = false
|
||||
name = Remote classroom copy of RHEL 7.6 Common Packages
|
||||
|
||||
[rhel-7-server-supplementary]
|
||||
baseurl = http://content.example.com/ocp4.0/x86_64/rhelsupplementary
|
||||
enabled = true
|
||||
gpgcheck = false
|
||||
name = Remote classroom copy of RHEL 7.6 Supplementary Packages
|
||||
|
||||
[rhel-7-server-optional-rpms]
|
||||
baseurl = http://content.example.com/ocp4.0/x86_64/rhelopt
|
||||
enabled = true
|
||||
gpgcheck = false
|
||||
name = Remote classroom copy of RHEL 7.6 Optional Packages
|
||||
|
||||
[rhel-7-server-updates]
|
||||
baseurl = http://content.example.com/ocp4.0/x86_64/rhelupdates
|
||||
enabled = true
|
||||
gpgcheck = false
|
||||
name = Remote classroom copy of RHEL 7.6 Updates
|
||||
|
||||
Reference in New Issue
Block a user