diff --git a/Dockerfile b/Dockerfile
index b531e2a..2132845 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -16,13 +16,14 @@ ADD src/ /build/src/
ADD Makefile /build
# download dependencies and compile into layer
-RUN ./mvnw -Pgraal compile
+RUN ./mvnw -Pgraal,-no-graal compile
# generate graalvm image into another layer
-RUN ./mvnw -Pgraal package
+RUN ./mvnw -Pgraal,-no-graal package
#FROM debian:buster
FROM scratch
-COPY --from=builder /build/target/wikiProject /wikiproject
+COPY --from=builder /build/target/wiki-project /wikiproject
+#COPY --from=builder /build/target/wiki-project-1.0-SNAPSHOT.jar /wiki-project-1.0-SNAPSHOT.jar
COPY --from=builder /tmp /tmp
ENTRYPOINT ["/wikiproject"]
diff --git a/Makefile b/Makefile
index cd3f555..15014fc 100644
--- a/Makefile
+++ b/Makefile
@@ -26,4 +26,5 @@ docker-graal-build:
docker-graal-run: RUN_PORT=8080
docker-graal-run:
+ echo "$(firstword $(MAKECMDGOALS))"
docker run --rm -p 8080:$(RUN_PORT) docker.registry:5000/wikiproject-native --server.port=$(RUN_PORT)
diff --git a/pom.xml b/pom.xml
index d56e315..eaa06e6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,10 +11,10 @@
2.3.2.RELEASE
- fr.antoine-roux
- wikiProject
+ tk.antoine-roux
+ wiki-project
${revision}
- wikiProject
+ wiki-project
project use wikipedia streaming api https://stream.wikimedia.org/?doc#/Streams/get_v2_stream_test
@@ -42,23 +42,17 @@
org.springframework.boot
spring-boot-starter-web
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
+
@@ -113,6 +107,20 @@
+
+ no-graal
+
+ true
+
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ runtime
+ true
+
+
+
graal
diff --git a/src/main/resources/META-INF/native-image/native-image.properties b/src/main/resources/META-INF/native-image/native-image.properties
deleted file mode 100644
index 3264d5e..0000000
--- a/src/main/resources/META-INF/native-image/native-image.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-Args=\
- -Dspring.native.mode=feature \
- -Dspring.native.verbose=true \
- -Dspring.native.dump-config=/tmp/computed-reflect-config.json \
- -Dspring.native.remove-unused-autoconfig=true
-
-# -H:ReflectionConfigurationResources=${.}/reflect-config.json
-# -Dspring.graal.skip-logback=true
diff --git a/src/main/resources/META-INF/native-image/tk.antoine-roux/wiki-project/native-image.properties b/src/main/resources/META-INF/native-image/tk.antoine-roux/wiki-project/native-image.properties
new file mode 100644
index 0000000..6fe574e
--- /dev/null
+++ b/src/main/resources/META-INF/native-image/tk.antoine-roux/wiki-project/native-image.properties
@@ -0,0 +1,8 @@
+Arg=\
+ --native-image-info \
+ -H:ReflectionConfigurationFiles=/build/target/classes/META-INF/native-image/tk.antoine-roux/wiki-project/reflection-config.json \
+ -Dspring.native.mode=feature \
+ -Dspring.native.verbose=false \
+ -Dspring.native.dump-config=/tmp/computed-reflect-config.json \
+ -Dspring.native.remove-unused-autoconfig=true \
+ -Dspring.graal.skip-logback=false
diff --git a/src/main/resources/META-INF/native-image/reflect-config.json b/src/main/resources/META-INF/native-image/tk.antoine-roux/wiki-project/reflect-config.json
similarity index 99%
rename from src/main/resources/META-INF/native-image/reflect-config.json
rename to src/main/resources/META-INF/native-image/tk.antoine-roux/wiki-project/reflect-config.json
index a1407ea..bfe8fcc 100644
--- a/src/main/resources/META-INF/native-image/reflect-config.json
+++ b/src/main/resources/META-INF/native-image/tk.antoine-roux/wiki-project/reflect-config.json
@@ -10,3 +10,5 @@
"allDeclaredMethods": true
}
]
+
+
diff --git a/trace.md b/trace.md
deleted file mode 100644
index 53b59d4..0000000
--- a/trace.md
+++ /dev/null
@@ -1,133 +0,0 @@
- ____ _ _____ _
- / ___| _ __ _ __(_)_ __ __ _ | ___|__ __ _| |_ _ _ _ __ ___
- \___ \| '_ \| '__| | '_ \ / _` | | |_ / _ \/ _` | __| | | | '__/ _ \
- ___) | |_) | | | | | | | (_| | | _| __/ (_| | |_| |_| | | | __/
- |____/| .__/|_| |_|_| |_|\__, | |_| \___|\__,_|\__|\__,_|_| \___|
- |_| |___/
-
- Feature operating in FEATURE mode
- Removing unused configurations
- Use -Dspring.native.verbose=true on native-image call to see more detailed information from the feature
- [wikiProject:91] (cap): 741.54 ms, 1.18 GB
- WARNING: Could not resolve org.springframework.boot.loader.LaunchedURLClassLoader for reflection configuration.
- Found #6 types in static reflection list to register
- Skipping #6 types not on the classpath
- Attempting proxy registration of #16 proxies
- Skipped registration of #9 proxies - relevant types not on classpath
- [wikiProject:91] setup: 2,324.54 ms, 1.18 GB
- Registering resources - #35 patterns
- Registering resources - #2 bundles
- Processing META-INF/spring.factories files...
- spring.factories processing, problem adding access for key org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer: javax/validation/ValidationException
- Processing spring.factories - ApplicationListener lists #10 application listeners
- Processing spring.factories - PropertySourceLoader lists #2 property source loaders
- spring.factories processing, problem adding access for key org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer: org/springframework/jdbc/CannotGetJdbcConnectionException
- Processing spring.factories - ApplicationListener lists #0 application listeners
- Processing spring.factories - EnableAutoConfiguration lists #127 configurations
- Excluding 102 auto-configurations from spring.factories file
- WARNING: unable to trim META-INF/spring.factories (for example to disable unused auto configurations) because an existing resource-config is directly including it: /build/target/wikiProject-1.0-SNAPSHOT.jar!META-INF/native-image/resource-config.json
- Processing spring.factories - ApplicationListener lists #1 application listeners
- Processing existing META-INF/spring.components files...
- Registered 1 entries
- Configuring initialization time for specific types and packages:
- #88 buildtime-init-classes #23 buildtime-init-packages #33 runtime-init-classes #1 runtime-init-packages
-
- Warning: class initialization of class org.springframework.boot.validation.MessageInterpolatorFactory failed with exception java.lang.NoClassDefFoundError: javax/validation/ValidationException. This class will be initialized at run time because option --allow-incomplete-classpath is used for image building. Use the option --initialize-at-run-time=org.springframework.boot.validation.MessageInterpolatorFactory to explicitly request delayed initialization of this class.
- Number of types dynamically registered for reflective access: #2024
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory.
- WARNING: Could not register reflection metadata for org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidationException.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration. Reason: java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder.
- WARNING: Could not register reflection metadata for org.springframework.web.multipart.commons.CommonsMultipartResolver. Reason: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory.
- WARNING: Could not register reflection metadata for org.springframework.http.ReactiveHttpInputMessage. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Flux.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: org/springframework/jdbc/CannotGetJdbcConnectionException.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/json/bind/Jsonb.
- WARNING: Could not register reflection metadata for org.springframework.http.server.reactive.HttpHandler. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Mono.
- WARNING: Could not register reflection metadata for org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidationException.
- WARNING: Could not register reflection metadata for org.springframework.web.multipart.commons.CommonsMultipartResolver. Reason: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration. Reason: java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder.
- WARNING: Could not register reflection metadata for org.springframework.http.ReactiveHttpInputMessage. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Flux.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: org/springframework/jdbc/CannotGetJdbcConnectionException.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/json/bind/Jsonb.
- WARNING: Could not register reflection metadata for org.springframework.http.server.reactive.HttpHandler. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Mono.
- WARNING: Could not register reflection metadata for org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidationException.
- WARNING: Could not register reflection metadata for org.springframework.web.multipart.commons.CommonsMultipartResolver. Reason: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration. Reason: java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder.
- WARNING: Could not register reflection metadata for org.springframework.http.ReactiveHttpInputMessage. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Flux.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: org/springframework/jdbc/CannotGetJdbcConnectionException.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/json/bind/Jsonb.
- WARNING: Could not register reflection metadata for org.springframework.http.server.reactive.HttpHandler. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Mono.
- Warning: class initialization of class org.springframework.boot.validation.MessageInterpolatorFactory failed with exception java.lang.NoClassDefFoundError: javax/validation/ValidationException. This class will be initialized at run time because option --allow-incomplete-classpath is used for image building. Use the option --initialize-at-run-time=org.springframework.boot.validation.MessageInterpolatorFactory to explicitly request delayed initialization of this class.
- Number of types dynamically registered for reflective access: #2024
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory.
- WARNING: Could not register reflection metadata for org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidationException.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration. Reason: java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder.
- WARNING: Could not register reflection metadata for org.springframework.web.multipart.commons.CommonsMultipartResolver. Reason: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory.
- WARNING: Could not register reflection metadata for org.springframework.http.ReactiveHttpInputMessage. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Flux.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: org/springframework/jdbc/CannotGetJdbcConnectionException.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/json/bind/Jsonb.
- WARNING: Could not register reflection metadata for org.springframework.http.server.reactive.HttpHandler. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Mono.
- WARNING: Could not register reflection metadata for org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidationException.
- WARNING: Could not register reflection metadata for org.springframework.web.multipart.commons.CommonsMultipartResolver. Reason: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration. Reason: java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder.
- WARNING: Could not register reflection metadata for org.springframework.http.ReactiveHttpInputMessage. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Flux.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: org/springframework/jdbc/CannotGetJdbcConnectionException.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/json/bind/Jsonb.
- WARNING: Could not register reflection metadata for org.springframework.http.server.reactive.HttpHandler. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Mono.
- WARNING: Could not register reflection metadata for org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidationException.
- WARNING: Could not register reflection metadata for org.springframework.web.multipart.commons.CommonsMultipartResolver. Reason: java.lang.NoClassDefFoundError: org/apache/commons/fiWARNING: Could not register reflection metadata for org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidationException.
- WARNING: Could not register reflection metadata for org.springframework.web.multipart.commons.CommonsMultipartResolver. Reason: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration. Reason: java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder.
- WARNING: Could not register reflection metadata for org.springframework.http.ReactiveHttpInputMessage. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Flux.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: org/springframework/jdbc/CannotGetJdbcConnectionException.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/json/bind/Jsonb.
- WARNING: Could not register reflection metadata for org.springframework.http.server.reactive.HttpHandler. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Mono.
- WARNING: Could not register reflection metadata for org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidationException.
- WARNING: Could not register reflection metadata for org.springframework.web.multipart.commons.CommonsMultipartResolver. Reason: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration. Reason: java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder.
- WARNING: Could not register reflection metadata for org.springframework.http.ReactiveHttpInputMessage. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Flux.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer. Reason: java.lang.NoClassDefFoundError: org/springframework/jdbc/CannotGetJdbcConnectionException.
- WARNING: Could not register reflection metadata for org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration. Reason: java.lang.NoClassDefFoundError: javax/json/bind/Jsonb.
- WARNING: Could not register reflection metadata for org.springframework.http.server.reactive.HttpHandler. Reason: java.lang.NoClassDefFoundError: reactor/core/publisher/Mono.
- [wikiProject:91] (clinit): 6,528.65 ms, 2.67 GB
- [wikiProject:91] (typeflow): 331,780.47 ms, 2.67 GB
- [wikiProject:91] (objects): 128,127.89 ms, 2.67 GB
- [wikiProject:91] (features): 8,933.99 ms, 2.67 GB
- [wikiProject:91] analysis: 485,228.58 ms, 2.67 GB
- [wikiProject:91] universe: 17,923.31 ms, 2.67 GB
- [wikiProject:91] (parse): 10,750.64 ms, 2.13 GB
- [wikiProject:91] (inline): 11,753.82 ms, 2.67 GB
- [wikiProject:91] (compile): 56,270.16 ms, 2.71 GB
- [wikiProject:91] compile: 81,957.83 ms, 2.71 GB
- [wikiProject:91] image: 9,000.77 ms, 2.48 GB
- [wikiProject:91] write: 1,158.10 ms, 2.48 GB
- [wikiProject:91] [total]: 605,656.30 ms, 2.48 GB
- [INFO]
- [INFO] --- spring-boot-maven-plugin:2.3.2.RELEASE:repackage (repackage) @ wikiProject ---
- [INFO] Replacing main artifact with repackaged archive
- [INFO] ------------------------------------------------------------------------
- [INFO] BUILD SUCCESS
- [INFO] ------------------------------------------------------------------------
- [INFO] Total time: 10:40 min
- [INFO] Finished at: 2020-08-17T22:31:28Z
- [INFO] ------------------------------------------------------------------------
- Removing intermediate container a8338a0f8da1
- ---> 8102c76cc125
- Step 12/14 : FROM debian:buster
- buster: Pulling from library/debian
- d6ff36c9ec48: Pull complete
- Digest: sha256:1e74c92df240634a39d050a5e23fb18f45df30846bb222f543414da180b47a5d
- Status: Downloaded newer image for debian:buster
- ---> ee11c54e6bb7
- Step 13/14 : COPY --from=builder /build/target/wikiProject /wikiproject
- ---> a214080a74d7
- Step 14/14 : ENTRYPOINT ["/wikiproject"]
- ---> Running in ae1caf05bf0b
- Removing intermediate container ae1caf05bf0b
- ---> 163f952c5bba
- Successfully built 163f952c5bba
- Successfully tagged docker.registry:5000/wikiproject-native:latest