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)