diff --git a/.github/workflows/build-pull.yaml b/.github/workflows/build-pull.yaml
index ad6d86d03..25b96f7b7 100644
--- a/.github/workflows/build-pull.yaml
+++ b/.github/workflows/build-pull.yaml
@@ -67,10 +67,3 @@ jobs:
name: function-runtime-python312
dockerfile: python312/Dockerfile
context: components/runtimes/python
-
- build-java17:
- uses: kyma-project/test-infra/.github/workflows/image-builder.yml@main # Usage: kyma-project/test-infra/.github/workflows/image-builder.yml@main
- with:
- name: function-runtime-java17-jvm-alpha
- dockerfile: Dockerfile-jvm-runtime
- context: components/runtimes/java17
diff --git a/.github/workflows/build-push-release.yaml b/.github/workflows/build-push-release.yaml
index 748f1a2b6..5787eb793 100644
--- a/.github/workflows/build-push-release.yaml
+++ b/.github/workflows/build-push-release.yaml
@@ -98,12 +98,3 @@ jobs:
dockerfile: python312/Dockerfile
context: components/runtimes/python
tags: ${{ needs.compute-tags.outputs.tags }}
-
- build-java17:
- needs: compute-tags
- uses: kyma-project/test-infra/.github/workflows/image-builder.yml@main # Usage: kyma-project/test-infra/.github/workflows/image-builder.yml@main
- with:
- name: function-runtime-java17-jvm-alpha
- dockerfile: Dockerfile-jvm-runtime
- context: components/runtimes/java17
- tags: ${{ needs.compute-tags.outputs.tags }}
diff --git a/components/runtimes/java17/.gitignore b/components/runtimes/java17/.gitignore
deleted file mode 100644
index 816f32965..000000000
--- a/components/runtimes/java17/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-target
-.idea
-opentelemetry-javaagent.jar
\ No newline at end of file
diff --git a/components/runtimes/java17/Dockerfile-jvm-function-local b/components/runtimes/java17/Dockerfile-jvm-function-local
deleted file mode 100644
index 84db71c2e..000000000
--- a/components/runtimes/java17/Dockerfile-jvm-function-local
+++ /dev/null
@@ -1,21 +0,0 @@
-FROM java-runtime:17 as builder
-
-ARG BUILD_DIR=/build
-#When kaniko build the image it has Handler.java and pom.xml in the /src, but When I work on function locally the pom.xml can be in /src, but Handler.java lies in the package deep in src.
-ARG SOURCE_DIR=/src
-ARG DEPS_DIR=/src
-WORKDIR $BUILD_DIR
-
-COPY $DEPS_DIR/pom.xml $BUILD_DIR/handler-pom.xml
-
-COPY $SOURCE_DIR/Handler.java $BUILD_DIR/src/main/java/io/project/kyma/serverless/handler/Handler.java
-RUN mvn dependency:go-offline -f handler-pom.xml
-
-RUN mvn clean && mvn package -f pom.xml
-
-FROM eclipse-temurin:17-jre-alpine
-
-COPY --from=builder /build/target/kyma-java-runtime-0.0.1.jar /app.jar
-
-ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
-USER 1000
diff --git a/components/runtimes/java17/Dockerfile-jvm-function.tpl b/components/runtimes/java17/Dockerfile-jvm-function.tpl
deleted file mode 100644
index 8af11bf1d..000000000
--- a/components/runtimes/java17/Dockerfile-jvm-function.tpl
+++ /dev/null
@@ -1,21 +0,0 @@
-FROM ${BASE_IMAGE} as builder
-
-ARG BUILD_DIR=/build
-#When kaniko build the image it has Handler.java and pom.xml in the /src, but When I work on function locally the pom.xml can be in /src, but Handler.java lies in the package deep in src.
-ARG SOURCE_DIR=/src
-ARG DEPS_DIR=/src
-WORKDIR $BUILD_DIR
-
-COPY $DEPS_DIR/pom.xml $BUILD_DIR/handler-pom.xml
-
-COPY $SOURCE_DIR/Handler.java $BUILD_DIR/src/main/java/io/project/kyma/serverless/handler/Handler.java
-RUN mvn dependency:go-offline -f handler-pom.xml
-
-RUN mvn clean && mvn package -f pom.xml
-
-FROM eclipse-temurin:17-jre-alpine
-
-COPY --from=builder /build/target/kyma-java-runtime-0.0.1.jar /app.jar
-
-ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
-USER 1000
diff --git a/components/runtimes/java17/Dockerfile-jvm-runtime b/components/runtimes/java17/Dockerfile-jvm-runtime
deleted file mode 100644
index 3d258c9a1..000000000
--- a/components/runtimes/java17/Dockerfile-jvm-runtime
+++ /dev/null
@@ -1,13 +0,0 @@
-FROM maven:3.8-openjdk-17-slim
-WORKDIR /build
-
-#Compile and install SDK locally
-COPY serverless-java-sdk serverless-java-sdk
-RUN (cd serverless-java-sdk && mvn clean package install)
-
-COPY ./pom.xml .
-RUN mvn dependency:go-offline
-
-# Create runtime
-COPY ./src ./src
-RUN mvn compile
diff --git a/components/runtimes/java17/Makefile b/components/runtimes/java17/Makefile
deleted file mode 100644
index acad10c49..000000000
--- a/components/runtimes/java17/Makefile
+++ /dev/null
@@ -1,69 +0,0 @@
-#This is address of registry visible from k3s cluster.
-#On linux you can get this address by executing `hostname -I`
-
-#TODO: /etc/hosts and coredns patch, fetch it as optional
-#REGISTRY_ADR=k3d-kyma-registry.localhost:5000
-REGISTRY_ADR=192.168.122.1:5000
-JVM_VERSION=17
-RUNTIME_IMAGE=java-runtime:${JVM_VERSION}
-RUNTIME_IMAGE_REMOTE=${REGISTRY_ADR}/${RUNTIME_IMAGE}
-
-install-sdk:
- (cd serverless-java-sdk && mvn install)
-
-.PHONY: clean
-clean:
- mvn clean package
-
-#------------------------------------------------------JVM-------------------------------------------------------------#
-.PHONY: build-runtime
-build-runtime: install-sdk
- docker build -t ${RUNTIME_IMAGE} -f Dockerfile-jvm-runtime .
-
-.PHONY: push-runtime-k3d
-push-runtime-k3d:
- docker image tag ${RUNTIME_IMAGE} ${RUNTIME_IMAGE_REMOTE}
- docker push ${RUNTIME_IMAGE_REMOTE}
-
-#------------------------------------------------------K8s-Resources---------------------------------------------------#
-#Generate configmaps which can be used to move to serverless resources
-
-IMAGE_HELM_TPL='{{ include "imageurl" (dict "reg" .Values.global.containerRegistry "img" .Values.global.images.function_runtime_java${JVM_VERSION}_jvm_alpha) }}'
-.PHONY: generate-configmaps
-generate-configmaps:
- DOCKERFILE=Dockerfile-jvm-function.tpl BASE_IMAGE=${IMAGE_HELM_TPL} python3 ./resources/generate-dockerfile.py | \
- CONFIGMAP=resources/java${JVM_VERSION}-jvm-alpha.yaml RUNTIME=java${JVM_VERSION}-jvm-alpha python3 resources/generate-cm.py > ./resources/java${JVM_VERSION}-jvm-alpha.yaml
-
-generate-configmaps-local-image:
- DOCKERFILE=Dockerfile-jvm-function.tpl BASE_IMAGE=${RUNTIME_IMAGE_REMOTE} python3 ./resources/generate-dockerfile.py | \
- CONFIGMAP=resources/java${JVM_VERSION}-jvm-alpha.yaml RUNTIME=java${JVM_VERSION}-jvm-alpha python3 resources/generate-cm.py > ./resources/java${JVM_VERSION}-jvm-alpha-local.yaml
-
-
-apply-java-runtime:
- kubectl replace -f ./resources/java17-jvm-alpha.yaml
-
-apply-java-runtime-local:
- kubectl replace -f ./resources/java17-jvm-alpha-local.yaml
-
-#-------------------------------------------------Run Example function locally-----------------------------------------#
-#Example function
-#Create Dockerfile to use with example hello-world
-export BASE_IMAGE = ${RUNTIME_IMAGE}
-
-FUNCTION_IMAGE=java-jvm${JVM_VERSION}-function
-
-.PHONY: generate-local-fn-dockerfile
-generate-local-fn-dockerfile:
- DOCKERFILE=Dockerfile-jvm-function.tpl BASE_IMAGE=${RUNTIME_IMAGE} python3 ./resources/generate-dockerfile.py > Dockerfile-jvm-function-local
-
-run-jvm-hello-world: build-runtime generate-local-fn-dockerfile
- docker build --tag ${FUNCTION_IMAGE} \
- --build-arg DEPS_DIR=./examples/hello-world/ \
- --build-arg SOURCE_DIR=./examples/hello-world/src/main/java/io/project/kyma/serverless/handler \
- -f Dockerfile-jvm-function-local .
-
- docker run -ti -p 8080:8080 --rm --env PUBLISHER_PROXY_ADDRESS=http://localhost:10000/publish \
- --env TRACE_COLLECTOR_ENDPOINT=http://localhost:4318/v1/traces \
- --env SERVICE_NAMESPACE=default \
- --env HOSTNAME=emitter-local-84dd76fc94-2pnpd \
- --name java-jvm-function ${FUNCTION_IMAGE}
diff --git a/components/runtimes/java17/examples/hello-world/.Dockerignore b/components/runtimes/java17/examples/hello-world/.Dockerignore
deleted file mode 100644
index 4c3f8757e..000000000
--- a/components/runtimes/java17/examples/hello-world/.Dockerignore
+++ /dev/null
@@ -1,4 +0,0 @@
-.project
-.settings
-.classpath
-target/
diff --git a/components/runtimes/java17/examples/hello-world/.gitignore b/components/runtimes/java17/examples/hello-world/.gitignore
deleted file mode 100644
index 4c3f8757e..000000000
--- a/components/runtimes/java17/examples/hello-world/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-.project
-.settings
-.classpath
-target/
diff --git a/components/runtimes/java17/examples/hello-world/pom.xml b/components/runtimes/java17/examples/hello-world/pom.xml
deleted file mode 100644
index b64faf860..000000000
--- a/components/runtimes/java17/examples/hello-world/pom.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
- 4.0.0
- io.project.kyma.serverless
- java-function
- 0.0.1
- jar
-
- hello-world
-
-
- UTF-8
- 11
- 11
-
-
-
-
- jakarta.ws.rs
- jakarta.ws.rs-api
- 3.1.0
- provided
-
-
- io.project.kyma.serverless
- serverless-java-sdk
- 0.0.1
- compile
-
-
-
diff --git a/components/runtimes/java17/examples/hello-world/src/main/java/io/project/kyma/serverless/handler/Handler.java b/components/runtimes/java17/examples/hello-world/src/main/java/io/project/kyma/serverless/handler/Handler.java
deleted file mode 100644
index 993dc2217..000000000
--- a/components/runtimes/java17/examples/hello-world/src/main/java/io/project/kyma/serverless/handler/Handler.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package io.project.kyma.serverless.handler;
-
-import jakarta.ws.rs.core.Context;
-import jakarta.ws.rs.core.Response;
-
-import io.project.kyma.serverless.sdk.CloudEvent;
-import io.project.kyma.serverless.sdk.Function;
-
-
-public class Handler implements Function {
-
- public static final String RETURN_STRING = "Hello World from java17 runtime with serverless SDK!";
-
- @Override
- public Response main(CloudEvent event, Context context) {
- return Response.ok(RETURN_STRING).build();
- }
-}
diff --git a/components/runtimes/java17/pom.xml b/components/runtimes/java17/pom.xml
deleted file mode 100644
index 9f831c875..000000000
--- a/components/runtimes/java17/pom.xml
+++ /dev/null
@@ -1,145 +0,0 @@
-
-
- 4.0.0
-
- io.project.kyma.serverless
- kyma-java-runtime
- 0.0.1
- jar
-
-
- 11
- 11
-
-
-
-
-
- io.opentelemetry
- opentelemetry-bom
- 1.20.0
- pom
- import
-
-
- org.junit
- junit-bom
- 5.9.1
- pom
- import
-
-
-
-
-
-
-
- org.eclipse.jetty
- jetty-server
- 11.0.13
-
-
- org.eclipse.jetty
- jetty-servlet
- 11.0.13
-
-
- org.glassfish.jersey.containers
- jersey-container-servlet-core
- 3.1.0
-
-
- org.glassfish.jersey.media
- jersey-media-json-jackson
- 3.1.0
-
-
- org.glassfish.jersey.inject
- jersey-hk2
- 3.1.0
-
-
- javax.xml.bind
- jaxb-api
- 2.1
-
-
- org.codehaus.jackson
- jackson-core-asl
- 1.9.13
-
-
- io.project.kyma.serverless
- serverless-java-sdk
- 0.0.1
- compile
-
-
- io.opentelemetry
- opentelemetry-api
-
-
- io.opentelemetry
- opentelemetry-sdk
-
-
- io.opentelemetry
- opentelemetry-exporter-otlp
-
-
- io.opentelemetry
- opentelemetry-extension-trace-propagators
-
-
- io.opentelemetry
- opentelemetry-semconv
- 1.20.0-alpha
-
-
- org.junit.jupiter
- junit-jupiter
- test
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.1
-
- ${java.source.level}
- ${java.target.level}
- UTF-8
- true
- true
-
-
-
- maven-assembly-plugin
-
-
-
- io.project.kyma.serverless.Main
-
-
-
- jar-with-dependencies
-
- false
-
-
-
- package
-
- single
-
-
-
-
-
-
-
diff --git a/components/runtimes/java17/resources/.gitignore b/components/runtimes/java17/resources/.gitignore
deleted file mode 100644
index ee3c36cb2..000000000
--- a/components/runtimes/java17/resources/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-java17-jvm-alpha.yaml
-java17-jvm-alpha-local.yaml
\ No newline at end of file
diff --git a/components/runtimes/java17/resources/cm.yaml.tpl b/components/runtimes/java17/resources/cm.yaml.tpl
deleted file mode 100644
index 8aba3632e..000000000
--- a/components/runtimes/java17/resources/cm.yaml.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: dockerfile-${RUNTIME_NAME}
- namespace: kyma-system
- labels:
- serverless.kyma-project.io/config: runtime
- serverless.kyma-project.io/runtime: ${RUNTIME_NAME}
-data:
- Dockerfile: |-
-${DOCKERFILE}
diff --git a/components/runtimes/java17/resources/generate-cm.py b/components/runtimes/java17/resources/generate-cm.py
deleted file mode 100644
index e33c6647c..000000000
--- a/components/runtimes/java17/resources/generate-cm.py
+++ /dev/null
@@ -1,25 +0,0 @@
-import os
-import sys
-
-
-indentation = " "
-
-def append_indentation(content):
- content_builder = ""
- for line in content.split("\n"):
- content_builder += (indentation + line+ "\n")
- return content_builder
-
-runtime = os.environ['RUNTIME']
-
-dockerfile_content=""
-for line in sys.stdin:
- dockerfile_content+=line
-
-dockerfile_content= append_indentation(dockerfile_content)
-
-cm_content=""
-with open("resources/cm.yaml.tpl") as cm_tpl_file:
- cm_tpl = cm_tpl_file.read()
- cm_content = cm_tpl.replace("${DOCKERFILE}", dockerfile_content).replace("${RUNTIME_NAME}",runtime)
-print(cm_content,end="")
diff --git a/components/runtimes/java17/resources/generate-dockerfile.py b/components/runtimes/java17/resources/generate-dockerfile.py
deleted file mode 100644
index bb24f699f..000000000
--- a/components/runtimes/java17/resources/generate-dockerfile.py
+++ /dev/null
@@ -1,11 +0,0 @@
-import os
-
-
-dockerfile_file = os.environ['DOCKERFILE']
-base_image = os.environ['BASE_IMAGE']
-dockerfile_content = ""
-with open(dockerfile_file) as dockerfile:
- dockerfile_content = dockerfile.read()
- dockerfile_content = dockerfile_content.replace("${BASE_IMAGE}", base_image)
-
-print(dockerfile_content, end="")
diff --git a/components/runtimes/java17/serverless-java-sdk/Makefile b/components/runtimes/java17/serverless-java-sdk/Makefile
deleted file mode 100644
index 53a41883f..000000000
--- a/components/runtimes/java17/serverless-java-sdk/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-.default=install
-
-.PHONY: install
-install:
- mvn clean package install
\ No newline at end of file
diff --git a/components/runtimes/java17/serverless-java-sdk/pom.xml b/components/runtimes/java17/serverless-java-sdk/pom.xml
deleted file mode 100644
index c6b191a38..000000000
--- a/components/runtimes/java17/serverless-java-sdk/pom.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
- 4.0.0
-
- io.project.kyma.serverless
- serverless-java-sdk
- 0.0.1
- jar
-
-
- 11
- 11
-
-
-
-
- jakarta.ws.rs
- jakarta.ws.rs-api
- 3.1.0
- provided
-
-
- org.glassfish.jersey.core
- jersey-client
- 3.1.0
-
-
- com.fasterxml.jackson.core
- jackson-databind
- 2.14.0
-
-
- io.opentelemetry
- opentelemetry-api
- 1.20.0
-
-
-
\ No newline at end of file
diff --git a/components/runtimes/java17/serverless-java-sdk/src/main/java/io/project/kyma/serverless/sdk/CloudEvent.java b/components/runtimes/java17/serverless-java-sdk/src/main/java/io/project/kyma/serverless/sdk/CloudEvent.java
deleted file mode 100644
index 0e7287894..000000000
--- a/components/runtimes/java17/serverless-java-sdk/src/main/java/io/project/kyma/serverless/sdk/CloudEvent.java
+++ /dev/null
@@ -1,150 +0,0 @@
-package io.project.kyma.serverless.sdk;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.ObjectWriter;
-import io.opentelemetry.api.OpenTelemetry;
-import io.opentelemetry.api.trace.Tracer;
-import io.opentelemetry.context.propagation.TextMapSetter;
-import jakarta.ws.rs.client.Client;
-import jakarta.ws.rs.client.ClientBuilder;
-import jakarta.ws.rs.client.Entity;
-import jakarta.ws.rs.client.Invocation;
-import jakarta.ws.rs.container.ContainerRequestContext;
-import jakarta.ws.rs.core.MediaType;
-import jakarta.ws.rs.core.MultivaluedHashMap;
-import jakarta.ws.rs.core.MultivaluedMap;
-import jakarta.ws.rs.core.Response;
-import org.glassfish.jersey.client.ClientConfig;
-import org.glassfish.jersey.logging.LoggingFeature;
-
-import java.io.IOException;
-import java.net.URI;
-import java.util.Arrays;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-public class CloudEvent {
-
- private static final CloudEventHeaders[] CLOUD_EVENT_HEADERS = {CloudEventHeaders.CE_TYPE,
- CloudEventHeaders.CE_SOURCE,
- CloudEventHeaders.CE_EVENT_TYPE_VERSION,
- CloudEventHeaders.CE_SPEC_VERSION,
- CloudEventHeaders.CE_ID,
- CloudEventHeaders.CE_TIME,};
-
- private enum CloudEventHeaders {
- CE_TYPE("ce-type"), CE_SOURCE("ce-source"), CE_EVENT_TYPE_VERSION("ce-eventtypeversion"),
- CE_SPEC_VERSION("ce-specversion"), CE_TIME("ce-time"), CE_ID("ce-id");
-
- private final String headerName;
-
- public String getHeader() {
- return this.headerName;
- }
-
- CloudEventHeaders(String name) {
- this.headerName = name;
- }
- }
-
- public ContainerRequestContext req;
- public final MultivaluedMap ceHeaders;
-
- public Tracer tracer;
-
- private final URI publishedProxyAddress;
-
- private final OpenTelemetry openTelemetry;
-
- public CloudEvent(ContainerRequestContext req, OpenTelemetry openTelemetry, Tracer tracer, URI publisherAddr) {
- this.req = req;
- this.tracer = tracer;
- this.ceHeaders = extractCloudEventHeaders(req.getHeaders());
- this.openTelemetry = openTelemetry;
- this.publishedProxyAddress = publisherAddr;
- }
-
-
- public ResponseCloudEvent buildResponseCloudEvent(String id, String type, String data) {
- var ceResponse = new ResponseCloudEvent();
- ceResponse.type = type;
- ceResponse.source = getHeaderValue(ceHeaders, CloudEventHeaders.CE_SOURCE);
- ceResponse.eventTypeVersion = getHeaderValue(ceHeaders, CloudEventHeaders.CE_EVENT_TYPE_VERSION);
- ceResponse.specVersion = getHeaderValue(ceHeaders, CloudEventHeaders.CE_SPEC_VERSION);
- ceResponse.id = id;
- ceResponse.data = data;
- ceResponse.dataContentType = resolveDataType(data);
- return ceResponse;
- }
-
- public void publishCloudEvent(ResponseCloudEvent ceEvent) throws IOException, InterruptedException {
- ObjectWriter ow = new ObjectMapper().writer();
- var outBody = ow.writeValueAsBytes(ceEvent.data);
-
- ClientConfig config = new ClientConfig();
- config.register(new LoggingFeature(Logger.getLogger(LoggingFeature.DEFAULT_LOGGER_NAME), Level.INFO, LoggingFeature.Verbosity.PAYLOAD_ANY, 10000));
-
- Client client = ClientBuilder.newClient(config);
-
- Invocation.Builder reqBuilder = client.target(this.publishedProxyAddress).request().
- header("Content-Type", "application/json").
- header(CloudEventHeaders.CE_SPEC_VERSION.getHeader(), ceEvent.specVersion).
- header(CloudEventHeaders.CE_TYPE.getHeader(), ceEvent.type).
- header(CloudEventHeaders.CE_SOURCE.getHeader(), ceEvent.source).
- header(CloudEventHeaders.CE_EVENT_TYPE_VERSION.getHeader(), ceEvent.eventTypeVersion).
- header(CloudEventHeaders.CE_ID.getHeader(), ceEvent.id);
-
- injectHeaderSetter(reqBuilder);
- var res = reqBuilder.post(Entity.json(ceEvent.data));
- if (Response.Status.Family.familyOf(res.getStatus()) != Response.Status.Family.SUCCESSFUL) {
- throw new IOException("Failed to send event. The publisher responded with:" + res.getStatus() + "status code which is not in 2xx successful family");
- }
- }
-
- public Invocation.Builder getTraceableRequestBuilder(String target) {
- Client client = ClientBuilder.newClient();
- Invocation.Builder reqBuilder = client.target(target).request();
- injectHeaderSetter(reqBuilder);
- return reqBuilder;
- }
-
- private void injectHeaderSetter(Invocation.Builder reqBuilder) {
-
- TextMapSetter setter = (carrier, key, value) -> {
- // Insert the context as Header
- System.out.println("Inject->" + key + ":" + value);
- assert carrier != null;
- carrier.header(key, value);
- };
- openTelemetry.getPropagators().getTextMapPropagator().inject(io.opentelemetry.context.Context.current(), reqBuilder, setter);
- }
-
- private static MultivaluedMap extractCloudEventHeaders(MultivaluedMap headers) {
- MultivaluedMap ceHeaders = new MultivaluedHashMap<>();
- Arrays.stream(CLOUD_EVENT_HEADERS).forEach(ceHeader -> ceHeaders.add(ceHeader.getHeader(), getHeaderValue(headers, ceHeader)));
- return ceHeaders;
- }
-
- private static String getHeaderValue(MultivaluedMap headers, CloudEventHeaders ceHeader) {
- String headerValue = "";
- var headerValues = headers.get(ceHeader.getHeader());
- if (headerValues != null && headerValues.size() > 0) {
- headerValue = headerValues.get(0);
- }
- return headerValue;
- }
-
-
- private static MediaType resolveDataType(String data) {
- try {
- final ObjectMapper mapper = new ObjectMapper();
- mapper.readTree(data);
- return MediaType.APPLICATION_JSON_TYPE;
-
- } catch (IOException ignored) {
-
- }
- return MediaType.TEXT_PLAIN_TYPE;
- }
-
-}
diff --git a/components/runtimes/java17/serverless-java-sdk/src/main/java/io/project/kyma/serverless/sdk/Function.java b/components/runtimes/java17/serverless-java-sdk/src/main/java/io/project/kyma/serverless/sdk/Function.java
deleted file mode 100644
index 228f404b8..000000000
--- a/components/runtimes/java17/serverless-java-sdk/src/main/java/io/project/kyma/serverless/sdk/Function.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package io.project.kyma.serverless.sdk;
-
-import jakarta.ws.rs.core.Context;
-import jakarta.ws.rs.core.Response;
-
-
-public interface Function {
- Response main(CloudEvent event, Context context);
-}
diff --git a/components/runtimes/java17/serverless-java-sdk/src/main/java/io/project/kyma/serverless/sdk/ResponseCloudEvent.java b/components/runtimes/java17/serverless-java-sdk/src/main/java/io/project/kyma/serverless/sdk/ResponseCloudEvent.java
deleted file mode 100644
index a8ca69de9..000000000
--- a/components/runtimes/java17/serverless-java-sdk/src/main/java/io/project/kyma/serverless/sdk/ResponseCloudEvent.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package io.project.kyma.serverless.sdk;
-import jakarta.ws.rs.core.MediaType;
-
-public class ResponseCloudEvent {
- public String type;
- public String source;
- public String eventTypeVersion;
- public String specVersion;
- public String id;
- public String data;
- public MediaType dataContentType;
-
-}
diff --git a/components/runtimes/java17/src/main/java/io/project/kyma/serverless/Config.java b/components/runtimes/java17/src/main/java/io/project/kyma/serverless/Config.java
deleted file mode 100644
index 7795a8df4..000000000
--- a/components/runtimes/java17/src/main/java/io/project/kyma/serverless/Config.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package io.project.kyma.serverless;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-
-public class Config {
-
- private static final int DEFAULT_PORT = 8080;
- protected final URI publisherProxyAddr;
- protected final URI tracingCollectorAddr;
- protected int port;
- protected final String podName;
- protected final String serviceNamespace;
-
- protected Config() throws IllegalArgumentException {
- this.publisherProxyAddr = getURIFromEnv("PUBLISHER_PROXY_ADDRESS");
- this.tracingCollectorAddr = getURIFromEnv("TRACE_COLLECTOR_ENDPOINT");
- this.podName = System.getenv("HOSTNAME");
- this.serviceNamespace = System.getenv("SERVICE_NAMESPACE");
- this.port = getNumber("FUNCTION_PORT");
- }
-
- private int getNumber(String envName) {
- int serverPort = DEFAULT_PORT;
- String fnPort = System.getenv(envName);
- if (fnPort != null && fnPort.equals("")) {
- serverPort = Integer.parseInt(fnPort);
- }
- return serverPort;
- }
-
- private URI getURIFromEnv(String envName) throws IllegalArgumentException {
- String envValue = System.getenv(envName);
- if (envValue == null) {
- throw new IllegalArgumentException("Couldn't find env:" + envName);
- }
- try {
- return new URI(envValue);
- } catch (URISyntaxException e) {
- throw new IllegalArgumentException("Couldn't parse env:" + envName + "with value:" + envValue, e);
- }
- }
-}
diff --git a/components/runtimes/java17/src/main/java/io/project/kyma/serverless/JerseyServer.java b/components/runtimes/java17/src/main/java/io/project/kyma/serverless/JerseyServer.java
deleted file mode 100644
index f4f932770..000000000
--- a/components/runtimes/java17/src/main/java/io/project/kyma/serverless/JerseyServer.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package io.project.kyma.serverless;
-
-import io.opentelemetry.api.GlobalOpenTelemetry;
-import io.opentelemetry.api.OpenTelemetry;
-import io.opentelemetry.api.internal.StringUtils;
-import io.opentelemetry.api.trace.Span;
-import io.opentelemetry.api.trace.SpanKind;
-import io.opentelemetry.context.propagation.TextMapGetter;
-import io.project.kyma.serverless.handler.Handler;
-import io.project.kyma.serverless.sdk.CloudEvent;
-import io.project.kyma.serverless.sdk.Function;
-
-import jakarta.ws.rs.*;
-import jakarta.ws.rs.container.ContainerRequestContext;
-import jakarta.ws.rs.core.Context;
-import jakarta.ws.rs.core.MultivaluedMap;
-import jakarta.ws.rs.core.Response;
-import java.net.URI;
-import java.util.logging.Logger;
-
-@Path("/")
-public class JerseyServer {
-
-
- private final Function fn;
-
- private static final Logger logger = Logger.getGlobal();
-
- private final URI publisherProxyAddr;
-
- private final OpenTelemetry openTelemetry;
- private final String svcName;
-
- public JerseyServer(OpenTelemetry openTelemetry, URI publisherProxyAddr, String svcName) {
- this.publisherProxyAddr = publisherProxyAddr;
- this.svcName = svcName;
- this.openTelemetry = openTelemetry;
- this.fn = new Handler();
- }
-
- @GET
- @Path("/healthz")
- public Response healthz(@Context ContainerRequestContext request) {
- return Response.ok("ok").build();
- }
-
- @GET
- public Response home(@Context ContainerRequestContext request) {
- return callUserFunction(request);
- }
-
- @POST
- public Response homePost(@Context ContainerRequestContext request) {
- return callUserFunction(request);
- }
-
- @PUT
- public Response homePut(@Context ContainerRequestContext request) {
- return callUserFunction(request);
- }
-
- @DELETE
- public Response homeDelete(@Context ContainerRequestContext request) {
- return callUserFunction(request);
- }
-
-
- private Response callUserFunction(ContainerRequestContext httpRequest) {
- var tracer = openTelemetry.getTracerProvider().get(svcName);
- var extractedContext = injectPropagatorGetter(httpRequest);
- extractedContext.makeCurrent();
- Span span = null;
- try {
- span = tracer.spanBuilder("request").setSpanKind(SpanKind.SERVER).startSpan();
- span.makeCurrent();
-
- var ceEvent = new CloudEvent(httpRequest, openTelemetry, tracer, this.publisherProxyAddr);
- return this.fn.main(ceEvent, null);
- } finally {
- if (span != null) {
- span.end();
- }
- }
- }
-
- private io.opentelemetry.context.Context injectPropagatorGetter(ContainerRequestContext httpRequest) {
- TextMapGetter getter = new TextMapGetter<>() {
- @Override
- public Iterable keys(ContainerRequestContext requestContext) {
- return requestContext.getHeaders().keySet();
- }
-
- @Override
- public String get(ContainerRequestContext requestContext, String key) {
- String value = getHeaderValue(requestContext.getHeaders(), key);
- if (StringUtils.isNullOrEmpty(value)) {
- return null;
- }
- return value;
- }
- };
- return GlobalOpenTelemetry.get().getPropagators().getTextMapPropagator().extract(io.opentelemetry.context.Context.current(), httpRequest, getter);
- }
-
- private static String getHeaderValue(MultivaluedMap headers, String key) {
- String headerValue = "";
- var headerValues = headers.get(key);
- if (headerValues != null && headerValues.size() > 0) {
- headerValue = headerValues.get(0);
- }
- return headerValue;
- }
-}
-
diff --git a/components/runtimes/java17/src/main/java/io/project/kyma/serverless/Main.java b/components/runtimes/java17/src/main/java/io/project/kyma/serverless/Main.java
deleted file mode 100644
index b46f36776..000000000
--- a/components/runtimes/java17/src/main/java/io/project/kyma/serverless/Main.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package io.project.kyma.serverless;
-
-import io.opentelemetry.api.OpenTelemetry;
-import io.opentelemetry.api.common.Attributes;
-import io.opentelemetry.context.propagation.ContextPropagators;
-import io.opentelemetry.context.propagation.TextMapPropagator;
-import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter;
-import io.opentelemetry.extension.trace.propagation.B3Propagator;
-import io.opentelemetry.sdk.OpenTelemetrySdk;
-import io.opentelemetry.sdk.resources.Resource;
-import io.opentelemetry.sdk.trace.SdkTracerProvider;
-import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
-import io.opentelemetry.semconv.resource.attributes.ResourceAttributes;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
-import org.glassfish.jersey.server.ResourceConfig;
-import org.glassfish.jersey.servlet.ServletContainer;
-
-import java.net.URI;
-import java.util.Arrays;
-import java.util.stream.Collectors;
-
-public class Main {
-
- public Main(Config config) throws Exception {
- String svcName = createSvcName(config.podName, config.serviceNamespace);
-
- var openTelemetry = configureTracing(config.tracingCollectorAddr, svcName);
- Server server = configureServer(config.port, openTelemetry, svcName, config.publisherProxyAddr);
- server.start();
- server.join();
- }
-
- private Server configureServer(int serverPort, OpenTelemetry openTelemetry, String svcName, URI publisherProxyAddr) {
- ResourceConfig resourceConfig = new ResourceConfig();
-
- JerseyServer jerseyServer = new JerseyServer(openTelemetry, publisherProxyAddr, svcName);
- resourceConfig.registerInstances(jerseyServer);
-
- ServletContainer servletContainer = new ServletContainer(resourceConfig);
- ServletHolder sh = new ServletHolder(servletContainer);
-
- ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
- context.addServlet(sh, "/*");
-
- Server server = new Server(serverPort);
- server.setHandler(context);
- return server;
- }
-
- static String createSvcName(String podName, String svcNamespace) {
- if ((podName == null) || (svcNamespace == null)) {
- return "generic-svc";
- }
- // remove generated pods suffix ( two last sections )
- // TODO: createSvcName based on func name, not pod name
- var svcNameBuilder = Arrays.stream(podName.split("-")).limit(2).
- collect(Collectors.joining("-"));
- return String.join(".", svcNameBuilder, svcNamespace);
- }
-
- private OpenTelemetry configureTracing(URI tracingEndpoint, String svcName) {
- Resource resource = Resource.getDefault()
- .merge(Resource.create(Attributes.of(ResourceAttributes.SERVICE_NAME, svcName)));
-
- SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
- .addSpanProcessor(SimpleSpanProcessor.create(OtlpHttpSpanExporter.builder().setEndpoint(tracingEndpoint.toString()).build()))
- .setResource(resource)
- .build();
- TextMapPropagator b3Propagator = B3Propagator.injectingMultiHeaders();
- var sdk = OpenTelemetrySdk.builder().setPropagators(ContextPropagators.create(b3Propagator)).
- setTracerProvider(sdkTracerProvider).
- buildAndRegisterGlobal();
- return sdk;
- }
-
- public static void main(String[] args) throws Exception {
- Config config = new Config();
- new Main(config);
- }
-}
diff --git a/components/runtimes/java17/src/main/java/io/project/kyma/serverless/handler/Handler.java b/components/runtimes/java17/src/main/java/io/project/kyma/serverless/handler/Handler.java
deleted file mode 100644
index 6a9453038..000000000
--- a/components/runtimes/java17/src/main/java/io/project/kyma/serverless/handler/Handler.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package io.project.kyma.serverless.handler;
-
-import jakarta.ws.rs.core.Context;
-import jakarta.ws.rs.core.Response;
-
-import io.project.kyma.serverless.sdk.CloudEvent;
-import io.project.kyma.serverless.sdk.Function;
-
-
-public class Handler implements Function {
-
- @Override
- public Response main(CloudEvent event, Context context) {
- throw new IllegalStateException("Not implemented stub Handler");
- }
-}
diff --git a/components/runtimes/java17/src/main/test/io/project/kyma/serverless/MainTest.java b/components/runtimes/java17/src/main/test/io/project/kyma/serverless/MainTest.java
deleted file mode 100644
index 5bede5318..000000000
--- a/components/runtimes/java17/src/main/test/io/project/kyma/serverless/MainTest.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package io.project.kyma.serverless;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-class MainTest {
-
- @org.junit.jupiter.api.Test
- void createSvcName_Success() {
- //GIVEN
- String svcName = "default";
- String podName = "emitter-qqmds-84dd76fc94-2pnpd";
- String expected = "emitter-qqmds.default";
- //WHEN
- String output = Main.createSvcName(podName, svcName);
- //THEN
- assertEquals(expected, output);
- }
-}
\ No newline at end of file