├── .gitignore
├── 0_setenv_minikube.sh
├── 10_autoscaler.sh
├── 1_startMinikube.sh
├── 2_install_istio.sh
├── 3_install_knative_crds.sh
├── 4_install_knative_serving.sh
├── 5_install_knative_eventing.sh
├── 6_install_kafka_strimzi.sh
├── 7_create_kafka_cluster.sh
├── 8_install_tekton.sh
├── boot-build-demo
├── build-sa.yaml
├── docker-build.yaml
├── docker-secret.yaml
├── kaniko-pvc.yaml
├── m2-pvc.yaml
├── readme.txt
└── service-build.yaml
├── build-demos
├── gitclone-mvn.yml
├── gitclone.yml
├── hello.yml
├── hello1step.yml
├── hello4step.yml
├── readme.txt
├── runBuild_gitclone.sh
└── runBuild_gitclonemvn.sh
├── build_logs.sh
├── burst_event_greeter.sh
├── burst_greeter.sh
├── clean_completed.sh
├── describe_build_pod.sh
├── docker_stats.sh
├── eventing-demo
├── call-eventinghello-minikube.sh
├── cron_eventing.png
├── kafkaspammer
│ ├── .classpath
│ ├── .project
│ ├── .settings
│ │ ├── org.eclipse.core.resources.prefs
│ │ ├── org.eclipse.jdt.apt.core.prefs
│ │ ├── org.eclipse.jdt.core.prefs
│ │ └── org.eclipse.m2e.core.prefs
│ ├── 1_nativebuild.sh
│ ├── 2_dockerbuild.sh
│ ├── 3_dockerbuild_push.sh
│ ├── 4_deploy.sh
│ ├── 5_send_10.sh
│ ├── 5_send_3.sh
│ ├── docker-compose.yaml
│ ├── in_container_curl.sh
│ ├── kafka-spammer.sh
│ ├── kafka-spammer2.sh
│ ├── pom.xml
│ ├── readme.txt
│ ├── src
│ │ └── main
│ │ │ ├── docker
│ │ │ └── Dockerfile.native
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── redhat
│ │ │ │ └── developer
│ │ │ │ └── demos
│ │ │ │ └── MyStreamPublisher.java
│ │ │ ├── kubernetes
│ │ │ ├── Deployment.yml
│ │ │ └── Service.yml
│ │ │ └── resources
│ │ │ └── application.properties
│ └── target
│ │ ├── classes
│ │ ├── application.properties
│ │ └── com
│ │ │ └── redhat
│ │ │ └── developer
│ │ │ └── demos
│ │ │ └── MyStreamPublisher.class
│ │ ├── kafka-spammer-1.0.0-runner.jar
│ │ ├── kafka-spammer-1.0.0.jar
│ │ ├── lib
│ │ ├── com.fasterxml.jackson.core.jackson-annotations-2.9.10.jar
│ │ ├── com.fasterxml.jackson.core.jackson-core-2.9.10.jar
│ │ ├── com.fasterxml.jackson.core.jackson-databind-2.9.10.1.jar
│ │ ├── com.fasterxml.jackson.datatype.jackson-datatype-jdk8-2.9.10.jar
│ │ ├── com.fasterxml.jackson.datatype.jackson-datatype-jsr310-2.9.10.jar
│ │ ├── com.fasterxml.jackson.module.jackson-module-parameter-names-2.9.10.jar
│ │ ├── com.github.luben.zstd-jni-1.3.8-1.jar
│ │ ├── com.github.spotbugs.spotbugs-annotations-3.1.9.jar
│ │ ├── com.google.code.findbugs.jsr305-3.0.2.jar
│ │ ├── com.sun.activation.jakarta.activation-1.2.1.jar
│ │ ├── com.typesafe.scala-logging.scala-logging_2.12-3.9.0.jar
│ │ ├── com.yammer.metrics.metrics-core-2.2.0.jar
│ │ ├── io.netty.netty-buffer-4.1.42.Final.jar
│ │ ├── io.netty.netty-codec-4.1.42.Final.jar
│ │ ├── io.netty.netty-codec-dns-4.1.42.Final.jar
│ │ ├── io.netty.netty-codec-http-4.1.42.Final.jar
│ │ ├── io.netty.netty-codec-http2-4.1.42.Final.jar
│ │ ├── io.netty.netty-codec-socks-4.1.42.Final.jar
│ │ ├── io.netty.netty-common-4.1.42.Final.jar
│ │ ├── io.netty.netty-handler-4.1.42.Final.jar
│ │ ├── io.netty.netty-handler-proxy-4.1.42.Final.jar
│ │ ├── io.netty.netty-resolver-4.1.42.Final.jar
│ │ ├── io.netty.netty-resolver-dns-4.1.42.Final.jar
│ │ ├── io.netty.netty-transport-4.1.42.Final.jar
│ │ ├── io.quarkus.arc.arc-1.1.0.Final.jar
│ │ ├── io.quarkus.http.quarkus-http-core-3.0.1.Final.jar
│ │ ├── io.quarkus.http.quarkus-http-http-core-3.0.1.Final.jar
│ │ ├── io.quarkus.http.quarkus-http-servlet-3.0.1.Final.jar
│ │ ├── io.quarkus.http.quarkus-http-vertx-backend-3.0.1.Final.jar
│ │ ├── io.quarkus.quarkus-arc-1.1.0.Final.jar
│ │ ├── io.quarkus.quarkus-core-1.1.0.Final.jar
│ │ ├── io.quarkus.quarkus-jackson-1.1.0.Final.jar
│ │ ├── io.quarkus.quarkus-kafka-client-1.1.0.Final.jar
│ │ ├── io.quarkus.quarkus-netty-1.1.0.Final.jar
│ │ ├── io.quarkus.quarkus-resteasy-1.1.0.Final.jar
│ │ ├── io.quarkus.quarkus-resteasy-common-1.1.0.Final.jar
│ │ ├── io.quarkus.quarkus-resteasy-server-common-1.1.0.Final.jar
│ │ ├── io.quarkus.quarkus-smallrye-context-propagation-1.1.0.Final.jar
│ │ ├── io.quarkus.quarkus-smallrye-reactive-messaging-1.1.0.Final.jar
│ │ ├── io.quarkus.quarkus-smallrye-reactive-messaging-kafka-1.1.0.Final.jar
│ │ ├── io.quarkus.quarkus-smallrye-reactive-streams-operators-1.1.0.Final.jar
│ │ ├── io.quarkus.quarkus-undertow-1.1.0.Final.jar
│ │ ├── io.quarkus.quarkus-vertx-core-1.1.0.Final.jar
│ │ ├── io.quarkus.quarkus-vertx-http-1.1.0.Final.jar
│ │ ├── io.quarkus.security.quarkus-security-1.0.1.Final.jar
│ │ ├── io.reactivex.rxjava2.rxjava-2.2.15.jar
│ │ ├── io.smallrye.config.smallrye-config-1.5.1.jar
│ │ ├── io.smallrye.config.smallrye-config-common-1.5.1.jar
│ │ ├── io.smallrye.reactive.smallrye-reactive-converter-api-1.0.10.jar
│ │ ├── io.smallrye.reactive.smallrye-reactive-messaging-kafka-1.0.8.jar
│ │ ├── io.smallrye.reactive.smallrye-reactive-messaging-provider-1.0.8.jar
│ │ ├── io.smallrye.reactive.smallrye-reactive-streams-operators-1.0.10.jar
│ │ ├── io.smallrye.smallrye-context-propagation-1.0.11.jar
│ │ ├── io.smallrye.smallrye-context-propagation-api-1.0.11.jar
│ │ ├── io.smallrye.smallrye-context-propagation-propagators-rxjava2-1.0.11.jar
│ │ ├── io.vertx.vertx-auth-common-3.8.4.jar
│ │ ├── io.vertx.vertx-bridge-common-3.8.4.jar
│ │ ├── io.vertx.vertx-codegen-3.8.4.jar
│ │ ├── io.vertx.vertx-core-3.8.4.jar
│ │ ├── io.vertx.vertx-kafka-client-3.8.4.jar
│ │ ├── io.vertx.vertx-rx-gen-3.8.4.jar
│ │ ├── io.vertx.vertx-rx-java2-3.8.4.jar
│ │ ├── io.vertx.vertx-web-3.8.4.jar
│ │ ├── io.vertx.vertx-web-common-3.8.4.jar
│ │ ├── jakarta.annotation.jakarta.annotation-api-1.3.5.jar
│ │ ├── jakarta.el.jakarta.el-api-3.0.3.jar
│ │ ├── jakarta.enterprise.jakarta.enterprise.cdi-api-2.0.2.jar
│ │ ├── jakarta.inject.jakarta.inject-api-1.0.jar
│ │ ├── jakarta.interceptor.jakarta.interceptor-api-1.2.5.jar
│ │ ├── jakarta.servlet.jakarta.servlet-api-4.0.3.jar
│ │ ├── jakarta.validation.jakarta.validation-api-2.0.2.jar
│ │ ├── net.sf.jopt-simple.jopt-simple-5.0.4.jar
│ │ ├── org.apache.commons.commons-lang3-3.9.jar
│ │ ├── org.apache.kafka.kafka-clients-2.2.1.jar
│ │ ├── org.apache.kafka.kafka_2.12-2.2.1.jar
│ │ ├── org.apache.yetus.audience-annotations-0.5.0.jar
│ │ ├── org.apache.zookeeper.zookeeper-3.4.14.jar
│ │ ├── org.eclipse.microprofile.config.microprofile-config-api-1.3.jar
│ │ ├── org.eclipse.microprofile.context-propagation.microprofile-context-propagation-api-1.0.1.jar
│ │ ├── org.eclipse.microprofile.reactive-streams-operators.microprofile-reactive-streams-operators-api-1.0.jar
│ │ ├── org.eclipse.microprofile.reactive-streams-operators.microprofile-reactive-streams-operators-core-1.0.jar
│ │ ├── org.eclipse.microprofile.reactive.messaging.microprofile-reactive-messaging-api-1.0.jar
│ │ ├── org.graalvm.sdk.graal-sdk-19.2.1.jar
│ │ ├── org.jboss.jandex-2.1.2.Final.jar
│ │ ├── org.jboss.logging.jboss-logging-3.3.2.Final.jar
│ │ ├── org.jboss.logging.jboss-logging-annotations-2.1.0.Final.jar
│ │ ├── org.jboss.logmanager.jboss-logmanager-embedded-1.0.4.jar
│ │ ├── org.jboss.resteasy.resteasy-context-propagation-4.4.1.Final.jar
│ │ ├── org.jboss.resteasy.resteasy-core-4.4.1.Final.jar
│ │ ├── org.jboss.resteasy.resteasy-core-spi-4.4.1.Final.jar
│ │ ├── org.jboss.slf4j.slf4j-jboss-logging-1.2.0.Final.jar
│ │ ├── org.jboss.spec.javax.ws.rs.jboss-jaxrs-api_2.1_spec-2.0.1.Final.jar
│ │ ├── org.jboss.spec.javax.xml.bind.jboss-jaxb-api_2.3_spec-2.0.0.Final.jar
│ │ ├── org.jboss.threads.jboss-threads-3.0.0.Final.jar
│ │ ├── org.lz4.lz4-java-1.5.0.jar
│ │ ├── org.mvel.mvel2-2.4.4.Final.jar
│ │ ├── org.reactivestreams.reactive-streams-1.0.3.jar
│ │ ├── org.slf4j.slf4j-api-1.7.29.jar
│ │ ├── org.wildfly.common.wildfly-common-1.5.0.Final-format-001.jar
│ │ └── org.xerial.snappy.snappy-java-1.1.7.2.jar
│ │ ├── maven-archiver
│ │ └── pom.properties
│ │ └── maven-status
│ │ └── maven-compiler-plugin
│ │ └── compile
│ │ └── default-compile
│ │ ├── createdFiles.lst
│ │ └── inputFiles.lst
├── knative_eventing_kafka1.png
├── knativefiles
│ ├── 1_serving_dev_local.yaml
│ ├── 1_serving_quay.yaml
│ ├── 2_source2service.yaml
│ └── 3_kafka_source2service.yaml
├── poll-eventinghello-minikube.sh
├── qeventingce
│ ├── .dockerignore
│ ├── .gitignore
│ ├── .mvn
│ │ └── wrapper
│ │ │ ├── MavenWrapperDownloader.java
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ ├── 1_jvmbuild.sh
│ ├── 1_nativebuild.sh
│ ├── 2_dockerbuild_jvm.sh
│ ├── 2_dockerbuild_native.sh
│ ├── 3_dockerbuild_push_jvm.sh
│ ├── 3_dockerbuild_push_native.sh
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── docker
│ │ │ ├── Dockerfile.jvm
│ │ │ └── Dockerfile.native
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── redhat
│ │ │ │ └── developer
│ │ │ │ └── demos
│ │ │ │ └── ExampleResource.java
│ │ └── resources
│ │ │ └── application.properties
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── redhat
│ │ └── developer
│ │ └── demos
│ │ ├── ExampleResourceTest.java
│ │ └── NativeExampleResourceIT.java
├── qeventinghello
│ ├── .dockerignore
│ ├── .gitignore
│ ├── .mvn
│ │ └── wrapper
│ │ │ ├── MavenWrapperDownloader.java
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ ├── 1_jvmbuild.sh
│ ├── 1_nativebuild.sh
│ ├── 2_dockerbuild_jvm.sh
│ ├── 2_dockerbuild_native.sh
│ ├── 3_dockerbuild_push_jvm.sh
│ ├── 3_dockerbuild_push_native.sh
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── docker
│ │ │ ├── Dockerfile.jvm
│ │ │ └── Dockerfile.native
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── redhat
│ │ │ │ └── developer
│ │ │ │ └── demos
│ │ │ │ └── ExampleResource.java
│ │ └── resources
│ │ │ └── application.properties
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── redhat
│ │ └── developer
│ │ └── demos
│ │ ├── ExampleResourceTest.java
│ │ └── NativeExampleResourceIT.java
├── readme.adoc
├── sbeventingce
│ ├── .gitignore
│ ├── .mvn
│ │ └── wrapper
│ │ │ ├── MavenWrapperDownloader.java
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ ├── bin
│ │ ├── .gitignore
│ │ ├── .mvn
│ │ │ └── wrapper
│ │ │ │ ├── MavenWrapperDownloader.class
│ │ │ │ ├── maven-wrapper.jar
│ │ │ │ └── maven-wrapper.properties
│ │ ├── mvnw
│ │ ├── mvnw.cmd
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── redhat
│ │ │ │ │ └── developer
│ │ │ │ │ └── demos
│ │ │ │ │ └── sbeventinghello
│ │ │ │ │ └── SbeventinghelloApplication.class
│ │ │ └── resources
│ │ │ │ └── application.properties
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── redhat
│ │ │ └── developer
│ │ │ └── demos
│ │ │ └── sbeventinghello
│ │ │ └── SbeventinghelloApplicationTests.class
│ ├── dockerbuild.sh
│ ├── dockerbuild_push.sh
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── docker
│ │ │ └── Dockerfile
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── redhat
│ │ │ │ └── developer
│ │ │ │ └── demos
│ │ │ │ └── sbeventingce
│ │ │ │ ├── MyController.java
│ │ │ │ └── MySpringBootApp.java
│ │ └── resources
│ │ │ └── application.properties
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── redhat
│ │ └── developer
│ │ └── demos
│ │ └── sbeventingce
│ │ └── MySpringBooAppTests.java
├── sbeventinghello
│ ├── .gitignore
│ ├── .mvn
│ │ └── wrapper
│ │ │ ├── MavenWrapperDownloader.java
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ ├── bin
│ │ ├── .gitignore
│ │ ├── .mvn
│ │ │ └── wrapper
│ │ │ │ ├── MavenWrapperDownloader.class
│ │ │ │ ├── maven-wrapper.jar
│ │ │ │ └── maven-wrapper.properties
│ │ ├── mvnw
│ │ ├── mvnw.cmd
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── redhat
│ │ │ │ │ └── developer
│ │ │ │ │ └── demos
│ │ │ │ │ └── sbeventinghello
│ │ │ │ │ └── SbeventinghelloApplication.class
│ │ │ └── resources
│ │ │ │ └── application.properties
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── redhat
│ │ │ └── developer
│ │ │ └── demos
│ │ │ └── sbeventinghello
│ │ │ └── SbeventinghelloApplicationTests.class
│ ├── dockerbuild.sh
│ ├── dockerbuild_push.sh
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── docker
│ │ │ └── Dockerfile
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── redhat
│ │ │ │ └── developer
│ │ │ │ └── demos
│ │ │ │ └── sbeventinghello
│ │ │ │ ├── MyServlet.java
│ │ │ │ └── MySpringBootApp.java
│ │ └── resources
│ │ │ └── application.properties
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── redhat
│ │ └── developer
│ │ └── demos
│ │ └── sbeventinghello
│ │ └── MySpringBooAppTests.java
├── scale_up_down_10.mp4
├── sending_10.png
└── sending_3.png
├── get_events_ordered.sh
├── list_containers.sh
├── list_init_containers.sh
├── monitor_activator.sh
├── monitor_deployment.sh
├── monitor_rss.sh
├── namespace_sticky.sh
├── poll_event_greeter.sh
├── poll_greeter.sh
├── readme.adoc
└── tekton-demos
└── tasks
├── 0_who.yml
├── 10_mvn.yml
├── 11_git_clone_mvn.yml
├── 12_docker.yml
├── 13_yq.yml
├── 1_hello.yml
├── 2_hello-env.yml
├── 3_hello-test.yml
├── 4_hello-pwd.yml
├── 5_hello-ls.yml
├── 6_hello-mkdir-pwd.yml
├── 7_many_step.yml
├── 8_many_step_work.yml
├── 9_git_clone.yml
├── clean_completed.sh
├── create_log.sh
├── list_containers.sh
└── readme.txt
/.gitignore:
--------------------------------------------------------------------------------
1 | istio-1.3.5
2 | .DS_store
3 | .vscode
4 | .settings
5 | .classpath
6 | .project
7 | target
8 |
--------------------------------------------------------------------------------
/0_setenv_minikube.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | echo 'source 0_setenv.sh'
4 |
5 | # export MINIKUBE_HOME=/Users/burrsutter/minikube;
6 | export MINIKUBE_HOME=/Users/burrsutter/11steps;
7 | export PATH=$MINIKUBE_HOME/bin:$PATH
8 | export KUBECONFIG=$MINIKUBE_HOME/knative/.kube/config
9 | export KUBE_EDITOR="code -w"
10 |
11 | echo 'the following AFTER minikube has started'
12 | echo 'eval $(minikube --profile knative docker-env)'
13 |
14 |
--------------------------------------------------------------------------------
/10_autoscaler.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | echo "Auto-scaler config"
4 | echo "Look for the following: "
5 | echo 'container-concurrency-target-default: "100"'
6 | echo 'scale-to-zero-grace-period: 30s'
7 | echo 'stable-window: 60s'
8 |
9 | kubectl -n knative-serving describe configmap config-autoscaler
--------------------------------------------------------------------------------
/1_startMinikube.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | minikube start -p knative --memory=8192 --cpus=5 \
4 | --kubernetes-version=v1.14.0 \
5 | --vm-driver=virtualbox \
6 | --disk-size=50g \
7 | --extra-config=apiserver.enable-admission-plugins="LimitRanger,NamespaceExists,NamespaceLifecycle,ResourceQuota,ServiceAccount,DefaultStorageClass,MutatingAdmissionWebhook"
8 |
9 | minikube profile knative
10 |
11 | minikube -p knative addons enable registry
--------------------------------------------------------------------------------
/2_install_istio.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # kubectl apply --filename https://github.com/knative/serving/releases/download/v0.3.0/istio-crds.yaml
4 | # kubectl apply --filename https://github.com/knative/serving/releases/download/v0.3.0/istio.yaml
5 |
6 | # kubectl apply --filename https://github.com/knative/serving/releases/download/v0.4.0/istio-crds.yaml && \
7 | # kubectl apply --filename https://github.com/knative/serving/releases/download/v0.4.0/istio.yaml
8 |
9 | # kubectl apply --filename https://github.com/knative/serving/releases/download/v0.5.2/istio-crds.yaml && \
10 | # kubectl apply --filename https://github.com/knative/serving/releases/download/v0.5.2/istio.yaml
11 |
12 | # kubectl apply --filename https://raw.githubusercontent.com/knative/serving/v0.7.1/third_party/istio-1.1.7/istio-crds.yaml && \
13 | # kubectl apply --filename https://raw.githubusercontent.com/knative/serving/v0.7.1/third_party/istio-1.1.7/istio.yaml
14 |
15 | # kubectl apply -f https://raw.githubusercontent.com/knative/serving/release-0.11/third_party/istio-1.3.5/istio-crds.yaml
16 | # kubectl apply -f https://raw.githubusercontent.com/knative/serving/release-0.11/third_party/istio-1.3.5/istio-lean.yaml
17 |
18 | export ISTIO_VERSION=1.3.5
19 |
20 |
21 | curl -L https://git.io/getLatestIstio | sh -
22 |
23 | cd istio-${ISTIO_VERSION}
24 |
25 | for i in install/kubernetes/helm/istio-init/files/crd*yaml; do kubectl apply -f $i; done
26 |
27 | kubectl create ns istio-system &&\
28 | kubectl label ns istio-system istio-injection=disabled
29 |
30 | helm template --namespace=istio-system \
31 | --set prometheus.enabled=false \
32 | --set mixer.enabled=false \
33 | --set mixer.policy.enabled=false \
34 | --set mixer.telemetry.enabled=false \
35 | `# Pilot doesn't need a sidecar.` \
36 | --set pilot.sidecar=false \
37 | --set pilot.resources.requests.memory=128Mi \
38 | `# Disable galley (and things requiring galley).` \
39 | --set galley.enabled=false \
40 | --set global.useMCP=false \
41 | `# Disable security / policy.` \
42 | --set security.enabled=false \
43 | --set global.disablePolicyChecks=true \
44 | `# Disable sidecar injection.` \
45 | --set sidecarInjectorWebhook.enabled=false \
46 | --set global.proxy.autoInject=disabled \
47 | --set global.omitSidecarInjectorConfigMap=true \
48 | --set gateways.istio-ingressgateway.autoscaleMin=1 \
49 | --set gateways.istio-ingressgateway.autoscaleMax=2 \
50 | `# Set pilot trace sampling to 100%` \
51 | --set pilot.traceSampling=100 \
52 | install/kubernetes/helm/istio \
53 | > ./istio-lean.yaml
54 |
55 | helm template --namespace=istio-system \
56 | --set gateways.custom-gateway.autoscaleMin=1 \
57 | --set gateways.custom-gateway.autoscaleMax=2 \
58 | --set gateways.custom-gateway.cpu.targetAverageUtilization=60 \
59 | --set gateways.custom-gateway.labels.app='cluster-local-gateway' \
60 | --set gateways.custom-gateway.labels.istio='cluster-local-gateway' \
61 | --set gateways.custom-gateway.type='ClusterIP' \
62 | --set gateways.istio-ingressgateway.enabled=false \
63 | --set gateways.istio-egressgateway.enabled=false \
64 | --set gateways.istio-ilbgateway.enabled=false \
65 | install/kubernetes/helm/istio \
66 | -f install/kubernetes/helm/istio/example-values/values-istio-gateways.yaml \
67 | | sed -e "s/custom-gateway/cluster-local-gateway/g" -e "s/customgateway/clusterlocalgateway/g" \
68 | > ./istio-local-gateway.yaml
69 |
70 | kubectl apply -f istio-lean.yaml &&\
71 | kubectl apply -f istio-local-gateway.yaml
72 |
--------------------------------------------------------------------------------
/3_install_knative_crds.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | kubectl apply --selector knative.dev/crd-install=true \
4 | --filename https://github.com/knative/serving/releases/download/v0.11.0/serving.yaml \
5 | --filename https://github.com/knative/eventing/releases/download/v0.11.0/release.yaml
--------------------------------------------------------------------------------
/4_install_knative_serving.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # curl -L https://github.com/knative/serving/releases/download/v0.3.0/serving.yaml \
4 | # | sed 's/LoadBalancer/NodePort/' \
5 | # | kubectl apply --filename -
6 |
7 | # kubectl apply --filename https://github.com/knative/serving/releases/download/v0.3.0/serving.yaml
8 |
9 | # kubectl apply --filename https://github.com/knative/serving/releases/download/v0.4.0/serving.yaml
10 |
11 | # kubectl apply --filename https://github.com/knative/serving/releases/download/v0.5.2/serving.yaml
12 |
13 | # kubectl apply --selector networking.knative.dev/certificate-provider!=cert-manager \
14 | # --filename https://github.com/knative/serving/releases/download/v0.7.1/serving.yaml
15 |
16 | kubectl apply --selector networking.knative.dev/certificate-provider!=cert-manager \
17 | --filename https://github.com/knative/serving/releases/download/v0.11.0/serving.yaml
--------------------------------------------------------------------------------
/5_install_knative_eventing.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.3.0/release.yaml
4 | # kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.3.0/in-memory-channel.yaml
5 | # kubectl apply --filename https://github.com/knative/eventing-sources/releases/download/v0.3.0/release.yaml
6 |
7 | # kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.4.0/release.yaml && \
8 | # kubectl apply --filename https://github.com/knative/eventing-sources/releases/download/v0.4.0/release.yaml && \
9 | # kubectl apply --filename https://raw.githubusercontent.com/knative/serving/v0.4.0/third_party/config/build/clusterrole.yaml
10 |
11 | # kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.5.0/release.yaml && \
12 | # kubectl apply --filename https://github.com/knative/eventing-sources/releases/download/v0.5.0/eventing-sources.yaml && \
13 | # kubectl apply --filename https://raw.githubusercontent.com/knative/serving/v0.5.2/third_party/config/build/clusterrole.yaml
14 |
15 | # kubectl apply --selector networking.knative.dev/certificate-provider!=cert-manager \
16 | # --filename https://github.com/knative/eventing/releases/download/v0.7.1/release.yaml
17 |
18 | kubectl apply --selector networking.knative.dev/certificate-provider!=cert-manager \
19 | --filename https://github.com/knative/eventing/releases/download/v0.11.0/release.yaml
--------------------------------------------------------------------------------
/6_install_kafka_strimzi.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | kubectl create namespace kafka
3 | kubectl config set-context --current --namespace=kafka
4 |
5 | curl -L https://github.com/strimzi/strimzi-kafka-operator/releases/download/0.15.0/strimzi-cluster-operator-0.15.0.yaml \
6 | | sed 's/namespace: .*/namespace: kafka/' \
7 | | kubectl apply -f - -n kafka
8 |
9 |
--------------------------------------------------------------------------------
/7_create_kafka_cluster.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | kubectl apply -f https://raw.githubusercontent.com/strimzi/strimzi-kafka-operator/0.15.0/examples/kafka/kafka-persistent-single.yaml -n kafka
--------------------------------------------------------------------------------
/8_install_tekton.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | kubectl apply \
4 | --filename \
5 | https://github.com/tektoncd/pipeline/releases/download/v0.8.0/release.yaml
--------------------------------------------------------------------------------
/boot-build-demo/build-sa.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: ServiceAccount
3 | metadata:
4 | name: build-bot
5 | secrets:
6 | - name: basic-user-pass
7 |
--------------------------------------------------------------------------------
/boot-build-demo/docker-build.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: build.knative.dev/v1alpha1
2 | kind: Build
3 | metadata:
4 | name: docker-build
5 | spec:
6 | serviceAccountName: build-bot
7 | source:
8 | git:
9 | revision: master
10 | url: https://github.com/burrsutter/knative-tutorial-greeter.git
11 | steps:
12 | - args:
13 | - --context=/workspace/java/springboot
14 | - --dockerfile=/workspace/java/springboot/Dockerfile.all
15 | - --destination=docker.io/burrsutter/event-greeter:0.0.13
16 | env:
17 | - name: DOCKER_CONFIG
18 | value: /builder/home/.docker
19 | image: gcr.io/kaniko-project/executor
20 | name: build-and-push
21 | volumeMounts:
22 | - mountPath: /builder/home/.m2
23 | name: m2-cache
24 | - mountPath: /cache
25 | name: kaniko-cache
26 | workingDir: /workspace/java/springboot
27 | timeout: 20m
28 | volumes:
29 | - name: m2-cache
30 | persistentVolumeClaim:
31 | claimName: m2-cache
32 | - name: kaniko-cache
33 | persistentVolumeClaim:
34 | claimName: kaniko-cache
35 |
--------------------------------------------------------------------------------
/boot-build-demo/docker-secret.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Secret
3 | metadata:
4 | annotations:
5 | build.knative.dev/docker-0: https://index.docker.io
6 | name: basic-user-pass
7 | stringData:
8 | username: dockerhubuser
9 | password: dockerhubpass
10 | type: kubernetes.io/basic-auth
11 |
--------------------------------------------------------------------------------
/boot-build-demo/kaniko-pvc.yaml:
--------------------------------------------------------------------------------
1 | kind: PersistentVolumeClaim
2 | apiVersion: v1
3 | metadata:
4 | name: kaniko-cache
5 | spec:
6 | accessModes:
7 | - ReadWriteOnce
8 | resources:
9 | requests:
10 | storage: 8Gi
11 |
--------------------------------------------------------------------------------
/boot-build-demo/m2-pvc.yaml:
--------------------------------------------------------------------------------
1 | kind: PersistentVolumeClaim
2 | apiVersion: v1
3 | metadata:
4 | name: m2-cache
5 | spec:
6 | accessModes:
7 | - ReadWriteOnce
8 | resources:
9 | requests:
10 | storage: 8Gi
11 |
--------------------------------------------------------------------------------
/boot-build-demo/readme.txt:
--------------------------------------------------------------------------------
1 | git clone from github
2 | mvn clean package
3 | docker build
4 | docker push to dockerhub
5 |
6 | Edit dockerhub user/pass in docker-secret.yaml
7 |
8 | kubectl apply -n knativetutorial -f docker-secret.yaml
9 | kubectl apply -n knativetutorial -f build-sa.yaml
10 | kubectl apply -n knativetutorial -f m2-pvc.yaml
11 | kubectl apply -n knativetutorial -f kaniko-pvc.yaml
12 |
13 | Edit github URL in docker-build.yaml
14 |
15 | kubectl apply -n knativetutorial -f docker-build.yaml
16 |
17 | stern docker-build
18 |
19 | Check dockerhub UI https://cloud.docker.com/u/burrsutter/repository/docker/burrsutter/event-greeter
20 |
21 | Create Knative Service based on the dockerhub image
22 |
23 | kubectl apply -n knativetutorial -f service-build.yaml
24 |
25 | ../poll_event_greeter.sh
26 |
27 | Subsequent Builds
28 | Edit Java code and git commit/push
29 | Edit docker-build.yaml for the correct image tag 0.0.13
30 | kubectl delete build docker-build
31 | kubectl apply -n knativetutorial -f docker-build.yaml
32 | stern docker-build
33 |
34 | Edit service-build.yaml for the correct image tag 0.0.9
35 | kubectl apply -n knativetutorial -f service-build.yaml
36 |
37 | ../poll_event_greeter.sh
38 |
--------------------------------------------------------------------------------
/boot-build-demo/service-build.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: serving.knative.dev/v1alpha1
2 | kind: Service
3 | metadata:
4 | name: event-greeter
5 | spec:
6 | runLatest:
7 | configuration:
8 | revisionTemplate:
9 | metadata:
10 | labels:
11 | app: event-greeter
12 | annotations:
13 | # Target 10 in-flight-requests per pod.
14 | autoscaling.knative.dev/target: "10"
15 | spec:
16 | container:
17 | image: docker.io/burrsutter/event-greeter:0.0.13
18 |
--------------------------------------------------------------------------------
/build-demos/gitclone-mvn.yml:
--------------------------------------------------------------------------------
1 | apiVersion: build.knative.dev/v1alpha1
2 | kind: Build
3 | metadata:
4 | name: gitclonemvn
5 | spec:
6 | source:
7 | git:
8 | revision: master
9 | url: https://github.com/burrsutter/knative-tutorial-greeter.git
10 | steps:
11 | - name: s3
12 | image: busybox
13 | args: ['ls', '/workspace/java/']
14 | - name: mvnbuild
15 | image: gcr.io/cloud-builders/mvn
16 | args: ["compile", "package"]
17 | workingDir: /workspace/java/springboot
18 | - name: s5
19 | image: busybox
20 | args: ['ls', '/workspace/java/springboot/target']
21 | - name: s6
22 | image: fedora
23 | command: ["/bin/bash"]
24 | args: ["-c", "sleep 10"]
25 |
26 |
--------------------------------------------------------------------------------
/build-demos/gitclone.yml:
--------------------------------------------------------------------------------
1 | apiVersion: build.knative.dev/v1alpha1
2 | kind: Build
3 | metadata:
4 | name: gitclone
5 | spec:
6 | source:
7 | git:
8 | revision: master
9 | url: https://github.com/burrsutter/knative-tutorial-greeter.git
10 | steps:
11 | - name: s3
12 | image: busybox
13 | args: ['ls', '/workspace/java/']
14 | - name: s4
15 | image: fedora
16 | command: ["/bin/bash"]
17 | args: ["-c", "sleep 12"]
18 |
--------------------------------------------------------------------------------
/build-demos/hello.yml:
--------------------------------------------------------------------------------
1 | apiVersion: build.knative.dev/v1alpha1
2 | kind: Build
3 | metadata:
4 | name: hello
5 | spec:
6 | steps:
7 | - name: mystep
8 | image: busybox
9 | args: ['echo', 'Hello, World!']
--------------------------------------------------------------------------------
/build-demos/hello1step.yml:
--------------------------------------------------------------------------------
1 | apiVersion: build.knative.dev/v1alpha1
2 | kind: Build
3 | metadata:
4 | name: hello1step
5 | labels:
6 | expect: succeeded
7 | spec:
8 | steps:
9 | - name: step1
10 | image: fedora
11 | command: ["/bin/bash"]
12 | args: ["-c", "sleep 10"]
13 |
--------------------------------------------------------------------------------
/build-demos/hello4step.yml:
--------------------------------------------------------------------------------
1 | apiVersion: build.knative.dev/v1alpha1
2 | kind: Build
3 | metadata:
4 | name: hello4step
5 | labels:
6 | expect: succeeded
7 | spec:
8 | steps:
9 | - name: step1
10 | image: fedora
11 | command: ["/bin/bash"]
12 | args: ["-c", "sleep 1"]
13 | - name: step2
14 | image: fedora
15 | command: ["/bin/bash"]
16 | args: ["-c", "sleep 1"]
17 | - name: step3
18 | image: fedora
19 | command: ["/bin/bash"]
20 | args: ["-c", "echo 'Stepping 3'"]
21 | - name: step4
22 | image: fedora
23 | command: ["/bin/bash"]
24 | args: ["-c", "sleep 1"]
25 |
--------------------------------------------------------------------------------
/build-demos/readme.txt:
--------------------------------------------------------------------------------
1 | kubectl apply -f hello.yml
2 |
3 | POD=kubectl get pod -n tutorial -l build.knative.dev/buildName=hello -o 'jsonpath={.items[0].metadata.name}'
4 |
5 | kubectl logs $POD -c build-step-mystep
6 |
7 |
8 |
--------------------------------------------------------------------------------
/build-demos/runBuild_gitclone.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | kubectl apply -f gitclone.yml
4 | sleep 3
5 | POD=$(kubectl get pod -l build.knative.dev/buildName=gitclone -o 'jsonpath={.items[0].metadata.name}')
6 | echo $POD
7 | echo "step 2"
8 | kubectl logs $POD -c build-step-git-source-0 -f
9 | sleep 3
10 | echo "step 3"
11 | kubectl logs $POD -c build-step-s3 -f
12 | sleep 3
13 | echo "step 4"
14 | kubectl logs $POD -c build-step-s4 -f
15 |
16 | echo 'all done, clean up'
17 | sleep 2
18 | # kubectl delete -f gitclone.yml
--------------------------------------------------------------------------------
/build-demos/runBuild_gitclonemvn.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | kubectl apply -f gitclone-mvn.yml
4 | sleep 3
5 | POD=$(kubectl get pod -l build.knative.dev/buildName=gitclonemvn -o 'jsonpath={.items[0].metadata.name}')
6 | echo $POD
7 | echo "step 2"
8 | kubectl logs $POD -c build-step-git-source-0 -f
9 | sleep 3
10 | echo "step 3"
11 | kubectl logs $POD -c build-step-s3 -f
12 | sleep 3
13 | echo "mvn build"
14 | kubectl logs $POD -c build-step-mvnbuild -f
15 | sleep 30
16 | echo "step 5"
17 | kubectl logs $POD -c build-step-s5 -f
18 |
19 | echo 'all done, clean up'
20 | sleep 2
21 | # kubectl delete -f gitclonemvn.yml
--------------------------------------------------------------------------------
/build_logs.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | kubectl logs $1 -c build-step-credential-initializer
4 | kubectl logs $1 -c build-step-git-source-0
5 | kubectl logs $1 -c build-step-build-and-push -f
--------------------------------------------------------------------------------
/burst_event_greeter.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | INGRESSGATEWAY=istio-ingressgateway
4 | IP_ADDRESS="$(minikube -p knative ip):$(kubectl get svc $INGRESSGATEWAY --namespace istio-system --output 'jsonpath={.spec.ports[?(@.port==80)].nodePort}')"
5 | HOST_URL=$(kubectl get routes.serving.knative.dev event-greeter -o jsonpath='{.status.domain}' -n knativetutorial)
6 |
7 | siege -r 1 -c 30 -d 2 -v -H "Host: ${HOST_URL}" ${IP_ADDRESS}
--------------------------------------------------------------------------------
/burst_greeter.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | INGRESSGATEWAY=istio-ingressgateway
4 | IP_ADDRESS="$(minikube -p knative ip):$(kubectl get svc $INGRESSGATEWAY --namespace istio-system --output 'jsonpath={.spec.ports[?(@.port==80)].nodePort}')"
5 | HOST_URL=$(kubectl get routes.serving.knative.dev greeter -o jsonpath='{.status.domain}' -n knativetutorial)
6 |
7 | siege -r 1 -c 30 -d 2 -v -H "Host: ${HOST_URL}" ${IP_ADDRESS}
--------------------------------------------------------------------------------
/clean_completed.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | kubectl delete pods --field-selector=status.phase=Succeeded
4 | kubectl delete pods --field-selector=status.phase=Failed
--------------------------------------------------------------------------------
/describe_build_pod.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | kubectl get pod $(kubectl get build $1 -ojsonpath={.status.cluster.podName}) -oyaml
--------------------------------------------------------------------------------
/docker_stats.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | docker stats --all --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}" $1
--------------------------------------------------------------------------------
/eventing-demo/call-eventinghello-minikube.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | INGRESSGATEWAY=istio-ingressgateway
3 | IP_ADDRESS="$(minikube ip):$(kubectl get svc $INGRESSGATEWAY --namespace istio-system --output 'jsonpath={.spec.ports[?(@.port==80)].nodePort}')"
4 | HOST_URL=$(kubectl get routes.serving.knative.dev eventinghello -o jsonpath='{.status.url}')
5 | STRIPPED=$(echo $HOST_URL | cut -f2 -d':' | cut -f3 -d'/')
6 |
7 | curl -H "Host: ${STRIPPED}" $IP_ADDRESS
8 | echo
9 |
--------------------------------------------------------------------------------
/eventing-demo/cron_eventing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/cron_eventing.png
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | kafka-spammer
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.m2e.core.maven2Builder
15 |
16 |
17 |
18 |
19 |
20 | org.eclipse.jdt.core.javanature
21 | org.eclipse.m2e.core.maven2Nature
22 |
23 |
24 |
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | encoding//src/main/java=UTF-8
3 | encoding//src/main/resources=UTF-8
4 | encoding/=UTF-8
5 |
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/.settings/org.eclipse.jdt.apt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.apt.aptEnabled=false
3 |
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
3 | org.eclipse.jdt.core.compiler.compliance=1.8
4 | org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
5 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
6 | org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
7 | org.eclipse.jdt.core.compiler.processAnnotations=disabled
8 | org.eclipse.jdt.core.compiler.release=disabled
9 | org.eclipse.jdt.core.compiler.source=1.8
10 |
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/.settings/org.eclipse.m2e.core.prefs:
--------------------------------------------------------------------------------
1 | activeProfiles=
2 | eclipse.preferences.version=1
3 | resolveWorkspaceProjects=true
4 | version=1
5 |
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/1_nativebuild.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | export GRAALVM_HOME=~/tools/graalvm-ce-19.2.1/Contents/Home/
4 |
5 | mvn package -Pnative -Dnative-image.docker-build=true -DskipTests
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/2_dockerbuild.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | docker build -t dev.local/rhdevelopers/kafkaspammer:1.0.1 -f src/main/docker/Dockerfile.native .
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/3_dockerbuild_push.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | VERSION=1.0.2
4 | APP=kafkaspammer
5 |
6 | docker build -t dev.local/rhdevelopers/$APP:$VERSION -f src/main/docker/Dockerfile.native .
7 |
8 | docker login quay.io
9 |
10 | docker tag dev.local/rhdevelopers/$APP:$VERSION quay.io/burrsutter/$APP:$VERSION
11 | docker push quay.io/burrsutter/$APP:$VERSION
12 |
13 |
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/4_deploy.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | kubectl apply -f src/main/kubernetes/Deployment.yml
4 | kubectl apply -f src/main/kubernetes/Service.yml
5 |
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/5_send_10.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | URL=$(minikube ip):$(kubectl get service/kafka-spammer -o jsonpath="{.spec.ports[*].nodePort}" -n kafka)
4 | curl $URL/10
5 |
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/5_send_3.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | URL=$(minikube ip):$(kubectl get service/kafka-spammer -o jsonpath="{.spec.ports[*].nodePort}" -n kafka)
4 | curl $URL/3
5 |
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/docker-compose.yaml:
--------------------------------------------------------------------------------
1 | version: '2'
2 |
3 | services:
4 |
5 | zookeeper:
6 | image: strimzi/kafka:0.15.0-kafka-2.3.1
7 | command: [
8 | "sh", "-c",
9 | "bin/zookeeper-server-start.sh config/zookeeper.properties"
10 | ]
11 | ports:
12 | - "2181:2181"
13 | environment:
14 | LOG_DIR: /tmp/logs
15 |
16 | kafka:
17 | image: strimzi/kafka:0.15.0-kafka-2.3.1
18 | command: [
19 | "sh", "-c",
20 | "bin/kafka-server-start.sh config/server.properties --override listeners=$${KAFKA_LISTENERS} --override advertised.listeners=$${KAFKA_ADVERTISED_LISTENERS} --override zookeeper.connect=$${KAFKA_ZOOKEEPER_CONNECT}"
21 | ]
22 | depends_on:
23 | - zookeeper
24 | ports:
25 | - "9092:9092"
26 | environment:
27 | LOG_DIR: "/tmp/logs"
28 | KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
29 | KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
30 | KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/in_container_curl.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 |
4 | trap '{ echo "" ; exit 1; }' INT
5 |
6 | NUM_MESSAGES=${1:-'1'}
7 |
8 | curl localhost:8080/$NUM_MESSAGES
9 |
10 |
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/kafka-spammer.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 |
4 | trap '{ echo "" ; exit 1; }' INT
5 |
6 | NUM_MESSAGES=${1:-'3'}
7 |
8 | kubectl -n kafka run kafka-spammer -ti \
9 | --image=quay.io/burrsutter/kafkaspammer:1.0.2 \
10 | --rm=true --restart=Never -- ./in_container_curl.sh $NUM_MESSAGES
11 |
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/kafka-spammer2.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | #kubectl -n kafka run kafka-spammer -ti \
4 | # --image=quay.io/burrsutter/kafkaspammer:1.0.2 \
5 | # --rm=true --restart=Never -- curl localhost:8080/3
6 |
7 | kubectl -n kafka run kafka-spammer --image=quay.io/burrsutter/kafkaspammer:1.0.2
8 |
9 | kubectl exec -i -t $(kubectl get pod -l "run=kafka-spammer" -o jsonpath='{.items[0].metadata.name}') -- /bin/sh
10 |
11 | curl localhost:8080/3
12 |
13 | exit
14 |
15 | kubectl delete deployment kafka-spammer
16 |
17 |
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 | com.redhat.developer.demos
6 | kafka-spammer
7 | 1.0.0
8 |
9 |
10 | 2.22.0
11 | 1.1.0.Final
12 |
13 | 1.8
14 | 1.8
15 |
16 | UTF-8
17 |
18 |
19 |
20 |
21 |
22 | io.quarkus
23 | quarkus-bom
24 | ${quarkus.version}
25 | pom
26 | import
27 |
28 |
29 |
30 |
31 |
32 |
33 | io.quarkus
34 | quarkus-undertow
35 |
36 |
37 | io.quarkus
38 | quarkus-resteasy
39 |
40 |
41 |
42 | io.quarkus
43 | quarkus-smallrye-reactive-messaging
44 |
45 |
46 | io.quarkus
47 | quarkus-smallrye-reactive-streams-operators
48 |
49 |
50 | io.quarkus
51 | quarkus-smallrye-reactive-messaging-kafka
52 |
53 |
59 |
60 |
61 |
62 |
63 |
64 | io.quarkus
65 | quarkus-maven-plugin
66 | ${quarkus.version}
67 |
68 |
69 |
70 | build
71 |
72 |
73 |
74 |
75 |
76 | maven-surefire-plugin
77 | ${surefire-plugin.version}
78 |
79 |
80 | org.jboss.logmanager.LogManager
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 | native
89 |
90 |
91 | native
92 |
93 |
94 |
95 |
96 |
97 | io.quarkus
98 | quarkus-maven-plugin
99 | ${quarkus.version}
100 |
101 |
102 |
103 | native-image
104 |
105 |
106 | true
107 |
108 |
109 |
110 |
111 |
112 | maven-failsafe-plugin
113 | ${surefire-plugin.version}
114 |
115 |
116 |
117 | integration-test
118 | verify
119 |
120 |
121 |
122 | ${project.build.directory}/${project.build.finalName}-runner
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/readme.txt:
--------------------------------------------------------------------------------
1 | docker compose up
2 |
3 | docker ps
4 |
5 | docker exec -it e1ae3326e782 /bin/bash
6 |
7 | bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my-topic --from-beginning
8 |
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/src/main/docker/Dockerfile.native:
--------------------------------------------------------------------------------
1 | FROM registry.access.redhat.com/ubi8/ubi-minimal
2 | WORKDIR /work/
3 | COPY target/*-runner /work/application
4 | COPY in_container_curl.sh /work/in_container_curl.sh
5 | RUN chmod +x in_container_curl.sh
6 | RUN chmod 775 /work
7 | EXPOSE 8080
8 | CMD ["./application", "-Dquarkus.http.host=0.0.0.0"]
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/src/main/java/com/redhat/developer/demos/MyStreamPublisher.java:
--------------------------------------------------------------------------------
1 | package com.redhat.developer.demos;
2 |
3 |
4 | import javax.enterprise.context.ApplicationScoped;
5 | import javax.inject.Inject;
6 | import javax.ws.rs.GET;
7 | import javax.ws.rs.Path;
8 | import javax.ws.rs.PathParam;
9 |
10 | import io.smallrye.reactive.messaging.annotations.Emitter;
11 | import io.smallrye.reactive.messaging.annotations.Channel;
12 | // import io.smallrye.reactive.messaging.annotations.Stream;
13 |
14 | @ApplicationScoped
15 | @Path("/")
16 | public class MyStreamPublisher {
17 |
18 | int cnt = 0;
19 |
20 | @Inject @Channel("mystream")
21 | Emitter emitter;
22 |
23 |
24 | @GET
25 | public String send1() {
26 | emitter.send("{\"message\":\"sending-" + cnt++ +"\"}");
27 | System.out.println("Sent 1 Message");
28 | return "Sent 1";
29 | }
30 |
31 | @GET
32 | @Path("/{messagestosend}")
33 | public String sendNMessages(@PathParam("messagestosend") int messagestosend) {
34 | System.out.println("messagestosend: " + messagestosend);
35 | for (int i=0; i < messagestosend; i++) {
36 | System.out.println("sending i: " + i);
37 | emitter.send("{\"message\":\"spamming-" + cnt++ +"\"}");
38 | }
39 | String output = "Sent " + messagestosend + " messages";
40 | return output;
41 | }
42 |
43 |
44 | }
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/src/main/kubernetes/Deployment.yml:
--------------------------------------------------------------------------------
1 | apiVersion: extensions/v1beta1
2 | kind: Deployment
3 | metadata:
4 | labels:
5 | app: kafka-spammer
6 | name: kafka-spammer
7 | spec:
8 | replicas: 1
9 | selector:
10 | matchLabels:
11 | app: kafka-spammer
12 | template:
13 | metadata:
14 | labels:
15 | app: kafka-spammer
16 | spec:
17 | containers:
18 | - name: kafka-spammer
19 | image: dev.local/rhdevelopers/kafkaspammer:1.0.0
20 | env:
21 | - name: MP_MESSAGING_OUTGOING_MYSTREAM_BOOTSTRAP_SERVERS
22 | value: my-cluster-kafka-bootstrap:9092
23 | ports:
24 | - containerPort: 8080
25 | resources:
26 | requests:
27 | memory: "60Mi"
28 | cpu: "250m"
29 | limits:
30 | memory: "100Mi"
31 | cpu: "250m"
32 |
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/src/main/kubernetes/Service.yml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Service
3 | metadata:
4 | name: kafka-spammer
5 | labels:
6 | app: kafka-spammer
7 | spec:
8 | ports:
9 | - name: http
10 | port: 8080
11 | selector:
12 | app: kafka-spammer
13 | type: LoadBalancer
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | quarkus.http.port=8080
2 | mp.messaging.outgoing.mystream.connector=smallrye-kafka
3 | mp.messaging.outgoing.mystream.topic=my-topic
4 | mp.messaging.outgoing.mystream.bootstrap.servers=my-cluster-kafka-bootstrap:9092
5 | # mp.messaging.outgoing.mystream.bootstrap.servers=localhost:9092
6 | mp.messaging.outgoing.mystream.key.serializer=org.apache.kafka.common.serialization.StringSerializer
7 | mp.messaging.outgoing.mystream.value.serializer=org.apache.kafka.common.serialization.StringSerializer
8 | mp.messaging.outgoing.mystream.waitForWriteCompletion=false
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/classes/application.properties:
--------------------------------------------------------------------------------
1 | quarkus.http.port=8080
2 | mp.messaging.outgoing.mystream.connector=smallrye-kafka
3 | mp.messaging.outgoing.mystream.topic=my-topic
4 | mp.messaging.outgoing.mystream.bootstrap.servers=my-cluster-kafka-bootstrap:9092
5 | # mp.messaging.outgoing.mystream.bootstrap.servers=localhost:9092
6 | mp.messaging.outgoing.mystream.key.serializer=org.apache.kafka.common.serialization.StringSerializer
7 | mp.messaging.outgoing.mystream.value.serializer=org.apache.kafka.common.serialization.StringSerializer
8 | mp.messaging.outgoing.mystream.waitForWriteCompletion=false
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/classes/com/redhat/developer/demos/MyStreamPublisher.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/classes/com/redhat/developer/demos/MyStreamPublisher.class
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/kafka-spammer-1.0.0-runner.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/kafka-spammer-1.0.0-runner.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/kafka-spammer-1.0.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/kafka-spammer-1.0.0.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/com.fasterxml.jackson.core.jackson-annotations-2.9.10.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/com.fasterxml.jackson.core.jackson-annotations-2.9.10.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/com.fasterxml.jackson.core.jackson-core-2.9.10.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/com.fasterxml.jackson.core.jackson-core-2.9.10.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/com.fasterxml.jackson.core.jackson-databind-2.9.10.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/com.fasterxml.jackson.core.jackson-databind-2.9.10.1.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/com.fasterxml.jackson.datatype.jackson-datatype-jdk8-2.9.10.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/com.fasterxml.jackson.datatype.jackson-datatype-jdk8-2.9.10.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/com.fasterxml.jackson.datatype.jackson-datatype-jsr310-2.9.10.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/com.fasterxml.jackson.datatype.jackson-datatype-jsr310-2.9.10.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/com.fasterxml.jackson.module.jackson-module-parameter-names-2.9.10.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/com.fasterxml.jackson.module.jackson-module-parameter-names-2.9.10.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/com.github.luben.zstd-jni-1.3.8-1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/com.github.luben.zstd-jni-1.3.8-1.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/com.github.spotbugs.spotbugs-annotations-3.1.9.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/com.github.spotbugs.spotbugs-annotations-3.1.9.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/com.google.code.findbugs.jsr305-3.0.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/com.google.code.findbugs.jsr305-3.0.2.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/com.sun.activation.jakarta.activation-1.2.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/com.sun.activation.jakarta.activation-1.2.1.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/com.typesafe.scala-logging.scala-logging_2.12-3.9.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/com.typesafe.scala-logging.scala-logging_2.12-3.9.0.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/com.yammer.metrics.metrics-core-2.2.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/com.yammer.metrics.metrics-core-2.2.0.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.netty.netty-buffer-4.1.42.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.netty.netty-buffer-4.1.42.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.netty.netty-codec-4.1.42.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.netty.netty-codec-4.1.42.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.netty.netty-codec-dns-4.1.42.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.netty.netty-codec-dns-4.1.42.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.netty.netty-codec-http-4.1.42.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.netty.netty-codec-http-4.1.42.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.netty.netty-codec-http2-4.1.42.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.netty.netty-codec-http2-4.1.42.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.netty.netty-codec-socks-4.1.42.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.netty.netty-codec-socks-4.1.42.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.netty.netty-common-4.1.42.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.netty.netty-common-4.1.42.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.netty.netty-handler-4.1.42.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.netty.netty-handler-4.1.42.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.netty.netty-handler-proxy-4.1.42.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.netty.netty-handler-proxy-4.1.42.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.netty.netty-resolver-4.1.42.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.netty.netty-resolver-4.1.42.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.netty.netty-resolver-dns-4.1.42.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.netty.netty-resolver-dns-4.1.42.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.netty.netty-transport-4.1.42.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.netty.netty-transport-4.1.42.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.arc.arc-1.1.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.arc.arc-1.1.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.http.quarkus-http-core-3.0.1.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.http.quarkus-http-core-3.0.1.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.http.quarkus-http-http-core-3.0.1.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.http.quarkus-http-http-core-3.0.1.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.http.quarkus-http-servlet-3.0.1.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.http.quarkus-http-servlet-3.0.1.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.http.quarkus-http-vertx-backend-3.0.1.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.http.quarkus-http-vertx-backend-3.0.1.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-arc-1.1.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-arc-1.1.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-core-1.1.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-core-1.1.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-jackson-1.1.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-jackson-1.1.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-kafka-client-1.1.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-kafka-client-1.1.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-netty-1.1.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-netty-1.1.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-resteasy-1.1.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-resteasy-1.1.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-resteasy-common-1.1.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-resteasy-common-1.1.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-resteasy-server-common-1.1.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-resteasy-server-common-1.1.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-smallrye-context-propagation-1.1.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-smallrye-context-propagation-1.1.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-smallrye-reactive-messaging-1.1.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-smallrye-reactive-messaging-1.1.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-smallrye-reactive-messaging-kafka-1.1.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-smallrye-reactive-messaging-kafka-1.1.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-smallrye-reactive-streams-operators-1.1.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-smallrye-reactive-streams-operators-1.1.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-undertow-1.1.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-undertow-1.1.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-vertx-core-1.1.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-vertx-core-1.1.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-vertx-http-1.1.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.quarkus-vertx-http-1.1.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.quarkus.security.quarkus-security-1.0.1.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.quarkus.security.quarkus-security-1.0.1.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.reactivex.rxjava2.rxjava-2.2.15.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.reactivex.rxjava2.rxjava-2.2.15.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.smallrye.config.smallrye-config-1.5.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.smallrye.config.smallrye-config-1.5.1.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.smallrye.config.smallrye-config-common-1.5.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.smallrye.config.smallrye-config-common-1.5.1.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.smallrye.reactive.smallrye-reactive-converter-api-1.0.10.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.smallrye.reactive.smallrye-reactive-converter-api-1.0.10.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.smallrye.reactive.smallrye-reactive-messaging-kafka-1.0.8.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.smallrye.reactive.smallrye-reactive-messaging-kafka-1.0.8.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.smallrye.reactive.smallrye-reactive-messaging-provider-1.0.8.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.smallrye.reactive.smallrye-reactive-messaging-provider-1.0.8.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.smallrye.reactive.smallrye-reactive-streams-operators-1.0.10.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.smallrye.reactive.smallrye-reactive-streams-operators-1.0.10.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.smallrye.smallrye-context-propagation-1.0.11.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.smallrye.smallrye-context-propagation-1.0.11.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.smallrye.smallrye-context-propagation-api-1.0.11.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.smallrye.smallrye-context-propagation-api-1.0.11.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.smallrye.smallrye-context-propagation-propagators-rxjava2-1.0.11.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.smallrye.smallrye-context-propagation-propagators-rxjava2-1.0.11.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.vertx.vertx-auth-common-3.8.4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.vertx.vertx-auth-common-3.8.4.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.vertx.vertx-bridge-common-3.8.4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.vertx.vertx-bridge-common-3.8.4.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.vertx.vertx-codegen-3.8.4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.vertx.vertx-codegen-3.8.4.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.vertx.vertx-core-3.8.4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.vertx.vertx-core-3.8.4.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.vertx.vertx-kafka-client-3.8.4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.vertx.vertx-kafka-client-3.8.4.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.vertx.vertx-rx-gen-3.8.4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.vertx.vertx-rx-gen-3.8.4.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.vertx.vertx-rx-java2-3.8.4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.vertx.vertx-rx-java2-3.8.4.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.vertx.vertx-web-3.8.4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.vertx.vertx-web-3.8.4.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/io.vertx.vertx-web-common-3.8.4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/io.vertx.vertx-web-common-3.8.4.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/jakarta.annotation.jakarta.annotation-api-1.3.5.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/jakarta.annotation.jakarta.annotation-api-1.3.5.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/jakarta.el.jakarta.el-api-3.0.3.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/jakarta.el.jakarta.el-api-3.0.3.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/jakarta.enterprise.jakarta.enterprise.cdi-api-2.0.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/jakarta.enterprise.jakarta.enterprise.cdi-api-2.0.2.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/jakarta.inject.jakarta.inject-api-1.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/jakarta.inject.jakarta.inject-api-1.0.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/jakarta.interceptor.jakarta.interceptor-api-1.2.5.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/jakarta.interceptor.jakarta.interceptor-api-1.2.5.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/jakarta.servlet.jakarta.servlet-api-4.0.3.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/jakarta.servlet.jakarta.servlet-api-4.0.3.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/jakarta.validation.jakarta.validation-api-2.0.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/jakarta.validation.jakarta.validation-api-2.0.2.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/net.sf.jopt-simple.jopt-simple-5.0.4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/net.sf.jopt-simple.jopt-simple-5.0.4.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.apache.commons.commons-lang3-3.9.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.apache.commons.commons-lang3-3.9.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.apache.kafka.kafka-clients-2.2.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.apache.kafka.kafka-clients-2.2.1.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.apache.kafka.kafka_2.12-2.2.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.apache.kafka.kafka_2.12-2.2.1.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.apache.yetus.audience-annotations-0.5.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.apache.yetus.audience-annotations-0.5.0.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.apache.zookeeper.zookeeper-3.4.14.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.apache.zookeeper.zookeeper-3.4.14.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.eclipse.microprofile.config.microprofile-config-api-1.3.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.eclipse.microprofile.config.microprofile-config-api-1.3.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.eclipse.microprofile.context-propagation.microprofile-context-propagation-api-1.0.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.eclipse.microprofile.context-propagation.microprofile-context-propagation-api-1.0.1.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.eclipse.microprofile.reactive-streams-operators.microprofile-reactive-streams-operators-api-1.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.eclipse.microprofile.reactive-streams-operators.microprofile-reactive-streams-operators-api-1.0.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.eclipse.microprofile.reactive-streams-operators.microprofile-reactive-streams-operators-core-1.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.eclipse.microprofile.reactive-streams-operators.microprofile-reactive-streams-operators-core-1.0.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.eclipse.microprofile.reactive.messaging.microprofile-reactive-messaging-api-1.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.eclipse.microprofile.reactive.messaging.microprofile-reactive-messaging-api-1.0.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.graalvm.sdk.graal-sdk-19.2.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.graalvm.sdk.graal-sdk-19.2.1.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.jboss.jandex-2.1.2.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.jboss.jandex-2.1.2.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.jboss.logging.jboss-logging-3.3.2.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.jboss.logging.jboss-logging-3.3.2.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.jboss.logging.jboss-logging-annotations-2.1.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.jboss.logging.jboss-logging-annotations-2.1.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.jboss.logmanager.jboss-logmanager-embedded-1.0.4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.jboss.logmanager.jboss-logmanager-embedded-1.0.4.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.jboss.resteasy.resteasy-context-propagation-4.4.1.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.jboss.resteasy.resteasy-context-propagation-4.4.1.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.jboss.resteasy.resteasy-core-4.4.1.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.jboss.resteasy.resteasy-core-4.4.1.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.jboss.resteasy.resteasy-core-spi-4.4.1.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.jboss.resteasy.resteasy-core-spi-4.4.1.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.jboss.slf4j.slf4j-jboss-logging-1.2.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.jboss.slf4j.slf4j-jboss-logging-1.2.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.jboss.spec.javax.ws.rs.jboss-jaxrs-api_2.1_spec-2.0.1.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.jboss.spec.javax.ws.rs.jboss-jaxrs-api_2.1_spec-2.0.1.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.jboss.spec.javax.xml.bind.jboss-jaxb-api_2.3_spec-2.0.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.jboss.spec.javax.xml.bind.jboss-jaxb-api_2.3_spec-2.0.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.jboss.threads.jboss-threads-3.0.0.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.jboss.threads.jboss-threads-3.0.0.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.lz4.lz4-java-1.5.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.lz4.lz4-java-1.5.0.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.mvel.mvel2-2.4.4.Final.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.mvel.mvel2-2.4.4.Final.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.reactivestreams.reactive-streams-1.0.3.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.reactivestreams.reactive-streams-1.0.3.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.slf4j.slf4j-api-1.7.29.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.slf4j.slf4j-api-1.7.29.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.wildfly.common.wildfly-common-1.5.0.Final-format-001.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.wildfly.common.wildfly-common-1.5.0.Final-format-001.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/lib/org.xerial.snappy.snappy-java-1.1.7.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/kafkaspammer/target/lib/org.xerial.snappy.snappy-java-1.1.7.2.jar
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/maven-archiver/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven
2 | #Sun Dec 29 10:23:06 EST 2019
3 | version=1.0.0
4 | groupId=com.redhat.developer.demos
5 | artifactId=kafka-spammer
6 |
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst:
--------------------------------------------------------------------------------
1 | com/redhat/developer/demos/MyStreamPublisher.class
2 |
--------------------------------------------------------------------------------
/eventing-demo/kafkaspammer/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst:
--------------------------------------------------------------------------------
1 | /Users/burrsutter/11steps/scripts-knative/eventing-demo/kafkaspammer/src/main/java/com/redhat/developer/demos/MyStreamPublisher.java
2 |
--------------------------------------------------------------------------------
/eventing-demo/knative_eventing_kafka1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/knative_eventing_kafka1.png
--------------------------------------------------------------------------------
/eventing-demo/knativefiles/1_serving_dev_local.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: serving.knative.dev/v1alpha1
2 | kind: Service
3 | metadata:
4 | name: eventinghello
5 | spec:
6 | template:
7 | metadata:
8 | name: eventinghello-v1
9 | annotations:
10 | # disable istio-proxy injection
11 | sidecar.istio.io/inject: "false"
12 | autoscaling.knative.dev/target: "1"
13 | spec:
14 | containers:
15 | - image: dev.local/rhdevelopers/eventinghello:0.0.1
16 |
--------------------------------------------------------------------------------
/eventing-demo/knativefiles/1_serving_quay.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: serving.knative.dev/v1alpha1
2 | kind: Service
3 | metadata:
4 | name: eventinghello
5 | spec:
6 | template:
7 | metadata:
8 | name: eventinghello-v1
9 | annotations:
10 | # disable istio-proxy injection
11 | sidecar.istio.io/inject: "false"
12 | autoscaling.knative.dev/target: "1"
13 | spec:
14 | containers:
15 | - image: quay.io/burrsutter/eventinghello:0.0.1
16 |
--------------------------------------------------------------------------------
/eventing-demo/knativefiles/2_source2service.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: sources.eventing.knative.dev/v1alpha1
2 | kind: CronJobSource
3 | metadata:
4 | name: eventinghello-cronjob-source
5 | spec:
6 | schedule: "*/2 * * * *"
7 | data: '{"key": "every 2 mins"}'
8 | sink:
9 | apiVersion: serving.knative.dev/v1alpha1
10 | kind: Service
11 | name: eventinghello
--------------------------------------------------------------------------------
/eventing-demo/knativefiles/3_kafka_source2service.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: sources.eventing.knative.dev/v1alpha1
2 | kind: KafkaSource
3 | metadata:
4 | name: kafka-source
5 | spec:
6 | consumerGroup: knativerhdeveloperdemokafka
7 | bootstrapServers: my-cluster-kafka-bootstrap.kafka:9092
8 | topics: my-topic
9 | sink:
10 | apiVersion: serving.knative.dev/v1alpha1
11 | kind: Service
12 | name: event-display
--------------------------------------------------------------------------------
/eventing-demo/poll-eventinghello-minikube.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | INGRESSGATEWAY=istio-ingressgateway
3 | IP_ADDRESS="$(minikube ip):$(kubectl get svc $INGRESSGATEWAY --namespace istio-system --output 'jsonpath={.spec.ports[?(@.port==80)].nodePort}')"
4 | HOST_URL=$(kubectl get routes.serving.knative.dev eventinghello -o jsonpath='{.status.url}')
5 | STRIPPED=$(echo $HOST_URL | cut -f2 -d':' | cut -f3 -d'/')
6 |
7 | while true
8 | do curl -H "Host: ${STRIPPED}" $IP_ADDRESS
9 | sleep .3
10 | echo
11 | done
--------------------------------------------------------------------------------
/eventing-demo/qeventingce/.dockerignore:
--------------------------------------------------------------------------------
1 | *
2 | !target/*-runner
3 | !target/*-runner.jar
4 | !target/lib/*
--------------------------------------------------------------------------------
/eventing-demo/qeventingce/.gitignore:
--------------------------------------------------------------------------------
1 | # Eclipse
2 | .project
3 | .classpath
4 | .settings/
5 | bin/
6 |
7 | # IntelliJ
8 | .idea
9 | *.ipr
10 | *.iml
11 | *.iws
12 |
13 | # NetBeans
14 | nb-configuration.xml
15 |
16 | # Visual Studio Code
17 | .vscode
18 |
19 | # OSX
20 | .DS_Store
21 |
22 | # Vim
23 | *.swp
24 | *.swo
25 |
26 | # patch
27 | *.orig
28 | *.rej
29 |
30 | # Maven
31 | target/
32 | pom.xml.tag
33 | pom.xml.releaseBackup
34 | pom.xml.versionsBackup
35 | release.properties
--------------------------------------------------------------------------------
/eventing-demo/qeventingce/.mvn/wrapper/MavenWrapperDownloader.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2007-present the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | import java.net.*;
17 | import java.io.*;
18 | import java.nio.channels.*;
19 | import java.util.Properties;
20 |
21 | public class MavenWrapperDownloader {
22 |
23 | private static final String WRAPPER_VERSION = "0.5.5";
24 | /**
25 | * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
26 | */
27 | private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
28 | + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
29 |
30 | /**
31 | * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
32 | * use instead of the default one.
33 | */
34 | private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
35 | ".mvn/wrapper/maven-wrapper.properties";
36 |
37 | /**
38 | * Path where the maven-wrapper.jar will be saved to.
39 | */
40 | private static final String MAVEN_WRAPPER_JAR_PATH =
41 | ".mvn/wrapper/maven-wrapper.jar";
42 |
43 | /**
44 | * Name of the property which should be used to override the default download url for the wrapper.
45 | */
46 | private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
47 |
48 | public static void main(String args[]) {
49 | System.out.println("- Downloader started");
50 | File baseDirectory = new File(args[0]);
51 | System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
52 |
53 | // If the maven-wrapper.properties exists, read it and check if it contains a custom
54 | // wrapperUrl parameter.
55 | File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
56 | String url = DEFAULT_DOWNLOAD_URL;
57 | if(mavenWrapperPropertyFile.exists()) {
58 | FileInputStream mavenWrapperPropertyFileInputStream = null;
59 | try {
60 | mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
61 | Properties mavenWrapperProperties = new Properties();
62 | mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
63 | url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
64 | } catch (IOException e) {
65 | System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
66 | } finally {
67 | try {
68 | if(mavenWrapperPropertyFileInputStream != null) {
69 | mavenWrapperPropertyFileInputStream.close();
70 | }
71 | } catch (IOException e) {
72 | // Ignore ...
73 | }
74 | }
75 | }
76 | System.out.println("- Downloading from: " + url);
77 |
78 | File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
79 | if(!outputFile.getParentFile().exists()) {
80 | if(!outputFile.getParentFile().mkdirs()) {
81 | System.out.println(
82 | "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
83 | }
84 | }
85 | System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
86 | try {
87 | downloadFileFromURL(url, outputFile);
88 | System.out.println("Done");
89 | System.exit(0);
90 | } catch (Throwable e) {
91 | System.out.println("- Error downloading");
92 | e.printStackTrace();
93 | System.exit(1);
94 | }
95 | }
96 |
97 | private static void downloadFileFromURL(String urlString, File destination) throws Exception {
98 | if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
99 | String username = System.getenv("MVNW_USERNAME");
100 | char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
101 | Authenticator.setDefault(new Authenticator() {
102 | @Override
103 | protected PasswordAuthentication getPasswordAuthentication() {
104 | return new PasswordAuthentication(username, password);
105 | }
106 | });
107 | }
108 | URL website = new URL(urlString);
109 | ReadableByteChannel rbc;
110 | rbc = Channels.newChannel(website.openStream());
111 | FileOutputStream fos = new FileOutputStream(destination);
112 | fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
113 | fos.close();
114 | rbc.close();
115 | }
116 |
117 | }
118 |
--------------------------------------------------------------------------------
/eventing-demo/qeventingce/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/qeventingce/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/eventing-demo/qeventingce/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.1/apache-maven-3.6.1-bin.zip
2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar
3 |
--------------------------------------------------------------------------------
/eventing-demo/qeventingce/1_jvmbuild.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | mvn clean package
--------------------------------------------------------------------------------
/eventing-demo/qeventingce/1_nativebuild.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | export GRAALVM_HOME=~/tools/graalvm-ce-19.2.1/Contents/Home/
4 |
5 | mvn clean package -Pnative -Dquarkus.native.container-build=true
--------------------------------------------------------------------------------
/eventing-demo/qeventingce/2_dockerbuild_jvm.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | docker build -t dev.local/rhdevelopers/eventinghello:0.0.1 -f src/main/docker/Dockerfile.jvm .
--------------------------------------------------------------------------------
/eventing-demo/qeventingce/2_dockerbuild_native.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | docker build -t dev.local/rhdevelopers/eventinghello:0.0.1 -f src/main/docker/Dockerfile.native .
--------------------------------------------------------------------------------
/eventing-demo/qeventingce/3_dockerbuild_push_jvm.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | VERSION=0.0.1
4 | APP=eventinghello
5 |
6 | docker build -t dev.local/rhdevelopers/$APP:$VERSION -f src/main/docker/Dockerfile.jvm .
7 |
8 | docker login quay.io
9 |
10 | docker tag dev.local/rhdevelopers/$APP:$VERSION quay.io/burrsutter/$APP:$VERSION
11 | docker push quay.io/burrsutter/$APP:$VERSION
12 |
13 |
--------------------------------------------------------------------------------
/eventing-demo/qeventingce/3_dockerbuild_push_native.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | VERSION=0.0.1
4 | APP=eventinghello
5 |
6 | docker build -t dev.local/rhdevelopers/$APP:$VERSION -f src/main/docker/Dockerfile.native .
7 |
8 | docker login quay.io
9 |
10 | docker tag dev.local/rhdevelopers/$APP:$VERSION quay.io/burrsutter/$APP:$VERSION
11 | docker push quay.io/burrsutter/$APP:$VERSION
12 |
13 |
--------------------------------------------------------------------------------
/eventing-demo/qeventingce/mvnw.cmd:
--------------------------------------------------------------------------------
1 | @REM ----------------------------------------------------------------------------
2 | @REM Licensed to the Apache Software Foundation (ASF) under one
3 | @REM or more contributor license agreements. See the NOTICE file
4 | @REM distributed with this work for additional information
5 | @REM regarding copyright ownership. The ASF licenses this file
6 | @REM to you under the Apache License, Version 2.0 (the
7 | @REM "License"); you may not use this file except in compliance
8 | @REM with the License. You may obtain a copy of the License at
9 | @REM
10 | @REM http://www.apache.org/licenses/LICENSE-2.0
11 | @REM
12 | @REM Unless required by applicable law or agreed to in writing,
13 | @REM software distributed under the License is distributed on an
14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | @REM KIND, either express or implied. See the License for the
16 | @REM specific language governing permissions and limitations
17 | @REM under the License.
18 | @REM ----------------------------------------------------------------------------
19 |
20 | @REM ----------------------------------------------------------------------------
21 | @REM Maven2 Start Up Batch script
22 | @REM
23 | @REM Required ENV vars:
24 | @REM JAVA_HOME - location of a JDK home dir
25 | @REM
26 | @REM Optional ENV vars
27 | @REM M2_HOME - location of maven2's installed home dir
28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31 | @REM e.g. to debug Maven itself, use
32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34 | @REM ----------------------------------------------------------------------------
35 |
36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37 | @echo off
38 | @REM set title of command window
39 | title %0
40 | @REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
41 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
42 |
43 | @REM set %HOME% to equivalent of $HOME
44 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
45 |
46 | @REM Execute a user defined script before this one
47 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
48 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending
49 | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
50 | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
51 | :skipRcPre
52 |
53 | @setlocal
54 |
55 | set ERROR_CODE=0
56 |
57 | @REM To isolate internal variables from possible post scripts, we use another setlocal
58 | @setlocal
59 |
60 | @REM ==== START VALIDATION ====
61 | if not "%JAVA_HOME%" == "" goto OkJHome
62 |
63 | echo.
64 | echo Error: JAVA_HOME not found in your environment. >&2
65 | echo Please set the JAVA_HOME variable in your environment to match the >&2
66 | echo location of your Java installation. >&2
67 | echo.
68 | goto error
69 |
70 | :OkJHome
71 | if exist "%JAVA_HOME%\bin\java.exe" goto init
72 |
73 | echo.
74 | echo Error: JAVA_HOME is set to an invalid directory. >&2
75 | echo JAVA_HOME = "%JAVA_HOME%" >&2
76 | echo Please set the JAVA_HOME variable in your environment to match the >&2
77 | echo location of your Java installation. >&2
78 | echo.
79 | goto error
80 |
81 | @REM ==== END VALIDATION ====
82 |
83 | :init
84 |
85 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86 | @REM Fallback to current working directory if not found.
87 |
88 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90 |
91 | set EXEC_DIR=%CD%
92 | set WDIR=%EXEC_DIR%
93 | :findBaseDir
94 | IF EXIST "%WDIR%"\.mvn goto baseDirFound
95 | cd ..
96 | IF "%WDIR%"=="%CD%" goto baseDirNotFound
97 | set WDIR=%CD%
98 | goto findBaseDir
99 |
100 | :baseDirFound
101 | set MAVEN_PROJECTBASEDIR=%WDIR%
102 | cd "%EXEC_DIR%"
103 | goto endDetectBaseDir
104 |
105 | :baseDirNotFound
106 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107 | cd "%EXEC_DIR%"
108 |
109 | :endDetectBaseDir
110 |
111 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112 |
113 | @setlocal EnableExtensions EnableDelayedExpansion
114 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116 |
117 | :endReadAdditionalConfig
118 |
119 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120 | set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122 |
123 | set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
124 |
125 | FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
126 | IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
127 | )
128 |
129 | @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
130 | @REM This allows using the maven wrapper in projects that prohibit checking in binary data.
131 | if exist %WRAPPER_JAR% (
132 | if "%MVNW_VERBOSE%" == "true" (
133 | echo Found %WRAPPER_JAR%
134 | )
135 | ) else (
136 | if not "%MVNW_REPOURL%" == "" (
137 | SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
138 | )
139 | if "%MVNW_VERBOSE%" == "true" (
140 | echo Couldn't find %WRAPPER_JAR%, downloading it ...
141 | echo Downloading from: %DOWNLOAD_URL%
142 | )
143 |
144 | powershell -Command "&{"^
145 | "$webclient = new-object System.Net.WebClient;"^
146 | "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
147 | "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
148 | "}"^
149 | "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
150 | "}"
151 | if "%MVNW_VERBOSE%" == "true" (
152 | echo Finished downloading %WRAPPER_JAR%
153 | )
154 | )
155 | @REM End of extension
156 |
157 | @REM Provide a "standardized" way to retrieve the CLI args that will
158 | @REM work with both Windows and non-Windows executions.
159 | set MAVEN_CMD_LINE_ARGS=%*
160 |
161 | %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
162 | if ERRORLEVEL 1 goto error
163 | goto end
164 |
165 | :error
166 | set ERROR_CODE=1
167 |
168 | :end
169 | @endlocal & set ERROR_CODE=%ERROR_CODE%
170 |
171 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
172 | @REM check for post script, once with legacy .bat ending and once with .cmd ending
173 | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
174 | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
175 | :skipRcPost
176 |
177 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
178 | if "%MAVEN_BATCH_PAUSE%" == "on" pause
179 |
180 | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
181 |
182 | exit /B %ERROR_CODE%
183 |
--------------------------------------------------------------------------------
/eventing-demo/qeventingce/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 | com.redhat.developer.demos
6 | qeventinghello
7 | 0.0.1
8 |
9 | 3.8.1
10 | true
11 | 1.8
12 | 1.8
13 | UTF-8
14 | UTF-8
15 | 1.1.0.Final
16 | quarkus-universe-bom
17 | io.quarkus
18 | 1.1.0.Final
19 | 2.22.1
20 |
21 |
22 |
23 |
24 | ${quarkus.platform.group-id}
25 | ${quarkus.platform.artifact-id}
26 | ${quarkus.platform.version}
27 | pom
28 | import
29 |
30 |
31 |
32 |
33 |
34 | io.quarkus
35 | quarkus-resteasy
36 |
37 |
38 | io.quarkus
39 | quarkus-resteasy-jsonb
40 |
41 |
42 | io.cloudevents
43 | cloudevents-api
44 | 1.1.0
45 |
46 |
47 | io.quarkus
48 | quarkus-jsonp
49 |
50 |
51 | io.quarkus
52 | quarkus-hibernate-validator
53 |
54 |
55 | io.quarkus
56 | quarkus-junit5
57 | test
58 |
59 |
60 | io.rest-assured
61 | rest-assured
62 | test
63 |
64 |
65 |
66 |
67 |
68 | io.quarkus
69 | quarkus-maven-plugin
70 | ${quarkus-plugin.version}
71 |
72 |
73 |
74 | build
75 |
76 |
77 |
78 |
79 |
80 | maven-compiler-plugin
81 | ${compiler-plugin.version}
82 |
83 |
84 | maven-surefire-plugin
85 | ${surefire-plugin.version}
86 |
87 |
88 | org.jboss.logmanager.LogManager
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 | native
97 |
98 |
99 | native
100 |
101 |
102 |
103 |
104 |
105 | maven-failsafe-plugin
106 | ${surefire-plugin.version}
107 |
108 |
109 |
110 | integration-test
111 | verify
112 |
113 |
114 |
115 | ${project.build.directory}/${project.build.finalName}-runner
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 | native
125 |
126 |
127 |
128 |
129 |
--------------------------------------------------------------------------------
/eventing-demo/qeventingce/src/main/docker/Dockerfile.jvm:
--------------------------------------------------------------------------------
1 | ####
2 | # This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode
3 | #
4 | # Before building the docker image run:
5 | #
6 | # mvn package
7 | #
8 | # Then, build the image with:
9 | #
10 | # docker build -f src/main/docker/Dockerfile.jvm -t quarkus/qeventinghello-jvm .
11 | #
12 | # Then run the container using:
13 | #
14 | # docker run -i --rm -p 8080:8080 quarkus/qeventinghello-jvm
15 | #
16 | ###
17 | FROM fabric8/java-alpine-openjdk8-jre
18 | ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
19 | ENV AB_ENABLED=jmx_exporter
20 | COPY target/lib/* /deployments/lib/
21 | COPY target/*-runner.jar /deployments/app.jar
22 | EXPOSE 8080
23 |
24 | # run with user 1001 and be prepared for be running in OpenShift too
25 | RUN adduser -G root --no-create-home --disabled-password 1001 \
26 | && chown -R 1001 /deployments \
27 | && chmod -R "g+rwX" /deployments \
28 | && chown -R 1001:root /deployments
29 | USER 1001
30 |
31 | ENTRYPOINT [ "/deployments/run-java.sh" ]
--------------------------------------------------------------------------------
/eventing-demo/qeventingce/src/main/docker/Dockerfile.native:
--------------------------------------------------------------------------------
1 | ####
2 | # This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode
3 | #
4 | # Before building the docker image run:
5 | #
6 | # mvn package -Pnative -Dquarkus.native.container-build=true
7 | #
8 | # Then, build the image with:
9 | #
10 | # docker build -f src/main/docker/Dockerfile.native -t quarkus/qeventinghello .
11 | #
12 | # Then run the container using:
13 | #
14 | # docker run -i --rm -p 8080:8080 quarkus/qeventinghello
15 | #
16 | ###
17 | FROM registry.access.redhat.com/ubi8/ubi-minimal
18 | WORKDIR /work/
19 | COPY target/*-runner /work/application
20 | RUN chmod 775 /work
21 | EXPOSE 8080
22 | CMD ["./application", "-Dquarkus.http.host=0.0.0.0"]
--------------------------------------------------------------------------------
/eventing-demo/qeventingce/src/main/java/com/redhat/developer/demos/ExampleResource.java:
--------------------------------------------------------------------------------
1 | package com.redhat.developer.demos;
2 |
3 | import java.io.StringReader;
4 | import java.net.URI;
5 | import java.util.Map;
6 | import java.util.UUID;
7 |
8 | import javax.inject.Inject;
9 | import javax.json.Json;
10 | import javax.json.JsonObject;
11 | import javax.json.JsonObjectBuilder;
12 | import javax.json.JsonReader;
13 | import javax.validation.Validator;
14 | import javax.ws.rs.Consumes;
15 | import javax.ws.rs.GET;
16 | import javax.ws.rs.POST;
17 | import javax.ws.rs.Path;
18 | import javax.ws.rs.Produces;
19 | import javax.ws.rs.core.Context;
20 | import javax.ws.rs.core.HttpHeaders;
21 | import javax.ws.rs.core.MediaType;
22 | import javax.ws.rs.core.Response;
23 | import javax.ws.rs.core.Response.Status;
24 |
25 | import io.cloudevents.v1.CloudEventBuilder;
26 | import io.cloudevents.v1.CloudEventImpl;
27 | import io.cloudevents.CloudEvent;
28 | import io.cloudevents.v1.AttributesImpl;
29 | import io.cloudevents.v1.http.Marshallers;
30 |
31 | @Path("/")
32 | public class ExampleResource {
33 | @Inject
34 | Validator validator;
35 |
36 | @GET
37 | @Consumes(MediaType.APPLICATION_JSON)
38 | @Produces(MediaType.APPLICATION_JSON)
39 | @Path("/")
40 | public String servingEndpoint() {
41 | System.out.println("ExampleResource's @GET method invoked.");
42 | outputEnv();
43 | return "{\"hello\":\"world\"}";
44 | }
45 |
46 | @POST
47 | @Consumes(MediaType.APPLICATION_JSON)
48 | @Produces(MediaType.APPLICATION_JSON)
49 | @Path("/")
50 | public Response eventingEndpoint(@Context HttpHeaders httpHeaders, String cloudEventData) {
51 | System.out.println("ExampleResource's @POST method invoked.");
52 |
53 | // Log env vars
54 | outputEnv();
55 |
56 | // Log inbound CloudEvent
57 | System.out.println("ce-id=" + httpHeaders.getHeaderString("ce-id"));
58 | System.out.println("ce-source=" + httpHeaders.getHeaderString("ce-source"));
59 | System.out.println("ce-specversion=" + httpHeaders.getHeaderString("ce-specversion"));
60 | System.out.println("ce-time=" + httpHeaders.getHeaderString("ce-time"));
61 | System.out.println("ce-type=" + httpHeaders.getHeaderString("ce-type"));
62 | System.out.println("content-type=" + httpHeaders.getHeaderString("content-type"));
63 | System.out.println("content-length=" + httpHeaders.getHeaderString("content-length"));
64 | System.out.println("cloudEventData=" + cloudEventData);
65 |
66 | // Log the inbound CE data - comes via HTTP POST
67 | // This assumes the Event Source is providing the data as a string of JSON
68 | // Example: {"message": "From CronJob Source"}
69 |
70 | // JSON-P to dig into the cloudEventData
71 | JsonReader jsonReader = Json.createReader(new StringReader(cloudEventData));
72 | JsonObject myJsonObject = jsonReader.readObject();
73 | String msg = myJsonObject.getString("message");
74 |
75 | System.out.println("POST:" + cloudEventData);
76 | System.out.println("BURR3 msg:" + msg);
77 |
78 | // Craft a Response JSON
79 | JsonObjectBuilder builder = Json.createObjectBuilder();
80 | builder.add("aloha", "bonjour");
81 | builder.add("message", msg);
82 |
83 | String responsePayload = builder.build().toString();
84 |
85 | System.out.println("responsePayload:" + responsePayload);
86 |
87 | // Craft a response CloudEvent
88 | final String eventType = "com.redhat.developers.demo.eventinghello";
89 | final String eventId = UUID.randomUUID().toString();
90 | final URI src = URI.create("/eventinghellosrc");
91 |
92 | CloudEventImpl ceResponse = null;
93 |
94 | CloudEvent event = Marshallers
95 | .binary(Map.class,validator)
96 | .withHeaders(() -> headers)
97 | .withPayload(() -> cloudEventPayload)
98 | .marshal();
99 |
100 | try {
101 | System.out.println("try");
102 | ceResponse =
103 | CloudEventBuilder.builder()
104 | .withType(eventType)
105 | .withId(eventId)
106 | .withSource(src)
107 | .withData(responsePayload)
108 | .build();
109 | System.out.println("build completed");
110 | } catch (Exception e) {
111 | System.out.println("ERROR: " + e.getMessage());
112 | e.printStackTrace(System.out);
113 | }
114 |
115 | System.out.println("ceResponse:" + ceResponse.toString());
116 |
117 | // String responseJSON = io.cloudevents.json.Json.encode(ceResponse);
118 | String responseJSON = "{\"hello\":\"world\"}";
119 |
120 | System.out.println("responseJSON:\n" + responseJSON + "\n\n");
121 |
122 | return Response.status(Status.OK).entity(responseJSON).build();
123 |
124 | }
125 |
126 | private void outputEnv() {
127 | Map env = System.getenv();
128 | for (String envName : env.keySet()) {
129 | System.out.format("%s=%s%n", envName, env.get(envName));
130 | }
131 | }
132 |
133 | }
--------------------------------------------------------------------------------
/eventing-demo/qeventingce/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | # Configuration file
2 | # key = value
--------------------------------------------------------------------------------
/eventing-demo/qeventingce/src/test/java/com/redhat/developer/demos/ExampleResourceTest.java:
--------------------------------------------------------------------------------
1 | package com.redhat.developer.demos;
2 |
3 | import io.quarkus.test.junit.QuarkusTest;
4 | import org.junit.jupiter.api.Test;
5 |
6 | import static io.restassured.RestAssured.given;
7 | import static org.hamcrest.CoreMatchers.is;
8 |
9 | @QuarkusTest
10 | public class ExampleResourceTest {
11 |
12 | @Test
13 | public void testHelloEndpoint() {
14 | given()
15 | .when().get("/")
16 | .then()
17 | .statusCode(200)
18 | .body(is("{\"hello\":\"world\"}"));
19 | }
20 |
21 | @Test
22 | public void testEventingEndpoint() {
23 | given().urlEncodingEnabled(false)
24 | .header("ce-id","my-ce-id")
25 | .header("ce-source","my-ce-source")
26 | .header("ce-specversion","1.0")
27 | .header("ce-time",new java.util.Date().toString())
28 | .header("ce-type","my-ce-type")
29 | .header("content-type","application/json")
30 | .body("{\"message\": \"From RestAssured Test\"}")
31 | .post("/")
32 | .then()
33 | .statusCode(200);
34 | }
35 |
36 | }
--------------------------------------------------------------------------------
/eventing-demo/qeventingce/src/test/java/com/redhat/developer/demos/NativeExampleResourceIT.java:
--------------------------------------------------------------------------------
1 | package com.redhat.developer.demos;
2 |
3 | import io.quarkus.test.junit.NativeImageTest;
4 |
5 | @NativeImageTest
6 | public class NativeExampleResourceIT extends ExampleResourceTest {
7 |
8 | // Execute the same tests but in native mode.
9 | }
--------------------------------------------------------------------------------
/eventing-demo/qeventinghello/.dockerignore:
--------------------------------------------------------------------------------
1 | *
2 | !target/*-runner
3 | !target/*-runner.jar
4 | !target/lib/*
--------------------------------------------------------------------------------
/eventing-demo/qeventinghello/.gitignore:
--------------------------------------------------------------------------------
1 | # Eclipse
2 | .project
3 | .classpath
4 | .settings/
5 | bin/
6 |
7 | # IntelliJ
8 | .idea
9 | *.ipr
10 | *.iml
11 | *.iws
12 |
13 | # NetBeans
14 | nb-configuration.xml
15 |
16 | # Visual Studio Code
17 | .vscode
18 |
19 | # OSX
20 | .DS_Store
21 |
22 | # Vim
23 | *.swp
24 | *.swo
25 |
26 | # patch
27 | *.orig
28 | *.rej
29 |
30 | # Maven
31 | target/
32 | pom.xml.tag
33 | pom.xml.releaseBackup
34 | pom.xml.versionsBackup
35 | release.properties
--------------------------------------------------------------------------------
/eventing-demo/qeventinghello/.mvn/wrapper/MavenWrapperDownloader.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2007-present the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | import java.net.*;
17 | import java.io.*;
18 | import java.nio.channels.*;
19 | import java.util.Properties;
20 |
21 | public class MavenWrapperDownloader {
22 |
23 | private static final String WRAPPER_VERSION = "0.5.5";
24 | /**
25 | * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
26 | */
27 | private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
28 | + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
29 |
30 | /**
31 | * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
32 | * use instead of the default one.
33 | */
34 | private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
35 | ".mvn/wrapper/maven-wrapper.properties";
36 |
37 | /**
38 | * Path where the maven-wrapper.jar will be saved to.
39 | */
40 | private static final String MAVEN_WRAPPER_JAR_PATH =
41 | ".mvn/wrapper/maven-wrapper.jar";
42 |
43 | /**
44 | * Name of the property which should be used to override the default download url for the wrapper.
45 | */
46 | private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
47 |
48 | public static void main(String args[]) {
49 | System.out.println("- Downloader started");
50 | File baseDirectory = new File(args[0]);
51 | System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
52 |
53 | // If the maven-wrapper.properties exists, read it and check if it contains a custom
54 | // wrapperUrl parameter.
55 | File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
56 | String url = DEFAULT_DOWNLOAD_URL;
57 | if(mavenWrapperPropertyFile.exists()) {
58 | FileInputStream mavenWrapperPropertyFileInputStream = null;
59 | try {
60 | mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
61 | Properties mavenWrapperProperties = new Properties();
62 | mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
63 | url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
64 | } catch (IOException e) {
65 | System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
66 | } finally {
67 | try {
68 | if(mavenWrapperPropertyFileInputStream != null) {
69 | mavenWrapperPropertyFileInputStream.close();
70 | }
71 | } catch (IOException e) {
72 | // Ignore ...
73 | }
74 | }
75 | }
76 | System.out.println("- Downloading from: " + url);
77 |
78 | File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
79 | if(!outputFile.getParentFile().exists()) {
80 | if(!outputFile.getParentFile().mkdirs()) {
81 | System.out.println(
82 | "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
83 | }
84 | }
85 | System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
86 | try {
87 | downloadFileFromURL(url, outputFile);
88 | System.out.println("Done");
89 | System.exit(0);
90 | } catch (Throwable e) {
91 | System.out.println("- Error downloading");
92 | e.printStackTrace();
93 | System.exit(1);
94 | }
95 | }
96 |
97 | private static void downloadFileFromURL(String urlString, File destination) throws Exception {
98 | if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
99 | String username = System.getenv("MVNW_USERNAME");
100 | char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
101 | Authenticator.setDefault(new Authenticator() {
102 | @Override
103 | protected PasswordAuthentication getPasswordAuthentication() {
104 | return new PasswordAuthentication(username, password);
105 | }
106 | });
107 | }
108 | URL website = new URL(urlString);
109 | ReadableByteChannel rbc;
110 | rbc = Channels.newChannel(website.openStream());
111 | FileOutputStream fos = new FileOutputStream(destination);
112 | fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
113 | fos.close();
114 | rbc.close();
115 | }
116 |
117 | }
118 |
--------------------------------------------------------------------------------
/eventing-demo/qeventinghello/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/qeventinghello/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/eventing-demo/qeventinghello/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.1/apache-maven-3.6.1-bin.zip
2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar
3 |
--------------------------------------------------------------------------------
/eventing-demo/qeventinghello/1_jvmbuild.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | mvn clean package
--------------------------------------------------------------------------------
/eventing-demo/qeventinghello/1_nativebuild.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | export GRAALVM_HOME=~/tools/graalvm-ce-19.2.1/Contents/Home/
4 |
5 | mvn clean package -Pnative -Dquarkus.native.container-build=true
--------------------------------------------------------------------------------
/eventing-demo/qeventinghello/2_dockerbuild_jvm.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | docker build -t dev.local/rhdevelopers/eventinghello:0.0.1 -f src/main/docker/Dockerfile.jvm .
--------------------------------------------------------------------------------
/eventing-demo/qeventinghello/2_dockerbuild_native.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | docker build -t dev.local/rhdevelopers/eventinghello:0.0.1 -f src/main/docker/Dockerfile.native .
--------------------------------------------------------------------------------
/eventing-demo/qeventinghello/3_dockerbuild_push_jvm.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | VERSION=0.0.1
4 | APP=eventinghello
5 |
6 | docker build -t dev.local/rhdevelopers/$APP:$VERSION -f src/main/docker/Dockerfile.jvm .
7 |
8 | docker login quay.io
9 |
10 | docker tag dev.local/rhdevelopers/$APP:$VERSION quay.io/burrsutter/$APP:$VERSION
11 | docker push quay.io/burrsutter/$APP:$VERSION
12 |
13 |
--------------------------------------------------------------------------------
/eventing-demo/qeventinghello/3_dockerbuild_push_native.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | VERSION=0.0.1
4 | APP=eventinghello
5 |
6 | docker build -t dev.local/rhdevelopers/$APP:$VERSION -f src/main/docker/Dockerfile.native .
7 |
8 | docker login quay.io
9 |
10 | docker tag dev.local/rhdevelopers/$APP:$VERSION quay.io/burrsutter/$APP:$VERSION
11 | docker push quay.io/burrsutter/$APP:$VERSION
12 |
13 |
--------------------------------------------------------------------------------
/eventing-demo/qeventinghello/mvnw.cmd:
--------------------------------------------------------------------------------
1 | @REM ----------------------------------------------------------------------------
2 | @REM Licensed to the Apache Software Foundation (ASF) under one
3 | @REM or more contributor license agreements. See the NOTICE file
4 | @REM distributed with this work for additional information
5 | @REM regarding copyright ownership. The ASF licenses this file
6 | @REM to you under the Apache License, Version 2.0 (the
7 | @REM "License"); you may not use this file except in compliance
8 | @REM with the License. You may obtain a copy of the License at
9 | @REM
10 | @REM http://www.apache.org/licenses/LICENSE-2.0
11 | @REM
12 | @REM Unless required by applicable law or agreed to in writing,
13 | @REM software distributed under the License is distributed on an
14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | @REM KIND, either express or implied. See the License for the
16 | @REM specific language governing permissions and limitations
17 | @REM under the License.
18 | @REM ----------------------------------------------------------------------------
19 |
20 | @REM ----------------------------------------------------------------------------
21 | @REM Maven2 Start Up Batch script
22 | @REM
23 | @REM Required ENV vars:
24 | @REM JAVA_HOME - location of a JDK home dir
25 | @REM
26 | @REM Optional ENV vars
27 | @REM M2_HOME - location of maven2's installed home dir
28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31 | @REM e.g. to debug Maven itself, use
32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34 | @REM ----------------------------------------------------------------------------
35 |
36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37 | @echo off
38 | @REM set title of command window
39 | title %0
40 | @REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
41 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
42 |
43 | @REM set %HOME% to equivalent of $HOME
44 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
45 |
46 | @REM Execute a user defined script before this one
47 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
48 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending
49 | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
50 | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
51 | :skipRcPre
52 |
53 | @setlocal
54 |
55 | set ERROR_CODE=0
56 |
57 | @REM To isolate internal variables from possible post scripts, we use another setlocal
58 | @setlocal
59 |
60 | @REM ==== START VALIDATION ====
61 | if not "%JAVA_HOME%" == "" goto OkJHome
62 |
63 | echo.
64 | echo Error: JAVA_HOME not found in your environment. >&2
65 | echo Please set the JAVA_HOME variable in your environment to match the >&2
66 | echo location of your Java installation. >&2
67 | echo.
68 | goto error
69 |
70 | :OkJHome
71 | if exist "%JAVA_HOME%\bin\java.exe" goto init
72 |
73 | echo.
74 | echo Error: JAVA_HOME is set to an invalid directory. >&2
75 | echo JAVA_HOME = "%JAVA_HOME%" >&2
76 | echo Please set the JAVA_HOME variable in your environment to match the >&2
77 | echo location of your Java installation. >&2
78 | echo.
79 | goto error
80 |
81 | @REM ==== END VALIDATION ====
82 |
83 | :init
84 |
85 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86 | @REM Fallback to current working directory if not found.
87 |
88 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90 |
91 | set EXEC_DIR=%CD%
92 | set WDIR=%EXEC_DIR%
93 | :findBaseDir
94 | IF EXIST "%WDIR%"\.mvn goto baseDirFound
95 | cd ..
96 | IF "%WDIR%"=="%CD%" goto baseDirNotFound
97 | set WDIR=%CD%
98 | goto findBaseDir
99 |
100 | :baseDirFound
101 | set MAVEN_PROJECTBASEDIR=%WDIR%
102 | cd "%EXEC_DIR%"
103 | goto endDetectBaseDir
104 |
105 | :baseDirNotFound
106 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107 | cd "%EXEC_DIR%"
108 |
109 | :endDetectBaseDir
110 |
111 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112 |
113 | @setlocal EnableExtensions EnableDelayedExpansion
114 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116 |
117 | :endReadAdditionalConfig
118 |
119 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120 | set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122 |
123 | set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
124 |
125 | FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
126 | IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
127 | )
128 |
129 | @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
130 | @REM This allows using the maven wrapper in projects that prohibit checking in binary data.
131 | if exist %WRAPPER_JAR% (
132 | if "%MVNW_VERBOSE%" == "true" (
133 | echo Found %WRAPPER_JAR%
134 | )
135 | ) else (
136 | if not "%MVNW_REPOURL%" == "" (
137 | SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
138 | )
139 | if "%MVNW_VERBOSE%" == "true" (
140 | echo Couldn't find %WRAPPER_JAR%, downloading it ...
141 | echo Downloading from: %DOWNLOAD_URL%
142 | )
143 |
144 | powershell -Command "&{"^
145 | "$webclient = new-object System.Net.WebClient;"^
146 | "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
147 | "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
148 | "}"^
149 | "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
150 | "}"
151 | if "%MVNW_VERBOSE%" == "true" (
152 | echo Finished downloading %WRAPPER_JAR%
153 | )
154 | )
155 | @REM End of extension
156 |
157 | @REM Provide a "standardized" way to retrieve the CLI args that will
158 | @REM work with both Windows and non-Windows executions.
159 | set MAVEN_CMD_LINE_ARGS=%*
160 |
161 | %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
162 | if ERRORLEVEL 1 goto error
163 | goto end
164 |
165 | :error
166 | set ERROR_CODE=1
167 |
168 | :end
169 | @endlocal & set ERROR_CODE=%ERROR_CODE%
170 |
171 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
172 | @REM check for post script, once with legacy .bat ending and once with .cmd ending
173 | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
174 | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
175 | :skipRcPost
176 |
177 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
178 | if "%MAVEN_BATCH_PAUSE%" == "on" pause
179 |
180 | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
181 |
182 | exit /B %ERROR_CODE%
183 |
--------------------------------------------------------------------------------
/eventing-demo/qeventinghello/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 | com.redhat.developer.demos
6 | qeventinghello
7 | 0.0.1
8 |
9 | 3.8.1
10 | true
11 | 1.8
12 | 1.8
13 | UTF-8
14 | UTF-8
15 | 1.1.0.Final
16 | quarkus-universe-bom
17 | io.quarkus
18 | 1.1.0.Final
19 | 2.22.1
20 |
21 |
22 |
23 |
24 | ${quarkus.platform.group-id}
25 | ${quarkus.platform.artifact-id}
26 | ${quarkus.platform.version}
27 | pom
28 | import
29 |
30 |
31 |
32 |
33 |
34 | io.quarkus
35 | quarkus-resteasy
36 |
37 |
38 | io.quarkus
39 | quarkus-resteasy-jsonb
40 |
41 |
42 | io.cloudevents
43 | cloudevents-api
44 | 1.1.0
45 |
46 |
47 | io.quarkus
48 | quarkus-jsonp
49 |
50 |
51 | io.quarkus
52 | quarkus-hibernate-validator
53 |
54 |
55 | io.quarkus
56 | quarkus-junit5
57 | test
58 |
59 |
60 | io.rest-assured
61 | rest-assured
62 | test
63 |
64 |
65 |
66 |
67 |
68 | io.quarkus
69 | quarkus-maven-plugin
70 | ${quarkus-plugin.version}
71 |
72 |
73 |
74 | build
75 |
76 |
77 |
78 |
79 |
80 | maven-compiler-plugin
81 | ${compiler-plugin.version}
82 |
83 |
84 | maven-surefire-plugin
85 | ${surefire-plugin.version}
86 |
87 |
88 | org.jboss.logmanager.LogManager
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 | native
97 |
98 |
99 | native
100 |
101 |
102 |
103 |
104 |
105 | maven-failsafe-plugin
106 | ${surefire-plugin.version}
107 |
108 |
109 |
110 | integration-test
111 | verify
112 |
113 |
114 |
115 | ${project.build.directory}/${project.build.finalName}-runner
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 | native
125 |
126 |
127 |
128 |
129 |
--------------------------------------------------------------------------------
/eventing-demo/qeventinghello/src/main/docker/Dockerfile.jvm:
--------------------------------------------------------------------------------
1 | ####
2 | # This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode
3 | #
4 | # Before building the docker image run:
5 | #
6 | # mvn package
7 | #
8 | # Then, build the image with:
9 | #
10 | # docker build -f src/main/docker/Dockerfile.jvm -t quarkus/qeventinghello-jvm .
11 | #
12 | # Then run the container using:
13 | #
14 | # docker run -i --rm -p 8080:8080 quarkus/qeventinghello-jvm
15 | #
16 | ###
17 | FROM fabric8/java-alpine-openjdk8-jre
18 | ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
19 | ENV AB_ENABLED=jmx_exporter
20 | COPY target/lib/* /deployments/lib/
21 | COPY target/*-runner.jar /deployments/app.jar
22 | EXPOSE 8080
23 |
24 | # run with user 1001 and be prepared for be running in OpenShift too
25 | RUN adduser -G root --no-create-home --disabled-password 1001 \
26 | && chown -R 1001 /deployments \
27 | && chmod -R "g+rwX" /deployments \
28 | && chown -R 1001:root /deployments
29 | USER 1001
30 |
31 | ENTRYPOINT [ "/deployments/run-java.sh" ]
--------------------------------------------------------------------------------
/eventing-demo/qeventinghello/src/main/docker/Dockerfile.native:
--------------------------------------------------------------------------------
1 | ####
2 | # This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode
3 | #
4 | # Before building the docker image run:
5 | #
6 | # mvn package -Pnative -Dquarkus.native.container-build=true
7 | #
8 | # Then, build the image with:
9 | #
10 | # docker build -f src/main/docker/Dockerfile.native -t quarkus/qeventinghello .
11 | #
12 | # Then run the container using:
13 | #
14 | # docker run -i --rm -p 8080:8080 quarkus/qeventinghello
15 | #
16 | ###
17 | FROM registry.access.redhat.com/ubi8/ubi-minimal
18 | WORKDIR /work/
19 | COPY target/*-runner /work/application
20 | RUN chmod 775 /work
21 | EXPOSE 8080
22 | CMD ["./application", "-Dquarkus.http.host=0.0.0.0"]
--------------------------------------------------------------------------------
/eventing-demo/qeventinghello/src/main/java/com/redhat/developer/demos/ExampleResource.java:
--------------------------------------------------------------------------------
1 | package com.redhat.developer.demos;
2 |
3 | import java.util.Map;
4 |
5 | import javax.ws.rs.Consumes;
6 | import javax.ws.rs.GET;
7 | import javax.ws.rs.POST;
8 | import javax.ws.rs.Path;
9 | import javax.ws.rs.Produces;
10 | import javax.ws.rs.core.Context;
11 | import javax.ws.rs.core.HttpHeaders;
12 | import javax.ws.rs.core.MediaType;
13 | import javax.ws.rs.core.Response;
14 | import javax.ws.rs.core.Response.Status;
15 |
16 | @Path("/")
17 | public class ExampleResource {
18 | @GET
19 | @Consumes(MediaType.APPLICATION_JSON)
20 | @Produces(MediaType.APPLICATION_JSON)
21 | @Path("/")
22 | public String servingEndpoint() {
23 | System.out.println("ExampleResource's @GET method invoked.");
24 | outputEnv();
25 | return "{\"hello\":\"world\"}";
26 | }
27 |
28 | @POST
29 | @Consumes(MediaType.APPLICATION_JSON)
30 | @Produces(MediaType.APPLICATION_JSON)
31 | @Path("/")
32 | public Response eventingEndpoint(@Context HttpHeaders httpHeaders, String cloudEventJSON) {
33 | System.out.println("ExampleResource's @POST method invoked.");
34 |
35 | outputEnv();
36 |
37 |
38 | System.out.println("ce-id=" + httpHeaders.getHeaderString("ce-id"));
39 | System.out.println("ce-source=" + httpHeaders.getHeaderString("ce-source"));
40 | System.out.println("ce-specversion=" + httpHeaders.getHeaderString("ce-specversion"));
41 | System.out.println("ce-time=" + httpHeaders.getHeaderString("ce-time"));
42 | System.out.println("ce-type=" + httpHeaders.getHeaderString("ce-type"));
43 | System.out.println("content-type=" + httpHeaders.getHeaderString("content-type"));
44 | System.out.println("content-length=" + httpHeaders.getHeaderString("content-length"));
45 |
46 | System.out.println("POST:" + cloudEventJSON);
47 |
48 | return Response.status(Status.OK).entity("{\"hello\":\"world\"}").build();
49 | }
50 |
51 | private void outputEnv() {
52 | Map env = System.getenv();
53 | for (String envName : env.keySet()) {
54 | System.out.format("%s=%s%n", envName, env.get(envName));
55 | }
56 | }
57 |
58 | }
--------------------------------------------------------------------------------
/eventing-demo/qeventinghello/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | # Configuration file
2 | # key = value
--------------------------------------------------------------------------------
/eventing-demo/qeventinghello/src/test/java/com/redhat/developer/demos/ExampleResourceTest.java:
--------------------------------------------------------------------------------
1 | package com.redhat.developer.demos;
2 |
3 | import io.quarkus.test.junit.QuarkusTest;
4 | import org.junit.jupiter.api.Test;
5 |
6 | import static io.restassured.RestAssured.given;
7 | import static org.hamcrest.CoreMatchers.is;
8 |
9 | @QuarkusTest
10 | public class ExampleResourceTest {
11 |
12 | @Test
13 | public void testHelloEndpoint() {
14 | given()
15 | .when().get("/")
16 | .then()
17 | .statusCode(200)
18 | .body(is("{\"hello\":\"world\"}"));
19 | }
20 |
21 | @Test
22 | public void testEventingEndpoint() {
23 | given().urlEncodingEnabled(false)
24 | .header("ce-id","my-ce-id")
25 | .header("ce-source","my-ce-source")
26 | .header("ce-specversion","1.0")
27 | .header("ce-time",new java.util.Date().toString())
28 | .header("ce-type","my-ce-type")
29 | .header("content-type","application/json")
30 | .body("{\"message\": \"From RestAssured Test\"}")
31 | .post("/")
32 | .then()
33 | .statusCode(200);
34 | }
35 |
36 | }
--------------------------------------------------------------------------------
/eventing-demo/qeventinghello/src/test/java/com/redhat/developer/demos/NativeExampleResourceIT.java:
--------------------------------------------------------------------------------
1 | package com.redhat.developer.demos;
2 |
3 | import io.quarkus.test.junit.NativeImageTest;
4 |
5 | @NativeImageTest
6 | public class NativeExampleResourceIT extends ExampleResourceTest {
7 |
8 | // Execute the same tests but in native mode.
9 | }
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/.gitignore:
--------------------------------------------------------------------------------
1 | HELP.md
2 | target/
3 | !.mvn/wrapper/maven-wrapper.jar
4 | !**/src/main/**
5 | !**/src/test/**
6 |
7 | ### STS ###
8 | .apt_generated
9 | .classpath
10 | .factorypath
11 | .project
12 | .settings
13 | .springBeans
14 | .sts4-cache
15 |
16 | ### IntelliJ IDEA ###
17 | .idea
18 | *.iws
19 | *.iml
20 | *.ipr
21 |
22 | ### NetBeans ###
23 | /nbproject/private/
24 | /nbbuild/
25 | /dist/
26 | /nbdist/
27 | /.nb-gradle/
28 | build/
29 |
30 | ### VS Code ###
31 | .vscode/
32 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/.mvn/wrapper/MavenWrapperDownloader.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012-2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | import java.net.*;
17 | import java.io.*;
18 | import java.nio.channels.*;
19 | import java.util.Properties;
20 |
21 | public class MavenWrapperDownloader {
22 |
23 | private static final String WRAPPER_VERSION = "0.5.5";
24 | /**
25 | * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
26 | */
27 | private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
28 | + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
29 |
30 | /**
31 | * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
32 | * use instead of the default one.
33 | */
34 | private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
35 | ".mvn/wrapper/maven-wrapper.properties";
36 |
37 | /**
38 | * Path where the maven-wrapper.jar will be saved to.
39 | */
40 | private static final String MAVEN_WRAPPER_JAR_PATH =
41 | ".mvn/wrapper/maven-wrapper.jar";
42 |
43 | /**
44 | * Name of the property which should be used to override the default download url for the wrapper.
45 | */
46 | private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
47 |
48 | public static void main(String args[]) {
49 | System.out.println("- Downloader started");
50 | File baseDirectory = new File(args[0]);
51 | System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
52 |
53 | // If the maven-wrapper.properties exists, read it and check if it contains a custom
54 | // wrapperUrl parameter.
55 | File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
56 | String url = DEFAULT_DOWNLOAD_URL;
57 | if(mavenWrapperPropertyFile.exists()) {
58 | FileInputStream mavenWrapperPropertyFileInputStream = null;
59 | try {
60 | mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
61 | Properties mavenWrapperProperties = new Properties();
62 | mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
63 | url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
64 | } catch (IOException e) {
65 | System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
66 | } finally {
67 | try {
68 | if(mavenWrapperPropertyFileInputStream != null) {
69 | mavenWrapperPropertyFileInputStream.close();
70 | }
71 | } catch (IOException e) {
72 | // Ignore ...
73 | }
74 | }
75 | }
76 | System.out.println("- Downloading from: " + url);
77 |
78 | File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
79 | if(!outputFile.getParentFile().exists()) {
80 | if(!outputFile.getParentFile().mkdirs()) {
81 | System.out.println(
82 | "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
83 | }
84 | }
85 | System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
86 | try {
87 | downloadFileFromURL(url, outputFile);
88 | System.out.println("Done");
89 | System.exit(0);
90 | } catch (Throwable e) {
91 | System.out.println("- Error downloading");
92 | e.printStackTrace();
93 | System.exit(1);
94 | }
95 | }
96 |
97 | private static void downloadFileFromURL(String urlString, File destination) throws Exception {
98 | if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
99 | String username = System.getenv("MVNW_USERNAME");
100 | char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
101 | Authenticator.setDefault(new Authenticator() {
102 | @Override
103 | protected PasswordAuthentication getPasswordAuthentication() {
104 | return new PasswordAuthentication(username, password);
105 | }
106 | });
107 | }
108 | URL website = new URL(urlString);
109 | ReadableByteChannel rbc;
110 | rbc = Channels.newChannel(website.openStream());
111 | FileOutputStream fos = new FileOutputStream(destination);
112 | fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
113 | fos.close();
114 | rbc.close();
115 | }
116 |
117 | }
118 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/sbeventingce/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip
2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar
3 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/bin/.gitignore:
--------------------------------------------------------------------------------
1 | HELP.md
2 | target/
3 | !.mvn/wrapper/maven-wrapper.jar
4 | !**/src/main/**
5 | !**/src/test/**
6 |
7 | ### STS ###
8 | .apt_generated
9 | .classpath
10 | .factorypath
11 | .project
12 | .settings
13 | .springBeans
14 | .sts4-cache
15 |
16 | ### IntelliJ IDEA ###
17 | .idea
18 | *.iws
19 | *.iml
20 | *.ipr
21 |
22 | ### NetBeans ###
23 | /nbproject/private/
24 | /nbbuild/
25 | /dist/
26 | /nbdist/
27 | /.nb-gradle/
28 | build/
29 |
30 | ### VS Code ###
31 | .vscode/
32 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/bin/.mvn/wrapper/MavenWrapperDownloader.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/sbeventingce/bin/.mvn/wrapper/MavenWrapperDownloader.class
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/bin/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/sbeventingce/bin/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/bin/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip
2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar
3 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/bin/mvnw.cmd:
--------------------------------------------------------------------------------
1 | @REM ----------------------------------------------------------------------------
2 | @REM Licensed to the Apache Software Foundation (ASF) under one
3 | @REM or more contributor license agreements. See the NOTICE file
4 | @REM distributed with this work for additional information
5 | @REM regarding copyright ownership. The ASF licenses this file
6 | @REM to you under the Apache License, Version 2.0 (the
7 | @REM "License"); you may not use this file except in compliance
8 | @REM with the License. You may obtain a copy of the License at
9 | @REM
10 | @REM https://www.apache.org/licenses/LICENSE-2.0
11 | @REM
12 | @REM Unless required by applicable law or agreed to in writing,
13 | @REM software distributed under the License is distributed on an
14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | @REM KIND, either express or implied. See the License for the
16 | @REM specific language governing permissions and limitations
17 | @REM under the License.
18 | @REM ----------------------------------------------------------------------------
19 |
20 | @REM ----------------------------------------------------------------------------
21 | @REM Maven2 Start Up Batch script
22 | @REM
23 | @REM Required ENV vars:
24 | @REM JAVA_HOME - location of a JDK home dir
25 | @REM
26 | @REM Optional ENV vars
27 | @REM M2_HOME - location of maven2's installed home dir
28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31 | @REM e.g. to debug Maven itself, use
32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34 | @REM ----------------------------------------------------------------------------
35 |
36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37 | @echo off
38 | @REM set title of command window
39 | title %0
40 | @REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
41 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
42 |
43 | @REM set %HOME% to equivalent of $HOME
44 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
45 |
46 | @REM Execute a user defined script before this one
47 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
48 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending
49 | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
50 | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
51 | :skipRcPre
52 |
53 | @setlocal
54 |
55 | set ERROR_CODE=0
56 |
57 | @REM To isolate internal variables from possible post scripts, we use another setlocal
58 | @setlocal
59 |
60 | @REM ==== START VALIDATION ====
61 | if not "%JAVA_HOME%" == "" goto OkJHome
62 |
63 | echo.
64 | echo Error: JAVA_HOME not found in your environment. >&2
65 | echo Please set the JAVA_HOME variable in your environment to match the >&2
66 | echo location of your Java installation. >&2
67 | echo.
68 | goto error
69 |
70 | :OkJHome
71 | if exist "%JAVA_HOME%\bin\java.exe" goto init
72 |
73 | echo.
74 | echo Error: JAVA_HOME is set to an invalid directory. >&2
75 | echo JAVA_HOME = "%JAVA_HOME%" >&2
76 | echo Please set the JAVA_HOME variable in your environment to match the >&2
77 | echo location of your Java installation. >&2
78 | echo.
79 | goto error
80 |
81 | @REM ==== END VALIDATION ====
82 |
83 | :init
84 |
85 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86 | @REM Fallback to current working directory if not found.
87 |
88 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90 |
91 | set EXEC_DIR=%CD%
92 | set WDIR=%EXEC_DIR%
93 | :findBaseDir
94 | IF EXIST "%WDIR%"\.mvn goto baseDirFound
95 | cd ..
96 | IF "%WDIR%"=="%CD%" goto baseDirNotFound
97 | set WDIR=%CD%
98 | goto findBaseDir
99 |
100 | :baseDirFound
101 | set MAVEN_PROJECTBASEDIR=%WDIR%
102 | cd "%EXEC_DIR%"
103 | goto endDetectBaseDir
104 |
105 | :baseDirNotFound
106 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107 | cd "%EXEC_DIR%"
108 |
109 | :endDetectBaseDir
110 |
111 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112 |
113 | @setlocal EnableExtensions EnableDelayedExpansion
114 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116 |
117 | :endReadAdditionalConfig
118 |
119 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120 | set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122 |
123 | set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
124 |
125 | FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
126 | IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
127 | )
128 |
129 | @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
130 | @REM This allows using the maven wrapper in projects that prohibit checking in binary data.
131 | if exist %WRAPPER_JAR% (
132 | if "%MVNW_VERBOSE%" == "true" (
133 | echo Found %WRAPPER_JAR%
134 | )
135 | ) else (
136 | if not "%MVNW_REPOURL%" == "" (
137 | SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
138 | )
139 | if "%MVNW_VERBOSE%" == "true" (
140 | echo Couldn't find %WRAPPER_JAR%, downloading it ...
141 | echo Downloading from: %DOWNLOAD_URL%
142 | )
143 |
144 | powershell -Command "&{"^
145 | "$webclient = new-object System.Net.WebClient;"^
146 | "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
147 | "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
148 | "}"^
149 | "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
150 | "}"
151 | if "%MVNW_VERBOSE%" == "true" (
152 | echo Finished downloading %WRAPPER_JAR%
153 | )
154 | )
155 | @REM End of extension
156 |
157 | @REM Provide a "standardized" way to retrieve the CLI args that will
158 | @REM work with both Windows and non-Windows executions.
159 | set MAVEN_CMD_LINE_ARGS=%*
160 |
161 | %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
162 | if ERRORLEVEL 1 goto error
163 | goto end
164 |
165 | :error
166 | set ERROR_CODE=1
167 |
168 | :end
169 | @endlocal & set ERROR_CODE=%ERROR_CODE%
170 |
171 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
172 | @REM check for post script, once with legacy .bat ending and once with .cmd ending
173 | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
174 | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
175 | :skipRcPost
176 |
177 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
178 | if "%MAVEN_BATCH_PAUSE%" == "on" pause
179 |
180 | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
181 |
182 | exit /B %ERROR_CODE%
183 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/bin/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | org.springframework.boot
7 | spring-boot-starter-parent
8 | 2.2.1.RELEASE
9 |
10 |
11 | com.redhat.developer.demos
12 | sbeventinghello
13 | 0.0.1-SNAPSHOT
14 | sbeventinghello
15 | Demo project for Spring Boot
16 |
17 |
18 | 1.8
19 |
20 |
21 |
22 |
23 | org.springframework.boot
24 | spring-boot-starter-web
25 |
26 |
27 |
28 | org.springframework.boot
29 | spring-boot-devtools
30 | runtime
31 | true
32 |
33 |
34 | org.springframework.boot
35 | spring-boot-starter-test
36 | test
37 |
38 |
39 | org.junit.vintage
40 | junit-vintage-engine
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 | org.springframework.boot
50 | spring-boot-maven-plugin
51 |
52 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/bin/src/main/java/com/redhat/developer/demos/sbeventinghello/SbeventinghelloApplication.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/sbeventingce/bin/src/main/java/com/redhat/developer/demos/sbeventinghello/SbeventinghelloApplication.class
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/bin/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/bin/src/test/java/com/redhat/developer/demos/sbeventinghello/SbeventinghelloApplicationTests.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/sbeventingce/bin/src/test/java/com/redhat/developer/demos/sbeventinghello/SbeventinghelloApplicationTests.class
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/dockerbuild.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | docker build -t dev.local/rhdevelopers/eventinghello:0.0.1 -f src/main/docker/Dockerfile .
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/dockerbuild_push.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | VERSION=0.0.1
4 | APP=eventinghello
5 |
6 | docker build -t dev.local/rhdevelopers/$APP:$VERSION -f src/main/docker/Dockerfile .
7 |
8 | docker login quay.io
9 |
10 | docker tag dev.local/rhdevelopers/$APP:$VERSION quay.io/burrsutter/$APP:$VERSION
11 | docker push quay.io/burrsutter/$APP:$VERSION
12 |
13 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/mvnw.cmd:
--------------------------------------------------------------------------------
1 | @REM ----------------------------------------------------------------------------
2 | @REM Licensed to the Apache Software Foundation (ASF) under one
3 | @REM or more contributor license agreements. See the NOTICE file
4 | @REM distributed with this work for additional information
5 | @REM regarding copyright ownership. The ASF licenses this file
6 | @REM to you under the Apache License, Version 2.0 (the
7 | @REM "License"); you may not use this file except in compliance
8 | @REM with the License. You may obtain a copy of the License at
9 | @REM
10 | @REM https://www.apache.org/licenses/LICENSE-2.0
11 | @REM
12 | @REM Unless required by applicable law or agreed to in writing,
13 | @REM software distributed under the License is distributed on an
14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | @REM KIND, either express or implied. See the License for the
16 | @REM specific language governing permissions and limitations
17 | @REM under the License.
18 | @REM ----------------------------------------------------------------------------
19 |
20 | @REM ----------------------------------------------------------------------------
21 | @REM Maven2 Start Up Batch script
22 | @REM
23 | @REM Required ENV vars:
24 | @REM JAVA_HOME - location of a JDK home dir
25 | @REM
26 | @REM Optional ENV vars
27 | @REM M2_HOME - location of maven2's installed home dir
28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31 | @REM e.g. to debug Maven itself, use
32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34 | @REM ----------------------------------------------------------------------------
35 |
36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37 | @echo off
38 | @REM set title of command window
39 | title %0
40 | @REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
41 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
42 |
43 | @REM set %HOME% to equivalent of $HOME
44 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
45 |
46 | @REM Execute a user defined script before this one
47 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
48 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending
49 | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
50 | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
51 | :skipRcPre
52 |
53 | @setlocal
54 |
55 | set ERROR_CODE=0
56 |
57 | @REM To isolate internal variables from possible post scripts, we use another setlocal
58 | @setlocal
59 |
60 | @REM ==== START VALIDATION ====
61 | if not "%JAVA_HOME%" == "" goto OkJHome
62 |
63 | echo.
64 | echo Error: JAVA_HOME not found in your environment. >&2
65 | echo Please set the JAVA_HOME variable in your environment to match the >&2
66 | echo location of your Java installation. >&2
67 | echo.
68 | goto error
69 |
70 | :OkJHome
71 | if exist "%JAVA_HOME%\bin\java.exe" goto init
72 |
73 | echo.
74 | echo Error: JAVA_HOME is set to an invalid directory. >&2
75 | echo JAVA_HOME = "%JAVA_HOME%" >&2
76 | echo Please set the JAVA_HOME variable in your environment to match the >&2
77 | echo location of your Java installation. >&2
78 | echo.
79 | goto error
80 |
81 | @REM ==== END VALIDATION ====
82 |
83 | :init
84 |
85 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86 | @REM Fallback to current working directory if not found.
87 |
88 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90 |
91 | set EXEC_DIR=%CD%
92 | set WDIR=%EXEC_DIR%
93 | :findBaseDir
94 | IF EXIST "%WDIR%"\.mvn goto baseDirFound
95 | cd ..
96 | IF "%WDIR%"=="%CD%" goto baseDirNotFound
97 | set WDIR=%CD%
98 | goto findBaseDir
99 |
100 | :baseDirFound
101 | set MAVEN_PROJECTBASEDIR=%WDIR%
102 | cd "%EXEC_DIR%"
103 | goto endDetectBaseDir
104 |
105 | :baseDirNotFound
106 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107 | cd "%EXEC_DIR%"
108 |
109 | :endDetectBaseDir
110 |
111 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112 |
113 | @setlocal EnableExtensions EnableDelayedExpansion
114 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116 |
117 | :endReadAdditionalConfig
118 |
119 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120 | set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122 |
123 | set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
124 |
125 | FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
126 | IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
127 | )
128 |
129 | @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
130 | @REM This allows using the maven wrapper in projects that prohibit checking in binary data.
131 | if exist %WRAPPER_JAR% (
132 | if "%MVNW_VERBOSE%" == "true" (
133 | echo Found %WRAPPER_JAR%
134 | )
135 | ) else (
136 | if not "%MVNW_REPOURL%" == "" (
137 | SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
138 | )
139 | if "%MVNW_VERBOSE%" == "true" (
140 | echo Couldn't find %WRAPPER_JAR%, downloading it ...
141 | echo Downloading from: %DOWNLOAD_URL%
142 | )
143 |
144 | powershell -Command "&{"^
145 | "$webclient = new-object System.Net.WebClient;"^
146 | "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
147 | "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
148 | "}"^
149 | "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
150 | "}"
151 | if "%MVNW_VERBOSE%" == "true" (
152 | echo Finished downloading %WRAPPER_JAR%
153 | )
154 | )
155 | @REM End of extension
156 |
157 | @REM Provide a "standardized" way to retrieve the CLI args that will
158 | @REM work with both Windows and non-Windows executions.
159 | set MAVEN_CMD_LINE_ARGS=%*
160 |
161 | %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
162 | if ERRORLEVEL 1 goto error
163 | goto end
164 |
165 | :error
166 | set ERROR_CODE=1
167 |
168 | :end
169 | @endlocal & set ERROR_CODE=%ERROR_CODE%
170 |
171 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
172 | @REM check for post script, once with legacy .bat ending and once with .cmd ending
173 | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
174 | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
175 | :skipRcPost
176 |
177 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
178 | if "%MAVEN_BATCH_PAUSE%" == "on" pause
179 |
180 | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
181 |
182 | exit /B %ERROR_CODE%
183 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | org.springframework.boot
7 | spring-boot-starter-parent
8 | 2.2.1.RELEASE
9 |
10 |
11 | com.redhat.developer.demos
12 | sbeventingce
13 | 0.0.1
14 | sbeventingce
15 | Demo project for Spring Boot
16 |
17 |
18 | 1.8
19 |
20 |
21 |
22 |
23 | org.springframework.boot
24 | spring-boot-starter-web
25 |
26 |
27 |
28 | org.springframework.boot
29 | spring-boot-devtools
30 | runtime
31 | true
32 |
33 |
34 | org.springframework.boot
35 | spring-boot-starter-test
36 | test
37 |
38 |
39 | org.junit.vintage
40 | junit-vintage-engine
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 | org.springframework.boot
50 | spring-boot-maven-plugin
51 |
52 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/src/main/docker/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM fabric8/java-jboss-openjdk8-jdk:1.5.4
2 | USER jboss
3 | ENV JAVA_APP_DIR=/deployments
4 | EXPOSE 8080
5 | COPY target/sbeventingce-0.0.1.jar /deployments/
6 | ENTRYPOINT [ "/deployments/run-java.sh" ]
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/src/main/java/com/redhat/developer/demos/sbeventingce/MyController.java:
--------------------------------------------------------------------------------
1 | package com.redhat.developer.demos.sbeventingce;
2 |
3 |
4 | import java.util.Map;
5 |
6 | import org.springframework.http.HttpEntity;
7 | import org.springframework.http.HttpStatus;
8 | import org.springframework.http.ResponseEntity;
9 | import org.springframework.web.bind.annotation.GetMapping;
10 | import org.springframework.web.bind.annotation.PostMapping;
11 | import org.springframework.web.bind.annotation.RestController;
12 |
13 | /**
14 | * MyController
15 | * Illustrates the use of a Spring RestController to access the HTTP headers
16 | */
17 |
18 | @RestController
19 | public class MyController {
20 | @GetMapping("/")
21 | public ResponseEntity doGet (
22 | HttpEntity httpEntity) {
23 | System.out.println("MyController's doGet() method invoked.");
24 | outputStuff(httpEntity);
25 | return new ResponseEntity(
26 | "hello", HttpStatus.OK);
27 | }
28 |
29 | @PostMapping("/")
30 | public ResponseEntity doPost (
31 | HttpEntity httpEntity) {
32 | System.out.println("MyController's doPost() method invoked.");
33 | outputStuff(httpEntity);
34 | return new ResponseEntity(
35 | "hello", HttpStatus.OK);
36 | }
37 |
38 | private void outputStuff(HttpEntity http) {
39 | System.out.println("Env Vars");
40 | Map env = System.getenv();
41 | for (String envName : env.keySet()) {
42 | System.out.format("%s=%s%n", envName, env.get(envName));
43 | }
44 |
45 | System.out.println("HTTP Headers");
46 |
47 | http.getHeaders().forEach((key, value) -> {
48 | System.out.println(String.format("Header '%s' = %s", key, value));
49 | });
50 |
51 | System.out.println("ce-id=" + http.getHeaders().get("ce-id"));
52 | System.out.println("ce-source=" + http.getHeaders().get("ce-source"));
53 | System.out.println("ce-specversion=" + http.getHeaders().get("ce-specversion"));
54 | System.out.println("ce-time=" + http.getHeaders().get("ce-time"));
55 | System.out.println("ce-type=" + http.getHeaders().get("ce-type"));
56 | System.out.println("content-type=" + http.getHeaders().getContentType());
57 | System.out.println("content-length=" + http.getHeaders().getContentLength());
58 |
59 | System.out.println("POST:" + http.getBody());
60 |
61 | }
62 |
63 | }
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/src/main/java/com/redhat/developer/demos/sbeventingce/MySpringBootApp.java:
--------------------------------------------------------------------------------
1 | package com.redhat.developer.demos.sbeventingce;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 |
6 | @SpringBootApplication
7 | public class MySpringBootApp {
8 |
9 | public static void main(final String[] args) {
10 | SpringApplication.run(MySpringBootApp.class, args);
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventingce/src/test/java/com/redhat/developer/demos/sbeventingce/MySpringBooAppTests.java:
--------------------------------------------------------------------------------
1 | package com.redhat.developer.demos.sbeventingce;
2 |
3 | import org.junit.jupiter.api.Test;
4 | import org.springframework.boot.test.context.SpringBootTest;
5 |
6 | @SpringBootTest
7 | class MySpringBootAppTests {
8 |
9 | @Test
10 | void contextLoads() {
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/.gitignore:
--------------------------------------------------------------------------------
1 | HELP.md
2 | target/
3 | !.mvn/wrapper/maven-wrapper.jar
4 | !**/src/main/**
5 | !**/src/test/**
6 |
7 | ### STS ###
8 | .apt_generated
9 | .classpath
10 | .factorypath
11 | .project
12 | .settings
13 | .springBeans
14 | .sts4-cache
15 |
16 | ### IntelliJ IDEA ###
17 | .idea
18 | *.iws
19 | *.iml
20 | *.ipr
21 |
22 | ### NetBeans ###
23 | /nbproject/private/
24 | /nbbuild/
25 | /dist/
26 | /nbdist/
27 | /.nb-gradle/
28 | build/
29 |
30 | ### VS Code ###
31 | .vscode/
32 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/.mvn/wrapper/MavenWrapperDownloader.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012-2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | import java.net.*;
17 | import java.io.*;
18 | import java.nio.channels.*;
19 | import java.util.Properties;
20 |
21 | public class MavenWrapperDownloader {
22 |
23 | private static final String WRAPPER_VERSION = "0.5.5";
24 | /**
25 | * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
26 | */
27 | private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
28 | + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
29 |
30 | /**
31 | * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
32 | * use instead of the default one.
33 | */
34 | private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
35 | ".mvn/wrapper/maven-wrapper.properties";
36 |
37 | /**
38 | * Path where the maven-wrapper.jar will be saved to.
39 | */
40 | private static final String MAVEN_WRAPPER_JAR_PATH =
41 | ".mvn/wrapper/maven-wrapper.jar";
42 |
43 | /**
44 | * Name of the property which should be used to override the default download url for the wrapper.
45 | */
46 | private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
47 |
48 | public static void main(String args[]) {
49 | System.out.println("- Downloader started");
50 | File baseDirectory = new File(args[0]);
51 | System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
52 |
53 | // If the maven-wrapper.properties exists, read it and check if it contains a custom
54 | // wrapperUrl parameter.
55 | File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
56 | String url = DEFAULT_DOWNLOAD_URL;
57 | if(mavenWrapperPropertyFile.exists()) {
58 | FileInputStream mavenWrapperPropertyFileInputStream = null;
59 | try {
60 | mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
61 | Properties mavenWrapperProperties = new Properties();
62 | mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
63 | url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
64 | } catch (IOException e) {
65 | System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
66 | } finally {
67 | try {
68 | if(mavenWrapperPropertyFileInputStream != null) {
69 | mavenWrapperPropertyFileInputStream.close();
70 | }
71 | } catch (IOException e) {
72 | // Ignore ...
73 | }
74 | }
75 | }
76 | System.out.println("- Downloading from: " + url);
77 |
78 | File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
79 | if(!outputFile.getParentFile().exists()) {
80 | if(!outputFile.getParentFile().mkdirs()) {
81 | System.out.println(
82 | "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
83 | }
84 | }
85 | System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
86 | try {
87 | downloadFileFromURL(url, outputFile);
88 | System.out.println("Done");
89 | System.exit(0);
90 | } catch (Throwable e) {
91 | System.out.println("- Error downloading");
92 | e.printStackTrace();
93 | System.exit(1);
94 | }
95 | }
96 |
97 | private static void downloadFileFromURL(String urlString, File destination) throws Exception {
98 | if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
99 | String username = System.getenv("MVNW_USERNAME");
100 | char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
101 | Authenticator.setDefault(new Authenticator() {
102 | @Override
103 | protected PasswordAuthentication getPasswordAuthentication() {
104 | return new PasswordAuthentication(username, password);
105 | }
106 | });
107 | }
108 | URL website = new URL(urlString);
109 | ReadableByteChannel rbc;
110 | rbc = Channels.newChannel(website.openStream());
111 | FileOutputStream fos = new FileOutputStream(destination);
112 | fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
113 | fos.close();
114 | rbc.close();
115 | }
116 |
117 | }
118 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/sbeventinghello/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip
2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar
3 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/bin/.gitignore:
--------------------------------------------------------------------------------
1 | HELP.md
2 | target/
3 | !.mvn/wrapper/maven-wrapper.jar
4 | !**/src/main/**
5 | !**/src/test/**
6 |
7 | ### STS ###
8 | .apt_generated
9 | .classpath
10 | .factorypath
11 | .project
12 | .settings
13 | .springBeans
14 | .sts4-cache
15 |
16 | ### IntelliJ IDEA ###
17 | .idea
18 | *.iws
19 | *.iml
20 | *.ipr
21 |
22 | ### NetBeans ###
23 | /nbproject/private/
24 | /nbbuild/
25 | /dist/
26 | /nbdist/
27 | /.nb-gradle/
28 | build/
29 |
30 | ### VS Code ###
31 | .vscode/
32 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/bin/.mvn/wrapper/MavenWrapperDownloader.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/sbeventinghello/bin/.mvn/wrapper/MavenWrapperDownloader.class
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/bin/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/sbeventinghello/bin/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/bin/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip
2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar
3 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/bin/mvnw.cmd:
--------------------------------------------------------------------------------
1 | @REM ----------------------------------------------------------------------------
2 | @REM Licensed to the Apache Software Foundation (ASF) under one
3 | @REM or more contributor license agreements. See the NOTICE file
4 | @REM distributed with this work for additional information
5 | @REM regarding copyright ownership. The ASF licenses this file
6 | @REM to you under the Apache License, Version 2.0 (the
7 | @REM "License"); you may not use this file except in compliance
8 | @REM with the License. You may obtain a copy of the License at
9 | @REM
10 | @REM https://www.apache.org/licenses/LICENSE-2.0
11 | @REM
12 | @REM Unless required by applicable law or agreed to in writing,
13 | @REM software distributed under the License is distributed on an
14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | @REM KIND, either express or implied. See the License for the
16 | @REM specific language governing permissions and limitations
17 | @REM under the License.
18 | @REM ----------------------------------------------------------------------------
19 |
20 | @REM ----------------------------------------------------------------------------
21 | @REM Maven2 Start Up Batch script
22 | @REM
23 | @REM Required ENV vars:
24 | @REM JAVA_HOME - location of a JDK home dir
25 | @REM
26 | @REM Optional ENV vars
27 | @REM M2_HOME - location of maven2's installed home dir
28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31 | @REM e.g. to debug Maven itself, use
32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34 | @REM ----------------------------------------------------------------------------
35 |
36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37 | @echo off
38 | @REM set title of command window
39 | title %0
40 | @REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
41 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
42 |
43 | @REM set %HOME% to equivalent of $HOME
44 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
45 |
46 | @REM Execute a user defined script before this one
47 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
48 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending
49 | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
50 | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
51 | :skipRcPre
52 |
53 | @setlocal
54 |
55 | set ERROR_CODE=0
56 |
57 | @REM To isolate internal variables from possible post scripts, we use another setlocal
58 | @setlocal
59 |
60 | @REM ==== START VALIDATION ====
61 | if not "%JAVA_HOME%" == "" goto OkJHome
62 |
63 | echo.
64 | echo Error: JAVA_HOME not found in your environment. >&2
65 | echo Please set the JAVA_HOME variable in your environment to match the >&2
66 | echo location of your Java installation. >&2
67 | echo.
68 | goto error
69 |
70 | :OkJHome
71 | if exist "%JAVA_HOME%\bin\java.exe" goto init
72 |
73 | echo.
74 | echo Error: JAVA_HOME is set to an invalid directory. >&2
75 | echo JAVA_HOME = "%JAVA_HOME%" >&2
76 | echo Please set the JAVA_HOME variable in your environment to match the >&2
77 | echo location of your Java installation. >&2
78 | echo.
79 | goto error
80 |
81 | @REM ==== END VALIDATION ====
82 |
83 | :init
84 |
85 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86 | @REM Fallback to current working directory if not found.
87 |
88 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90 |
91 | set EXEC_DIR=%CD%
92 | set WDIR=%EXEC_DIR%
93 | :findBaseDir
94 | IF EXIST "%WDIR%"\.mvn goto baseDirFound
95 | cd ..
96 | IF "%WDIR%"=="%CD%" goto baseDirNotFound
97 | set WDIR=%CD%
98 | goto findBaseDir
99 |
100 | :baseDirFound
101 | set MAVEN_PROJECTBASEDIR=%WDIR%
102 | cd "%EXEC_DIR%"
103 | goto endDetectBaseDir
104 |
105 | :baseDirNotFound
106 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107 | cd "%EXEC_DIR%"
108 |
109 | :endDetectBaseDir
110 |
111 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112 |
113 | @setlocal EnableExtensions EnableDelayedExpansion
114 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116 |
117 | :endReadAdditionalConfig
118 |
119 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120 | set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122 |
123 | set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
124 |
125 | FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
126 | IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
127 | )
128 |
129 | @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
130 | @REM This allows using the maven wrapper in projects that prohibit checking in binary data.
131 | if exist %WRAPPER_JAR% (
132 | if "%MVNW_VERBOSE%" == "true" (
133 | echo Found %WRAPPER_JAR%
134 | )
135 | ) else (
136 | if not "%MVNW_REPOURL%" == "" (
137 | SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
138 | )
139 | if "%MVNW_VERBOSE%" == "true" (
140 | echo Couldn't find %WRAPPER_JAR%, downloading it ...
141 | echo Downloading from: %DOWNLOAD_URL%
142 | )
143 |
144 | powershell -Command "&{"^
145 | "$webclient = new-object System.Net.WebClient;"^
146 | "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
147 | "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
148 | "}"^
149 | "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
150 | "}"
151 | if "%MVNW_VERBOSE%" == "true" (
152 | echo Finished downloading %WRAPPER_JAR%
153 | )
154 | )
155 | @REM End of extension
156 |
157 | @REM Provide a "standardized" way to retrieve the CLI args that will
158 | @REM work with both Windows and non-Windows executions.
159 | set MAVEN_CMD_LINE_ARGS=%*
160 |
161 | %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
162 | if ERRORLEVEL 1 goto error
163 | goto end
164 |
165 | :error
166 | set ERROR_CODE=1
167 |
168 | :end
169 | @endlocal & set ERROR_CODE=%ERROR_CODE%
170 |
171 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
172 | @REM check for post script, once with legacy .bat ending and once with .cmd ending
173 | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
174 | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
175 | :skipRcPost
176 |
177 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
178 | if "%MAVEN_BATCH_PAUSE%" == "on" pause
179 |
180 | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
181 |
182 | exit /B %ERROR_CODE%
183 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/bin/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | org.springframework.boot
7 | spring-boot-starter-parent
8 | 2.2.1.RELEASE
9 |
10 |
11 | com.redhat.developer.demos
12 | sbeventinghello
13 | 0.0.1-SNAPSHOT
14 | sbeventinghello
15 | Demo project for Spring Boot
16 |
17 |
18 | 1.8
19 |
20 |
21 |
22 |
23 | org.springframework.boot
24 | spring-boot-starter-web
25 |
26 |
27 |
28 | org.springframework.boot
29 | spring-boot-devtools
30 | runtime
31 | true
32 |
33 |
34 | org.springframework.boot
35 | spring-boot-starter-test
36 | test
37 |
38 |
39 | org.junit.vintage
40 | junit-vintage-engine
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 | org.springframework.boot
50 | spring-boot-maven-plugin
51 |
52 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/bin/src/main/java/com/redhat/developer/demos/sbeventinghello/SbeventinghelloApplication.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/sbeventinghello/bin/src/main/java/com/redhat/developer/demos/sbeventinghello/SbeventinghelloApplication.class
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/bin/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/bin/src/test/java/com/redhat/developer/demos/sbeventinghello/SbeventinghelloApplicationTests.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/sbeventinghello/bin/src/test/java/com/redhat/developer/demos/sbeventinghello/SbeventinghelloApplicationTests.class
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/dockerbuild.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | docker build -t dev.local/rhdevelopers/eventinghello:0.0.1 -f src/main/docker/Dockerfile .
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/dockerbuild_push.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | VERSION=0.0.1
4 | APP=eventinghello
5 |
6 | docker build -t dev.local/rhdevelopers/$APP:$VERSION -f src/main/docker/Dockerfile .
7 |
8 | docker login quay.io
9 |
10 | docker tag dev.local/rhdevelopers/$APP:$VERSION quay.io/burrsutter/$APP:$VERSION
11 | docker push quay.io/burrsutter/$APP:$VERSION
12 |
13 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/mvnw.cmd:
--------------------------------------------------------------------------------
1 | @REM ----------------------------------------------------------------------------
2 | @REM Licensed to the Apache Software Foundation (ASF) under one
3 | @REM or more contributor license agreements. See the NOTICE file
4 | @REM distributed with this work for additional information
5 | @REM regarding copyright ownership. The ASF licenses this file
6 | @REM to you under the Apache License, Version 2.0 (the
7 | @REM "License"); you may not use this file except in compliance
8 | @REM with the License. You may obtain a copy of the License at
9 | @REM
10 | @REM https://www.apache.org/licenses/LICENSE-2.0
11 | @REM
12 | @REM Unless required by applicable law or agreed to in writing,
13 | @REM software distributed under the License is distributed on an
14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | @REM KIND, either express or implied. See the License for the
16 | @REM specific language governing permissions and limitations
17 | @REM under the License.
18 | @REM ----------------------------------------------------------------------------
19 |
20 | @REM ----------------------------------------------------------------------------
21 | @REM Maven2 Start Up Batch script
22 | @REM
23 | @REM Required ENV vars:
24 | @REM JAVA_HOME - location of a JDK home dir
25 | @REM
26 | @REM Optional ENV vars
27 | @REM M2_HOME - location of maven2's installed home dir
28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31 | @REM e.g. to debug Maven itself, use
32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34 | @REM ----------------------------------------------------------------------------
35 |
36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37 | @echo off
38 | @REM set title of command window
39 | title %0
40 | @REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
41 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
42 |
43 | @REM set %HOME% to equivalent of $HOME
44 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
45 |
46 | @REM Execute a user defined script before this one
47 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
48 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending
49 | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
50 | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
51 | :skipRcPre
52 |
53 | @setlocal
54 |
55 | set ERROR_CODE=0
56 |
57 | @REM To isolate internal variables from possible post scripts, we use another setlocal
58 | @setlocal
59 |
60 | @REM ==== START VALIDATION ====
61 | if not "%JAVA_HOME%" == "" goto OkJHome
62 |
63 | echo.
64 | echo Error: JAVA_HOME not found in your environment. >&2
65 | echo Please set the JAVA_HOME variable in your environment to match the >&2
66 | echo location of your Java installation. >&2
67 | echo.
68 | goto error
69 |
70 | :OkJHome
71 | if exist "%JAVA_HOME%\bin\java.exe" goto init
72 |
73 | echo.
74 | echo Error: JAVA_HOME is set to an invalid directory. >&2
75 | echo JAVA_HOME = "%JAVA_HOME%" >&2
76 | echo Please set the JAVA_HOME variable in your environment to match the >&2
77 | echo location of your Java installation. >&2
78 | echo.
79 | goto error
80 |
81 | @REM ==== END VALIDATION ====
82 |
83 | :init
84 |
85 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86 | @REM Fallback to current working directory if not found.
87 |
88 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90 |
91 | set EXEC_DIR=%CD%
92 | set WDIR=%EXEC_DIR%
93 | :findBaseDir
94 | IF EXIST "%WDIR%"\.mvn goto baseDirFound
95 | cd ..
96 | IF "%WDIR%"=="%CD%" goto baseDirNotFound
97 | set WDIR=%CD%
98 | goto findBaseDir
99 |
100 | :baseDirFound
101 | set MAVEN_PROJECTBASEDIR=%WDIR%
102 | cd "%EXEC_DIR%"
103 | goto endDetectBaseDir
104 |
105 | :baseDirNotFound
106 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107 | cd "%EXEC_DIR%"
108 |
109 | :endDetectBaseDir
110 |
111 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112 |
113 | @setlocal EnableExtensions EnableDelayedExpansion
114 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116 |
117 | :endReadAdditionalConfig
118 |
119 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120 | set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122 |
123 | set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
124 |
125 | FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
126 | IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
127 | )
128 |
129 | @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
130 | @REM This allows using the maven wrapper in projects that prohibit checking in binary data.
131 | if exist %WRAPPER_JAR% (
132 | if "%MVNW_VERBOSE%" == "true" (
133 | echo Found %WRAPPER_JAR%
134 | )
135 | ) else (
136 | if not "%MVNW_REPOURL%" == "" (
137 | SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
138 | )
139 | if "%MVNW_VERBOSE%" == "true" (
140 | echo Couldn't find %WRAPPER_JAR%, downloading it ...
141 | echo Downloading from: %DOWNLOAD_URL%
142 | )
143 |
144 | powershell -Command "&{"^
145 | "$webclient = new-object System.Net.WebClient;"^
146 | "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
147 | "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
148 | "}"^
149 | "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
150 | "}"
151 | if "%MVNW_VERBOSE%" == "true" (
152 | echo Finished downloading %WRAPPER_JAR%
153 | )
154 | )
155 | @REM End of extension
156 |
157 | @REM Provide a "standardized" way to retrieve the CLI args that will
158 | @REM work with both Windows and non-Windows executions.
159 | set MAVEN_CMD_LINE_ARGS=%*
160 |
161 | %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
162 | if ERRORLEVEL 1 goto error
163 | goto end
164 |
165 | :error
166 | set ERROR_CODE=1
167 |
168 | :end
169 | @endlocal & set ERROR_CODE=%ERROR_CODE%
170 |
171 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
172 | @REM check for post script, once with legacy .bat ending and once with .cmd ending
173 | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
174 | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
175 | :skipRcPost
176 |
177 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
178 | if "%MAVEN_BATCH_PAUSE%" == "on" pause
179 |
180 | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
181 |
182 | exit /B %ERROR_CODE%
183 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | org.springframework.boot
7 | spring-boot-starter-parent
8 | 2.2.1.RELEASE
9 |
10 |
11 | com.redhat.developer.demos
12 | sbeventinghello
13 | 0.0.1
14 | sbeventinghello
15 | Demo project for Spring Boot
16 |
17 |
18 | 1.8
19 |
20 |
21 |
22 |
23 | org.springframework.boot
24 | spring-boot-starter-web
25 |
26 |
27 |
28 | org.springframework.boot
29 | spring-boot-devtools
30 | runtime
31 | true
32 |
33 |
34 | org.springframework.boot
35 | spring-boot-starter-test
36 | test
37 |
38 |
39 | org.junit.vintage
40 | junit-vintage-engine
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 | org.springframework.boot
50 | spring-boot-maven-plugin
51 |
52 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/src/main/docker/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM fabric8/java-jboss-openjdk8-jdk:1.5.4
2 | USER jboss
3 | ENV JAVA_APP_DIR=/deployments
4 | EXPOSE 8080
5 | COPY target/sbeventinghello-0.0.1.jar /deployments/
6 | ENTRYPOINT [ "/deployments/run-java.sh" ]
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/src/main/java/com/redhat/developer/demos/sbeventinghello/MyServlet.java:
--------------------------------------------------------------------------------
1 | package com.redhat.developer.demos.sbeventinghello;
2 |
3 | import java.io.IOException;
4 | import java.util.Enumeration;
5 | import java.util.stream.Collectors;
6 |
7 | import javax.servlet.ServletException;
8 | import javax.servlet.http.HttpServlet;
9 | import javax.servlet.http.HttpServletRequest;
10 | import javax.servlet.http.HttpServletResponse;
11 |
12 | public class MyServlet extends HttpServlet {
13 |
14 | private static final long serialVersionUID = 1L;
15 | private int cnt;
16 |
17 | @Override
18 | protected void doGet(HttpServletRequest req, HttpServletResponse resp)
19 | throws ServletException, IOException {
20 | System.out.println("MyServlet's doGet() method invoked.");
21 | handleRequest(req, resp);
22 | }
23 | @Override
24 | protected void doPost(HttpServletRequest req, HttpServletResponse resp)
25 | throws ServletException, IOException {
26 | System.out.println("MyServlet's doPost() method invoked.");
27 | handleRequest(req, resp);
28 | }
29 |
30 | private void handleRequest(HttpServletRequest req, HttpServletResponse resp)
31 | throws ServletException, IOException {
32 |
33 | // Gather all HTTP Headers
34 | StringBuffer headers = new StringBuffer();
35 | String header;
36 | for (Enumeration e = req.getHeaderNames(); e.hasMoreElements();) {
37 | header = e.nextElement();
38 | headers.append(header + "=" + req.getHeader(header) + "\n");
39 | }
40 | // System.out.println("HTTP Headers");
41 | // System.out.println(headers.toString());
42 |
43 | // Inspect just the important CloudEvents headers
44 | System.out.println("ce-id=" + req.getHeader("ce-id"));
45 | System.out.println("ce-source=" + req.getHeader("ce-source"));
46 | System.out.println("ce-specversion=" + req.getHeader("ce-specversion"));
47 | System.out.println("ce-time=" + req.getHeader("ce-time"));
48 | System.out.println("ce-type=" + req.getHeader("ce-type"));
49 | System.out.println("content-type=" + req.getContentType());
50 | System.out.println("content-length=" + req.getContentLengthLong());
51 |
52 | // POST'd body
53 | if ("POST".equalsIgnoreCase(req.getMethod()))
54 | {
55 | String body = req.getReader().lines().collect(Collectors.joining(System.lineSeparator()));
56 | System.out.println("POST:" + body);
57 | }
58 |
59 | resp.setContentType("application/json");
60 | resp.getWriter().write("{\"hello\": \"world-" + cnt++ + "\"}");
61 | }
62 |
63 | }
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/src/main/java/com/redhat/developer/demos/sbeventinghello/MySpringBootApp.java:
--------------------------------------------------------------------------------
1 | package com.redhat.developer.demos.sbeventinghello;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.boot.web.servlet.ServletRegistrationBean;
6 | import org.springframework.context.annotation.Bean;
7 |
8 | @SpringBootApplication
9 | public class MySpringBootApp {
10 |
11 | // Register Servlet
12 | @Bean
13 | public ServletRegistrationBean servletRegistrationBean() {
14 | final ServletRegistrationBean bean = new ServletRegistrationBean(
15 | new MyServlet(), "/*");
16 |
17 | bean.setLoadOnStartup(1);
18 | return bean;
19 | }
20 |
21 | public static void main(final String[] args) {
22 | SpringApplication.run(MySpringBootApp.class, args);
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/eventing-demo/sbeventinghello/src/test/java/com/redhat/developer/demos/sbeventinghello/MySpringBooAppTests.java:
--------------------------------------------------------------------------------
1 | package com.redhat.developer.demos.sbeventinghello;
2 |
3 | import org.junit.jupiter.api.Test;
4 | import org.springframework.boot.test.context.SpringBootTest;
5 |
6 | @SpringBootTest
7 | class MySpringBootAppTests {
8 |
9 | @Test
10 | void contextLoads() {
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/eventing-demo/scale_up_down_10.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/scale_up_down_10.mp4
--------------------------------------------------------------------------------
/eventing-demo/sending_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/sending_10.png
--------------------------------------------------------------------------------
/eventing-demo/sending_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/eventing-demo/sending_3.png
--------------------------------------------------------------------------------
/get_events_ordered.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | kubectl get events --sort-by=.metadata.creationTimestamp
4 |
--------------------------------------------------------------------------------
/list_containers.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | echo 'Init Containers'
4 |
5 | kubectl get pod $1 -o yaml | yq r - spec.initContainers[*].name
6 |
7 | echo 'Containers'
8 |
9 | kubectl get pod $1 -o yaml | yq r - spec.containers[*].name
10 |
11 |
--------------------------------------------------------------------------------
/list_init_containers.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | kubectl get pod $1 -o yaml | yq r - spec.initContainers[*].name
--------------------------------------------------------------------------------
/monitor_activator.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | while true
4 | do kubectl -n knative-serving get virtualservice -l serving.knative.dev/route=greeter -o json | jq '.items[0].spec.http[0].route[0].destination.host'
5 | sleep .5
6 | done
--------------------------------------------------------------------------------
/monitor_deployment.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | while true;
4 | do kubectl get deployment greeter-v1-deployment -o json | jq -r '.spec.replicas,.status.readyReplicas,.status.updatedReplicas';
5 | sleep .5;
6 | done;
7 |
--------------------------------------------------------------------------------
/monitor_rss.sh:
--------------------------------------------------------------------------------
1 | while true; do ps ax -o pid,rss,command | grep "[n]oded"; sleep .3; done
2 |
3 | while true; do ps ax -o pid,rss,command | grep "[g]onow"; sleep .3; done
4 |
5 | while true; do ps ax -o pid,rss,command | grep "[b]ooted"; sleep .3; done
6 |
7 | while true; do ps ax -o pid,rss,command | grep "[q]uarked"; sleep .3; done
--------------------------------------------------------------------------------
/namespace_sticky.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | kubectl config set-context --current --namespace=$1
--------------------------------------------------------------------------------
/poll_event_greeter.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | INGRESSGATEWAY=istio-ingressgateway
4 | IP_ADDRESS="$(minikube -p knative ip):$(kubectl get svc $INGRESSGATEWAY --namespace istio-system --output 'jsonpath={.spec.ports[?(@.port==80)].nodePort}')"
5 | while true
6 | do curl -H "Host: event-greeter.knativetutorial.example.com" $IP_ADDRESS \
7 | -H "Content-Type: application/json" \
8 | -d '{"message": "Waasssup"}'
9 | sleep .3
10 | echo
11 | done
--------------------------------------------------------------------------------
/poll_greeter.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | INGRESSGATEWAY=istio-ingressgateway
3 | IP_ADDRESS="$(minikube -p knative ip):$(kubectl get svc $INGRESSGATEWAY --namespace istio-system --output 'jsonpath={.spec.ports[?(@.port==80)].nodePort}')"
4 | while true
5 | do curl -H "Host: greeter.knativetutorial.example.com" $IP_ADDRESS
6 | sleep .3
7 | done
--------------------------------------------------------------------------------
/tekton-demos/tasks/0_who.yml:
--------------------------------------------------------------------------------
1 | apiVersion: tekton.dev/v1alpha1
2 | kind: TaskRun
3 | metadata:
4 | generateName: who-
5 | spec:
6 | taskSpec:
7 | steps:
8 | - name: who
9 | image: fedora
10 | command: ['cat', '/etc/os-release']
--------------------------------------------------------------------------------
/tekton-demos/tasks/10_mvn.yml:
--------------------------------------------------------------------------------
1 | apiVersion: tekton.dev/v1alpha1
2 | kind: TaskRun
3 | metadata:
4 | generateName: mvn-
5 | spec:
6 | taskSpec:
7 | steps:
8 | - name: maven-home
9 | image: maven:3.6.0-jdk-11
10 | command: ['bash']
11 | args: ["-c","echo $MAVEN_HOME"]
12 | - name: ls-maven-home
13 | image: maven:3.6.0-jdk-11
14 | command: ['bash']
15 | args: ["-c","ls -la $MAVEN_HOME"]
16 | - name: ls-maven-conf
17 | image: maven:3.6.0-jdk-11
18 | command: ['bash']
19 | args: ["-c","ls -la $MAVEN_HOME/conf"]
20 | - name: cat-maven-settings
21 | image: maven:3.6.0-jdk-11
22 | command: ['bash']
23 | args: ["-c","cat $MAVEN_HOME/conf/settings.xml"]
24 |
--------------------------------------------------------------------------------
/tekton-demos/tasks/11_git_clone_mvn.yml:
--------------------------------------------------------------------------------
1 | apiVersion: tekton.dev/v1alpha1
2 | kind: TaskRun
3 | metadata:
4 | generateName: git-clone-mvn-
5 | spec:
6 | taskSpec:
7 | inputs:
8 | resources:
9 | - name: mysources
10 | type: git
11 | steps:
12 | - name: ls1
13 | image: fedora
14 | command: ['ls', '/workspace/mysources/java/springboot']
15 | - name: mvn-build
16 | image: maven:3.6.0-jdk-11
17 | command: ['mvn']
18 | args:
19 | - -Duser.home=/builder/home
20 | - clean
21 | - package
22 | workingDir: '/workspace/mysources/java/springboot'
23 | inputs:
24 | resources:
25 | - name: mysources
26 | resourceSpec:
27 | type: git
28 | params:
29 | - name: revision
30 | value: master
31 | - name: url
32 | value: https://github.com/burrsutter/knative-tutorial-greeter.git
33 |
--------------------------------------------------------------------------------
/tekton-demos/tasks/12_docker.yml:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burrsutter/scripts-knative/9fef3068dfd80b527370a73dc9516ada466bb7da/tekton-demos/tasks/12_docker.yml
--------------------------------------------------------------------------------
/tekton-demos/tasks/13_yq.yml:
--------------------------------------------------------------------------------
1 | apiVersion: tekton.dev/v1alpha1
2 | kind: TaskRun
3 | metadata:
4 | generateName: yq-
5 | spec:
6 | taskSpec:
7 | inputs:
8 | resources:
9 | - name: mysources
10 | type: git
11 | steps:
12 | - name: ls
13 | image: fedora
14 | command: ['ls', '/workspace/mysources/']
15 | - name: before-yq
16 | image: fedora
17 | command: ['cat', '/workspace/mysources/src/main/kubernetes/Deployment_green.yml']
18 | - name: yq-rewrite
19 | image: docker.io/mikefarah/yq
20 | command: ['yq']
21 | args:
22 | - w
23 | - -i
24 | - /workspace/mysources/src/main/kubernetes/Deployment_green.yml
25 | - spec.template.spec.containers[0].image
26 | - burr:wuz:here
27 | - name: after-yq
28 | image: fedora
29 | command: ['cat', '/workspace/mysources/src/main/kubernetes/Deployment_green.yml']
30 | inputs:
31 | resources:
32 | - name: mysources
33 | resourceSpec:
34 | type: git
35 | params:
36 | - name: revision
37 | value: master
38 | - name: url
39 | value: https://github.com/burrsutter/blue-green-canary.git
40 |
--------------------------------------------------------------------------------
/tekton-demos/tasks/1_hello.yml:
--------------------------------------------------------------------------------
1 | apiVersion: tekton.dev/v1alpha1
2 | kind: TaskRun
3 | metadata:
4 | generateName: hello-
5 | spec:
6 | taskSpec:
7 | steps:
8 | - name: hello
9 | image: fedora
10 | command: ['echo', 'hello']
--------------------------------------------------------------------------------
/tekton-demos/tasks/2_hello-env.yml:
--------------------------------------------------------------------------------
1 | apiVersion: tekton.dev/v1alpha1
2 | kind: TaskRun
3 | metadata:
4 | generateName: hello-env-
5 | spec:
6 | taskSpec:
7 | steps:
8 | - name: hello-env
9 | image: fedora
10 | env:
11 | - name: MYVAR
12 | value: bonjour
13 | command: ['bash']
14 | args: ["-c", "echo $MYVAR"]
15 |
--------------------------------------------------------------------------------
/tekton-demos/tasks/3_hello-test.yml:
--------------------------------------------------------------------------------
1 | apiVersion: tekton.dev/v1alpha1
2 | kind: TaskRun
3 | metadata:
4 | generateName: hello-test-
5 | spec:
6 | taskSpec:
7 | steps:
8 | - name: test
9 | image: fedora
10 | env:
11 | - name: MY_VAR1
12 | value: dax
13 | command: ['bash']
14 | args:
15 | - '-c'
16 | - '[[ $MY_VAR1 == burr ]]'
17 |
18 |
--------------------------------------------------------------------------------
/tekton-demos/tasks/4_hello-pwd.yml:
--------------------------------------------------------------------------------
1 | apiVersion: tekton.dev/v1alpha1
2 | kind: TaskRun
3 | metadata:
4 | generateName: hello-pwd-
5 | spec:
6 | taskSpec:
7 | steps:
8 | - name: pwd
9 | image: fedora
10 | command: ['pwd']
--------------------------------------------------------------------------------
/tekton-demos/tasks/5_hello-ls.yml:
--------------------------------------------------------------------------------
1 | apiVersion: tekton.dev/v1alpha1
2 | kind: TaskRun
3 | metadata:
4 | generateName: hello-ls-
5 | spec:
6 | taskSpec:
7 | steps:
8 | - name: ls
9 | image: fedora
10 | command: ['ls', '-la']
--------------------------------------------------------------------------------
/tekton-demos/tasks/6_hello-mkdir-pwd.yml:
--------------------------------------------------------------------------------
1 | apiVersion: tekton.dev/v1alpha1
2 | kind: TaskRun
3 | metadata:
4 | generateName: hello-mkdir-pwd-
5 | spec:
6 | taskSpec:
7 | steps:
8 | - name: pwd
9 | image: fedora
10 | command: ['pwd']
11 | - name: mkdir
12 | image: fedora
13 | command: ['bash']
14 | args: ["-c","mkdir -p /workspace/burr"]
15 | - name: ls
16 | image: fedora
17 | command: ['ls', '-la']
18 |
--------------------------------------------------------------------------------
/tekton-demos/tasks/7_many_step.yml:
--------------------------------------------------------------------------------
1 | apiVersion: tekton.dev/v1alpha1
2 | kind: TaskRun
3 | metadata:
4 | generateName: many-step
5 | spec:
6 | taskSpec:
7 | steps:
8 | - name: hello
9 | image: fedora
10 | command: ['echo', 'hello']
11 | - name: pwd
12 | image: fedora
13 | command: ['pwd']
14 | - name: ls
15 | image: fedora
16 | command: ['ls', '-la']
17 | - name: who
18 | image: fedora
19 | command: ['cat', '/etc/os-release']
--------------------------------------------------------------------------------
/tekton-demos/tasks/8_many_step_work.yml:
--------------------------------------------------------------------------------
1 | apiVersion: tekton.dev/v1alpha1
2 | kind: TaskRun
3 | metadata:
4 | generateName: many-step-work-
5 | spec:
6 | taskSpec:
7 | steps:
8 | - name: pwd
9 | image: fedora
10 | command: ['pwd']
11 | - name: ls1
12 | image: fedora
13 | command: ['ls', '-la']
14 | - name: hello
15 | image: fedora
16 | command: ['bash']
17 | args: ["-c","echo 'blah,blah,blah' > myfile.txt"]
18 | - name: ls2
19 | image: fedora
20 | command: ['ls', '-la']
21 | - name: cat
22 | image: fedora
23 | command: ['cat', 'myfile.txt']
24 |
25 |
--------------------------------------------------------------------------------
/tekton-demos/tasks/9_git_clone.yml:
--------------------------------------------------------------------------------
1 | apiVersion: tekton.dev/v1alpha1
2 | kind: TaskRun
3 | metadata:
4 | generateName: git-clone-
5 | spec:
6 | taskSpec:
7 | inputs:
8 | resources:
9 | - name: mysources
10 | type: git
11 | steps:
12 | - name: ls
13 | image: fedora
14 | command: ['ls', '/workspace/mysources/java/springboot']
15 | inputs:
16 | resources:
17 | - name: mysources
18 | resourceSpec:
19 | type: git
20 | params:
21 | - name: revision
22 | value: master
23 | - name: url
24 | value: https://github.com/burrsutter/knative-tutorial-greeter.git
25 |
--------------------------------------------------------------------------------
/tekton-demos/tasks/clean_completed.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | kubectl delete pods --field-selector=status.phase=Succeeded
4 | kubectl delete pods --field-selector=status.phase=Failed
--------------------------------------------------------------------------------
/tekton-demos/tasks/create_log.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | NAME=$(kubectl create -f $1 -ojson | jq -r .metadata.name)
4 |
5 | tkn tr logs -f -a $NAME
--------------------------------------------------------------------------------
/tekton-demos/tasks/list_containers.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | echo 'Init Containers'
4 |
5 | kubectl get pod $1 -o yaml | yq r - spec.initContainers[*].name
6 |
7 | echo 'Containers'
8 |
9 | kubectl get pod $1 -o yaml | yq r - spec.containers[*].name
10 |
11 |
--------------------------------------------------------------------------------
/tekton-demos/tasks/readme.txt:
--------------------------------------------------------------------------------
1 | Hello
2 |
3 | kubectl create -f 1_hello.yml
4 | tkn taskrun ls -f -a hello-xy4b
5 |
6 | or
7 | ./create-log 1_hello.yml
8 |
9 | ./create-log 6_many_step.yml
10 | ./list-containers.sh many-stepcmqxm-pod-8847c1
11 |
12 | kubectl run hello-maven --image=docker.io/maven:3.6.0-jdk-11 --generator=run-pod/v1
--------------------------------------------------------------------------------