diff --git a/.prow/config.yaml b/.prow/config.yaml index 0c0e979b10d..e947f440189 100644 --- a/.prow/config.yaml +++ b/.prow/config.yaml @@ -66,7 +66,7 @@ presubmits: always_run: true spec: containers: - - image: maven:3.6-jdk-8 + - image: maven:3.6-jdk-11 command: [".prow/scripts/test-core-ingestion.sh"] resources: requests: @@ -78,7 +78,7 @@ presubmits: always_run: true spec: containers: - - image: maven:3.6-jdk-8 + - image: maven:3.6-jdk-11 command: [".prow/scripts/test-serving.sh"] - name: test-java-sdk @@ -86,7 +86,7 @@ presubmits: always_run: true spec: containers: - - image: maven:3.6-jdk-8 + - image: maven:3.6-jdk-11 command: [".prow/scripts/test-java-sdk.sh"] - name: test-python-sdk @@ -110,7 +110,7 @@ presubmits: always_run: true spec: containers: - - image: maven:3.6-jdk-8 + - image: maven:3.6-jdk-11 command: [".prow/scripts/test-end-to-end.sh"] resources: requests: @@ -126,7 +126,7 @@ presubmits: secret: secretName: feast-service-account containers: - - image: maven:3.6-jdk-8 + - image: maven:3.6-jdk-11 command: [".prow/scripts/test-end-to-end-batch.sh"] resources: requests: @@ -167,7 +167,7 @@ postsubmits: decorate: true spec: containers: - - image: maven:3.6-jdk-8 + - image: maven:3.6-jdk-11 command: - bash - -c diff --git a/core/pom.xml b/core/pom.xml index e1567ae8fe3..720f80a8a9b 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -197,5 +197,11 @@ spring-boot-test-autoconfigure test + + + javax.xml.bind + jaxb-api + + diff --git a/core/src/main/java/feast/core/util/PipelineUtil.java b/core/src/main/java/feast/core/util/PipelineUtil.java index ef1b50d8c9a..71cbc892bd1 100644 --- a/core/src/main/java/feast/core/util/PipelineUtil.java +++ b/core/src/main/java/feast/core/util/PipelineUtil.java @@ -24,7 +24,9 @@ import java.net.URL; import java.net.URLClassLoader; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; public class PipelineUtil { @@ -45,12 +47,7 @@ public class PipelineUtil { public static List detectClassPathResourcesToStage(ClassLoader classLoader) throws IOException { if (!(classLoader instanceof URLClassLoader)) { - String message = - String.format( - "Unable to use ClassLoader to detect classpath elements. " - + "Current ClassLoader is %s, only URLClassLoaders are supported.", - classLoader); - throw new IllegalArgumentException(message); + return getClasspathFiles(); } List files = new ArrayList<>(); @@ -69,4 +66,11 @@ public static List detectClassPathResourcesToStage(ClassLoader classLoad } return files; } + + private static List getClasspathFiles() { + return Arrays.stream(System.getProperty("java.class.path").split(File.pathSeparator)) + .map(entry -> new File(entry).getPath()) + .collect(Collectors.toList()); + } + } diff --git a/datatypes/java/pom.xml b/datatypes/java/pom.xml index a6dfa8e345a..efda2e8ba31 100644 --- a/datatypes/java/pom.xml +++ b/datatypes/java/pom.xml @@ -68,5 +68,11 @@ io.grpc grpc-services + + + javax.annotation + javax.annotation-api + + diff --git a/docs/contributing.md b/docs/contributing.md index 38caffd654b..702a58f6c55 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -18,7 +18,7 @@ The main components of Feast are: **Pre-requisites** -* Java SDK version 8 +* Java SE Development Kit 11 * Python version 3.6 \(or above\) and pip * Access to Postgres database \(version 11 and above\) * Access to [Redis](https://redis.io/topics/quickstart) instance \(tested on version 5.x\) diff --git a/infra/docker/core/Dockerfile b/infra/docker/core/Dockerfile index c4cfe34b71b..8f82e69f6af 100644 --- a/infra/docker/core/Dockerfile +++ b/infra/docker/core/Dockerfile @@ -2,12 +2,12 @@ # Build stage 1: Builder # ============================================================ -FROM maven:3.6-jdk-8-slim as builder +FROM maven:3.6-jdk-11-slim as builder ARG REVISION=dev COPY . /build WORKDIR /build # -# Setting Maven repository .m2 directory relative to /build folder gives the +# Setting Maven repository .m2 directory relative to /build folder gives the # user to optionally use cached repository when building the image by copying # the existing .m2 directory to $FEAST_REPO_ROOT/.m2 # @@ -29,7 +29,7 @@ RUN apt-get -qq update && apt-get -y install unar && \ # Build stage 2: Production # ============================================================ -FROM openjdk:8-jre as production +FROM openjdk:11-jre as production ARG REVISION=dev COPY --from=builder /build/core/target/feast-core-$REVISION.jar /opt/feast/feast-core.jar COPY --from=builder /build/core/target/feast-core-$REVISION /opt/feast/feast-core diff --git a/infra/docker/core/Dockerfile.dev b/infra/docker/core/Dockerfile.dev index 34fb63f1b56..3903badd712 100644 --- a/infra/docker/core/Dockerfile.dev +++ b/infra/docker/core/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM openjdk:8-jre +FROM openjdk:11-jre ARG REVISION=dev ADD $PWD/core/target/feast-core-$REVISION.jar /opt/feast/feast-core.jar CMD ["java",\ diff --git a/infra/docker/serving/Dockerfile b/infra/docker/serving/Dockerfile index 3517183d782..48ca18462ac 100644 --- a/infra/docker/serving/Dockerfile +++ b/infra/docker/serving/Dockerfile @@ -2,12 +2,12 @@ # Build stage 1: Builder # ============================================================ -FROM maven:3.6-jdk-8-slim as builder +FROM maven:3.6-jdk-11-slim as builder ARG REVISION=dev COPY . /build WORKDIR /build # -# Setting Maven repository .m2 directory relative to /build folder gives the +# Setting Maven repository .m2 directory relative to /build folder gives the # user to optionally use cached repository when building the image by copying # the existing .m2 directory to $FEAST_REPO_ROOT/.m2 # @@ -19,10 +19,10 @@ RUN mvn --also-make --projects serving -Drevision=$REVISION \ # Build stage 2: Production # ============================================================ -FROM openjdk:8-jre-alpine as production +FROM openjdk:11-jre-alpine as production ARG REVISION=dev # -# Download grpc_health_probe to run health check for Feast Serving +# Download grpc_health_probe to run health check for Feast Serving # https://kubernetes.io/blog/2018/10/01/health-checking-grpc-servers-on-kubernetes/ # RUN wget -q https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/v0.3.1/grpc_health_probe-linux-amd64 \ diff --git a/infra/docker/serving/Dockerfile.dev b/infra/docker/serving/Dockerfile.dev index 74b7d0ba9be..2075061f98a 100644 --- a/infra/docker/serving/Dockerfile.dev +++ b/infra/docker/serving/Dockerfile.dev @@ -1,7 +1,7 @@ -FROM openjdk:8-jre-alpine as production +FROM openjdk:11-jre-alpine as production ARG REVISION=dev # -# Download grpc_health_probe to run health check for Feast Serving +# Download grpc_health_probe to run health check for Feast Serving # https://kubernetes.io/blog/2018/10/01/health-checking-grpc-servers-on-kubernetes/ # RUN wget -q https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/v0.3.1/grpc_health_probe-linux-amd64 \ diff --git a/pom.xml b/pom.xml index 821d3b72321..8e4ed7d459a 100644 --- a/pom.xml +++ b/pom.xml @@ -298,6 +298,18 @@ pom import + + + javax.xml.bind + jaxb-api + 2.3.1 + + + javax.annotation + javax.annotation-api + 1.3.2 + + @@ -378,8 +390,7 @@ maven-compiler-plugin 3.8.1 - 1.8 - 1.8 + 11 -Xlint:all @@ -392,6 +403,13 @@ org.apache.maven.plugins maven-enforcer-plugin 3.0.0-M2 + + + org.codehaus.mojo + extra-enforcer-rules + 1.2 + + valid-build-environment @@ -401,10 +419,10 @@ - [3.5,4.0) + [3.6,4.0) - [1.8,1.9) + [1.8,11.1)