├── .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 --------------------------------------------------------------------------------