Ydoc native image (#10783)

close #10757

Changelog:
- add: native-image configuration to the `ydoc-server` project
- add: native-image overrides for loom executors replacing them with platform threads
- update: Helidon `4.1.2`
- fix: issues related to the native-image build
This commit is contained in:
Dmitry Bushev 2024-10-31 22:57:50 +03:00 committed by Sergei Garin
parent c0630a5aee
commit 86a5b5d435
No known key found for this signature in database
199 changed files with 993 additions and 412 deletions

View File

@ -473,7 +473,7 @@ val commons = Seq(
// === Helidon ================================================================
val jakartaVersion = "2.0.1"
val helidonVersion = "4.0.8"
val helidonVersion = "4.1.2"
val helidon = Seq(
"io.helidon" % "helidon" % helidonVersion,
"io.helidon.builder" % "helidon-builder-api" % helidonVersion,
@ -1879,7 +1879,7 @@ lazy val `ydoc-server` = project
.enablePlugins(JPMSPlugin)
.configs(Test)
.settings(
frgaalJavaCompilerSetting,
customFrgaalJavaCompilerSettings("21"),
javaModuleName := "org.enso.ydoc",
Compile / exportJars := true,
crossPaths := false,
@ -1897,8 +1897,9 @@ lazy val `ydoc-server` = project
),
libraryDependencies ++= Seq(
"org.graalvm.truffle" % "truffle-api" % graalMavenPackagesVersion % "provided",
"org.graalvm.polyglot" % "inspect" % graalMavenPackagesVersion % "runtime",
"org.graalvm.polyglot" % "js" % graalMavenPackagesVersion % "runtime",
"org.graalvm.sdk" % "nativeimage" % graalMavenPackagesVersion % "provided",
"org.graalvm.polyglot" % "inspect-community" % graalMavenPackagesVersion % "runtime",
"org.graalvm.polyglot" % "js-community" % graalMavenPackagesVersion % "runtime",
"org.slf4j" % "slf4j-api" % slf4jVersion,
"io.helidon.webclient" % "helidon-webclient-websocket" % helidonVersion,
"io.helidon.webserver" % "helidon-webserver-websocket" % helidonVersion,
@ -1950,9 +1951,25 @@ lazy val `ydoc-server` = project
)
.taskValue
)
.settings(
NativeImage.smallJdk := None,
NativeImage.additionalCp := Seq.empty,
rebuildNativeImage := NativeImage
.buildNativeImage(
"ydoc",
staticOnLinux = false,
mainClass = Some("org.enso.ydoc.Main")
)
.value,
buildNativeImage := NativeImage
.incrementalNativeImageBuild(
rebuildNativeImage,
"ydoc"
)
.value
)
.dependsOn(`syntax-rust-definition`)
.dependsOn(`logging-service-logback`)
.dependsOn(`profiling-utils`)
lazy val `persistance` = (project in file("lib/java/persistance"))
.enablePlugins(JPMSPlugin)

View File

@ -208,162 +208,162 @@ Copyright notices related to this dependency can be found in the directory `io.g
'helidon-builder-api', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.builder.helidon-builder-api-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.builder.helidon-builder-api-4.1.2`.
'helidon-common-features', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.features.helidon-common-features-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.features.helidon-common-features-4.1.2`.
'helidon-common-features-api', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.features.helidon-common-features-api-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.features.helidon-common-features-api-4.1.2`.
'helidon-common', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-4.1.2`.
'helidon-common-buffers', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-buffers-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-buffers-4.1.2`.
'helidon-common-config', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-config-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-config-4.1.2`.
'helidon-common-configurable', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-configurable-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-configurable-4.1.2`.
'helidon-common-context', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-context-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-context-4.1.2`.
'helidon-common-key-util', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-key-util-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-key-util-4.1.2`.
'helidon-common-mapper', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-mapper-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-mapper-4.1.2`.
'helidon-common-media-type', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-media-type-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-media-type-4.1.2`.
'helidon-common-parameters', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-parameters-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-parameters-4.1.2`.
'helidon-common-security', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-security-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-security-4.1.2`.
'helidon-common-socket', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-socket-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-socket-4.1.2`.
'helidon-common-task', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-task-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-task-4.1.2`.
'helidon-common-tls', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-tls-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-tls-4.1.2`.
'helidon-common-types', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-types-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-types-4.1.2`.
'helidon-common-uri', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-uri-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-uri-4.1.2`.
'helidon-config', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.config.helidon-config-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.config.helidon-config-4.1.2`.
'helidon', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.helidon-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.helidon-4.1.2`.
'helidon-http-encoding', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.http.encoding.helidon-http-encoding-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.http.encoding.helidon-http-encoding-4.1.2`.
'helidon-http', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.http.helidon-http-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.http.helidon-http-4.1.2`.
'helidon-http-media', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.http.media.helidon-http-media-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.http.media.helidon-http-media-4.1.2`.
'helidon-inject-api', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.inject.helidon-inject-api-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.inject.helidon-inject-api-4.1.2`.
'helidon-logging-common', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.logging.helidon-logging-common-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.logging.helidon-logging-common-4.1.2`.
'helidon-webclient', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-4.1.2`.
'helidon-webclient-api', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-api-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-api-4.1.2`.
'helidon-webclient-http1', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-http1-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-http1-4.1.2`.
'helidon-webclient-websocket', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-websocket-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-websocket-4.1.2`.
'helidon-webserver', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webserver.helidon-webserver-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webserver.helidon-webserver-4.1.2`.
'helidon-webserver-websocket', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webserver.helidon-webserver-websocket-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webserver.helidon-webserver-websocket-4.1.2`.
'helidon-websocket', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.websocket.helidon-websocket-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.websocket.helidon-websocket-4.1.2`.
'directory-watcher', licensed under the Apache-2.0, is distributed with the engine.

View File

@ -7,3 +7,5 @@ Copyright (c) 2022 Oracle and/or its affiliates.
Copyright (c) 2022, 2023 Oracle and/or its affiliates.
Copyright (c) 2022, 2024 Oracle and/or its affiliates.
Copyright (c) 2024 Oracle and/or its affiliates.

View File

@ -1,16 +1,29 @@
Copyright (c) 2017, 2021 Oracle and/or its affiliates.
Copyright (c) 2017, 2024 Oracle and/or its affiliates.
Copyright (c) 2017, 2022 Oracle and/or its affiliates.
Copyright (c) 2017, 2023 Oracle and/or its affiliates.
Copyright (c) 2017, 2024 Oracle and/or its affiliates.
Copyright (c) 2018, 2021 Oracle and/or its affiliates.
Copyright (c) 2018, 2024 Oracle and/or its affiliates.
Copyright (c) 2019, 2020 Oracle and/or its affiliates.
Copyright (c) 2019, 2021 Oracle and/or its affiliates.
Copyright (c) 2019, 2022 Oracle and/or its affiliates.
Copyright (c) 2019, 2023 Oracle and/or its affiliates.
Copyright (c) 2020 Oracle and/or its affiliates.
Copyright (c) 2021 Oracle and/or its affiliates.
Copyright (c) 2021, 2023 Oracle and/or its affiliates.
Copyright (c) 2022 Oracle and/or its affiliates.
Copyright (c) 2023 Oracle and/or its affiliates.
Copyright (c) 2024 Oracle and/or its affiliates.

View File

@ -16,6 +16,10 @@ Copyright (c) 2022 Oracle and/or its affiliates.
Copyright (c) 2022, 2023 Oracle and/or its affiliates.
Copyright (c) 2022, 2024 Oracle and/or its affiliates.
Copyright (c) 2023 Oracle and/or its affiliates.
Copyright (c) 2023, 2024 Oracle and/or its affiliates.
Copyright (c) 2024 Oracle and/or its affiliates.

View File

@ -2,8 +2,6 @@ Copyright (c) 2019, 2020 Oracle and/or its affiliates.
Copyright (c) 2019, 2021 Oracle and/or its affiliates.
Copyright (c) 2019, 2022 Oracle and/or its affiliates.
Copyright (c) 2019, 2023 Oracle and/or its affiliates.
Copyright (c) 2019, 2024 Oracle and/or its affiliates.

View File

@ -4,8 +4,6 @@ Copyright (c) 2022, 2023 Oracle and/or its affiliates.
Copyright (c) 2022, 2024 Oracle and/or its affiliates.
Copyright (c) 2023 Oracle and/or its affiliates.
Copyright (c) 2023, 2024 Oracle and/or its affiliates.
Copyright (c) 2024 Oracle and/or its affiliates.

View File

@ -18,6 +18,8 @@ Copyright (c) 2019, 2021 Oracle and/or its affiliates.
Copyright (c) 2019, 2022 Oracle and/or its affiliates.
Copyright (c) 2019, 2024 Oracle and/or its affiliates.
Copyright (c) 2020 Oracle and/or its affiliates.
Copyright (c) 2020, 2021 Oracle and/or its affiliates.
@ -34,6 +36,8 @@ Copyright (c) 2021, 2023 Oracle and/or its affiliates.
Copyright (c) 2022, 2023 Oracle and/or its affiliates.
Copyright (c) 2022, 2024 Oracle and/or its affiliates.
Copyright (c) 2023 Oracle and/or its affiliates.
Copyright (c) 2024 Oracle and/or its affiliates.

View File

@ -7,3 +7,5 @@ Copyright (c) 2020, 2022 Oracle and/or its affiliates.
Copyright (c) 2020, 2023 Oracle and/or its affiliates.
Copyright (c) 2020, 2024 Oracle and/or its affiliates.
Copyright (c) 2024 Oracle and/or its affiliates.

View File

@ -1,3 +1,5 @@
<artifactId>helidon-codegen-helidon-copyright</artifactId>
Copyright (c) 2022, 2024 Oracle and/or its affiliates.
Copyright (c) 2023 Oracle and/or its affiliates.

View File

@ -0,0 +1,11 @@
<artifactId>helidon-codegen-helidon-copyright</artifactId>
Copyright (c) 2022, 2023 Oracle and/or its affiliates.
Copyright (c) 2022, 2024 Oracle and/or its affiliates.
Copyright (c) 2023 Oracle and/or its affiliates.
Copyright (c) 2023, 2024 Oracle and/or its affiliates.
Copyright (c) 2024 Oracle and/or its affiliates.

View File

@ -183,162 +183,162 @@ Copyright notices related to this dependency can be found in the directory `io.g
'helidon-builder-api', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.builder.helidon-builder-api-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.builder.helidon-builder-api-4.1.2`.
'helidon-common-features', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.features.helidon-common-features-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.features.helidon-common-features-4.1.2`.
'helidon-common-features-api', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.features.helidon-common-features-api-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.features.helidon-common-features-api-4.1.2`.
'helidon-common', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-4.1.2`.
'helidon-common-buffers', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-buffers-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-buffers-4.1.2`.
'helidon-common-config', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-config-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-config-4.1.2`.
'helidon-common-configurable', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-configurable-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-configurable-4.1.2`.
'helidon-common-context', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-context-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-context-4.1.2`.
'helidon-common-key-util', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-key-util-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-key-util-4.1.2`.
'helidon-common-mapper', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-mapper-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-mapper-4.1.2`.
'helidon-common-media-type', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-media-type-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-media-type-4.1.2`.
'helidon-common-parameters', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-parameters-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-parameters-4.1.2`.
'helidon-common-security', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-security-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-security-4.1.2`.
'helidon-common-socket', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-socket-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-socket-4.1.2`.
'helidon-common-task', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-task-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-task-4.1.2`.
'helidon-common-tls', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-tls-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-tls-4.1.2`.
'helidon-common-types', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-types-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-types-4.1.2`.
'helidon-common-uri', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-uri-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-uri-4.1.2`.
'helidon-config', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.config.helidon-config-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.config.helidon-config-4.1.2`.
'helidon', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.helidon-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.helidon-4.1.2`.
'helidon-http-encoding', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.http.encoding.helidon-http-encoding-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.http.encoding.helidon-http-encoding-4.1.2`.
'helidon-http', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.http.helidon-http-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.http.helidon-http-4.1.2`.
'helidon-http-media', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.http.media.helidon-http-media-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.http.media.helidon-http-media-4.1.2`.
'helidon-inject-api', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.inject.helidon-inject-api-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.inject.helidon-inject-api-4.1.2`.
'helidon-logging-common', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.logging.helidon-logging-common-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.logging.helidon-logging-common-4.1.2`.
'helidon-webclient', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-4.1.2`.
'helidon-webclient-api', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-api-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-api-4.1.2`.
'helidon-webclient-http1', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-http1-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-http1-4.1.2`.
'helidon-webclient-websocket', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-websocket-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-websocket-4.1.2`.
'helidon-webserver', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webserver.helidon-webserver-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webserver.helidon-webserver-4.1.2`.
'helidon-webserver-websocket', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webserver.helidon-webserver-websocket-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webserver.helidon-webserver-websocket-4.1.2`.
'helidon-websocket', licensed under the Apache 2.0, is distributed with the project-manager.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.websocket.helidon-websocket-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.websocket.helidon-websocket-4.1.2`.
'jakarta.inject-api', licensed under the The Apache Software License, Version 2.0, is distributed with the project-manager.

View File

@ -7,3 +7,5 @@ Copyright (c) 2022 Oracle and/or its affiliates.
Copyright (c) 2022, 2023 Oracle and/or its affiliates.
Copyright (c) 2022, 2024 Oracle and/or its affiliates.
Copyright (c) 2024 Oracle and/or its affiliates.

View File

@ -2,8 +2,6 @@ Copyright (c) 2017, 2021 Oracle and/or its affiliates.
Copyright (c) 2017, 2022 Oracle and/or its affiliates.
Copyright (c) 2017, 2023 Oracle and/or its affiliates.
Copyright (c) 2017, 2024 Oracle and/or its affiliates.
Copyright (c) 2018, 2021 Oracle and/or its affiliates.

View File

@ -16,6 +16,10 @@ Copyright (c) 2022 Oracle and/or its affiliates.
Copyright (c) 2022, 2023 Oracle and/or its affiliates.
Copyright (c) 2022, 2024 Oracle and/or its affiliates.
Copyright (c) 2023 Oracle and/or its affiliates.
Copyright (c) 2023, 2024 Oracle and/or its affiliates.
Copyright (c) 2024 Oracle and/or its affiliates.

View File

@ -2,8 +2,6 @@ Copyright (c) 2019, 2020 Oracle and/or its affiliates.
Copyright (c) 2019, 2021 Oracle and/or its affiliates.
Copyright (c) 2019, 2022 Oracle and/or its affiliates.
Copyright (c) 2019, 2023 Oracle and/or its affiliates.
Copyright (c) 2019, 2024 Oracle and/or its affiliates.

View File

@ -1,7 +0,0 @@
Copyright (c) 2022, 2023 Oracle and/or its affiliates.
Copyright (c) 2022, 2024 Oracle and/or its affiliates.
Copyright (c) 2023 Oracle and/or its affiliates.
Copyright (c) 2023, 2024 Oracle and/or its affiliates.

View File

@ -4,8 +4,6 @@ Copyright (c) 2022, 2023 Oracle and/or its affiliates.
Copyright (c) 2022, 2024 Oracle and/or its affiliates.
Copyright (c) 2023 Oracle and/or its affiliates.
Copyright (c) 2023, 2024 Oracle and/or its affiliates.
Copyright (c) 2024 Oracle and/or its affiliates.

View File

@ -18,6 +18,8 @@ Copyright (c) 2019, 2021 Oracle and/or its affiliates.
Copyright (c) 2019, 2022 Oracle and/or its affiliates.
Copyright (c) 2019, 2024 Oracle and/or its affiliates.
Copyright (c) 2020 Oracle and/or its affiliates.
Copyright (c) 2020, 2021 Oracle and/or its affiliates.
@ -34,6 +36,8 @@ Copyright (c) 2021, 2023 Oracle and/or its affiliates.
Copyright (c) 2022, 2023 Oracle and/or its affiliates.
Copyright (c) 2022, 2024 Oracle and/or its affiliates.
Copyright (c) 2023 Oracle and/or its affiliates.
Copyright (c) 2024 Oracle and/or its affiliates.

View File

@ -7,3 +7,5 @@ Copyright (c) 2020, 2022 Oracle and/or its affiliates.
Copyright (c) 2020, 2023 Oracle and/or its affiliates.
Copyright (c) 2020, 2024 Oracle and/or its affiliates.
Copyright (c) 2024 Oracle and/or its affiliates.

View File

@ -0,0 +1,9 @@
Copyright (c) 2022, 2023 Oracle and/or its affiliates.
Copyright (c) 2022, 2024 Oracle and/or its affiliates.
Copyright (c) 2023 Oracle and/or its affiliates.
Copyright (c) 2023, 2024 Oracle and/or its affiliates.
Copyright (c) 2024 Oracle and/or its affiliates.

View File

@ -1,7 +0,0 @@
Copyright (c) 2022, 2023 Oracle and/or its affiliates.
Copyright (c) 2022, 2024 Oracle and/or its affiliates.
Copyright (c) 2023 Oracle and/or its affiliates.
Copyright (c) 2023, 2024 Oracle and/or its affiliates.

View File

@ -3,10 +3,10 @@ module org.enso.ydoc {
requires io.helidon.webclient.websocket;
requires io.helidon.webserver;
requires io.helidon.webserver.websocket;
requires org.enso.profiling;
requires org.enso.syntax;
requires org.graalvm.polyglot;
requires org.slf4j;
requires static org.graalvm.nativeimage;
opens org.enso.ydoc.polyfill.web;

View File

@ -16,8 +16,6 @@ public class Main {
"helidon.serialFilter.pattern",
"javax.management.**;java.lang.**;java.rmi.**;javax.security.auth.Subject;!*");
Sampling.init();
var ydocHost = System.getenv(ENSO_YDOC_HOST);
var ydocPort = System.getenv(ENSO_YDOC_PORT);

View File

@ -1,39 +0,0 @@
package org.enso.ydoc;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.enso.profiling.sampler.MethodsSampler;
import org.enso.profiling.sampler.OutputStreamSampler;
public final class Sampling {
private static final String SAMPLING_EXT = ".npss";
private Sampling() {}
public static void init() throws FileNotFoundException {
var samplingPath = System.getProperty("sampling");
if (samplingPath != null) {
if (!samplingPath.endsWith(SAMPLING_EXT)) {
samplingPath = samplingPath + SAMPLING_EXT;
}
var sampler = OutputStreamSampler.ofFile(new File(samplingPath));
startSampling(sampler);
}
}
private static void startSampling(MethodsSampler sampler) {
sampler.start();
Runtime.getRuntime()
.addShutdownHook(
new Thread(
() -> {
try {
sampler.stop();
} catch (IOException e) {
throw new RuntimeException(e);
}
}));
}
}

View File

@ -1,20 +0,0 @@
package org.enso.ydoc.polyfill;
import org.enso.ydoc.Polyfill;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Source;
public abstract class PolyfillBase implements Polyfill {
private final String resourceName;
protected PolyfillBase(String resourceName) {
this.resourceName = resourceName;
}
@Override
public final void initialize(Context ctx) {
Source jsSource = Source.newBuilder("js", getClass().getResource(resourceName)).buildLiteral();
ctx.eval(jsSource).execute(this);
}
}

View File

@ -1,7 +1,9 @@
package org.enso.ydoc.polyfill.web;
import org.enso.ydoc.Polyfill;
import org.enso.ydoc.polyfill.Arguments;
import org.enso.ydoc.polyfill.PolyfillBase;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Source;
import org.graalvm.polyglot.Value;
import org.graalvm.polyglot.proxy.ProxyExecutable;
import org.slf4j.Logger;
@ -12,13 +14,17 @@ import org.slf4j.LoggerFactory;
* href="https://nodejs.org/api/globals.html#class-abortcontroller">AbortController</a> Node.js
* interface.
*/
final class AbortController extends PolyfillBase implements ProxyExecutable {
final class AbortController implements Polyfill, ProxyExecutable {
private static final Logger log = LoggerFactory.getLogger(AbortController.class);
private static final String ABORT_CONTROLLER_JS = "abort-controller.js";
AbortController() {
super(ABORT_CONTROLLER_JS);
@Override
public void initialize(Context ctx) {
Source jsSource =
Source.newBuilder("js", getClass().getResource(ABORT_CONTROLLER_JS)).buildLiteral();
ctx.eval(jsSource).execute(this);
}
@Override

View File

@ -1,15 +1,17 @@
package org.enso.ydoc.polyfill.web;
import java.util.UUID;
import org.enso.ydoc.Polyfill;
import org.enso.ydoc.polyfill.Arguments;
import org.enso.ydoc.polyfill.PolyfillBase;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Source;
import org.graalvm.polyglot.Value;
import org.graalvm.polyglot.proxy.ProxyExecutable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** Implements the <a href="https://nodejs.org/api/crypto.html">Crypto</a> Node.js interface. */
final class Crypto extends PolyfillBase implements ProxyExecutable {
final class Crypto implements Polyfill, ProxyExecutable {
private static final Logger log = LoggerFactory.getLogger(Crypto.class);
@ -17,8 +19,11 @@ final class Crypto extends PolyfillBase implements ProxyExecutable {
private static final String CRYPTO_JS = "crypto.js";
Crypto() {
super(CRYPTO_JS);
@Override
public void initialize(Context ctx) {
Source jsSource = Source.newBuilder("js", getClass().getResource(CRYPTO_JS)).buildLiteral();
ctx.eval(jsSource).execute(this);
}
@Override

View File

@ -4,8 +4,10 @@ import java.util.Arrays;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import org.enso.ydoc.Polyfill;
import org.enso.ydoc.polyfill.Arguments;
import org.enso.ydoc.polyfill.PolyfillBase;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Source;
import org.graalvm.polyglot.Value;
import org.graalvm.polyglot.proxy.ProxyExecutable;
import org.slf4j.Logger;
@ -15,7 +17,7 @@ import org.slf4j.LoggerFactory;
* Implements the <a href="https://nodejs.org/api/events.html#class-eventemitter">EventEmitter</a>
* Node.js interface.
*/
final class EventEmitter extends PolyfillBase implements ProxyExecutable {
final class EventEmitter implements Polyfill, ProxyExecutable {
private static final Logger log = LoggerFactory.getLogger(EventEmitter.class);
@ -27,8 +29,12 @@ final class EventEmitter extends PolyfillBase implements ProxyExecutable {
private static final String EVENT_EMITTER_JS = "event-emitter.js";
EventEmitter() {
super(EVENT_EMITTER_JS);
@Override
public void initialize(Context ctx) {
Source jsSource =
Source.newBuilder("js", getClass().getResource(EVENT_EMITTER_JS)).buildLiteral();
ctx.eval(jsSource).execute(this);
}
@Override

View File

@ -3,8 +3,10 @@ package org.enso.ydoc.polyfill.web;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import org.enso.ydoc.Polyfill;
import org.enso.ydoc.polyfill.Arguments;
import org.enso.ydoc.polyfill.PolyfillBase;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Source;
import org.graalvm.polyglot.Value;
import org.graalvm.polyglot.proxy.ProxyExecutable;
import org.slf4j.Logger;
@ -14,7 +16,7 @@ import org.slf4j.LoggerFactory;
* Implements the <a href="https://nodejs.org/api/events.html#class-eventtarget">EventTarget</a>
* Node.js interface.
*/
final class EventTarget extends PolyfillBase implements ProxyExecutable {
final class EventTarget implements Polyfill, ProxyExecutable {
private static final Logger log = LoggerFactory.getLogger(EventTarget.class);
@ -26,8 +28,12 @@ final class EventTarget extends PolyfillBase implements ProxyExecutable {
private static final String EVENT_TARGET_JS = "event-target.js";
EventTarget() {
super(EVENT_TARGET_JS);
@Override
public void initialize(Context ctx) {
Source jsSource =
Source.newBuilder("js", getClass().getResource(EVENT_TARGET_JS)).buildLiteral();
ctx.eval(jsSource).execute(this);
}
@Override

View File

@ -1,7 +1,9 @@
package org.enso.ydoc.polyfill.web;
import org.enso.ydoc.Polyfill;
import org.enso.ydoc.polyfill.Arguments;
import org.enso.ydoc.polyfill.PolyfillBase;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Source;
import org.graalvm.polyglot.Value;
import org.graalvm.polyglot.proxy.ProxyExecutable;
import org.slf4j.Logger;
@ -11,7 +13,7 @@ import org.slf4j.LoggerFactory;
* Implements the <a href="https://nodejs.org/api/perf_hooks.html">Performance measurement</a>
* Node.js API.
*/
final class Performance extends PolyfillBase implements ProxyExecutable {
final class Performance implements Polyfill, ProxyExecutable {
private static final Logger log = LoggerFactory.getLogger(Performance.class);
@ -19,8 +21,12 @@ final class Performance extends PolyfillBase implements ProxyExecutable {
private static final String PERFORMANCE_JS = "performance.js";
Performance() {
super(PERFORMANCE_JS);
@Override
public void initialize(Context ctx) {
Source jsSource =
Source.newBuilder("js", getClass().getResource(PERFORMANCE_JS)).buildLiteral();
ctx.eval(jsSource).execute(this);
}
@Override

View File

@ -0,0 +1,20 @@
package org.enso.ydoc.polyfill.web;
import com.oracle.svm.core.annotate.Substitute;
import com.oracle.svm.core.annotate.TargetClass;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
@TargetClass(className = "io.helidon.webserver.ExecutorsFactory")
final class Target_ExecutorsFactory {
@Substitute
private static ThreadFactory virtualThreadFactory() {
return Thread.ofPlatform().name("emulating-loom-helidon-server-", 0).factory();
}
@Substitute
public static ExecutorService newLoomServerVirtualThreadPerTaskExecutor() {
return Executors.newThreadPerTaskExecutor(virtualThreadFactory());
}
}

View File

@ -0,0 +1,25 @@
package org.enso.ydoc.polyfill.web;
import com.oracle.svm.core.annotate.Alias;
import com.oracle.svm.core.annotate.RecomputeFieldValue;
import com.oracle.svm.core.annotate.TargetClass;
import io.helidon.common.LazyValue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.function.Supplier;
@TargetClass(className = "io.helidon.webclient.api.LoomClient")
final class Target_LoomClient {
@Alias
@RecomputeFieldValue(kind = RecomputeFieldValue.Kind.FromAlias)
static LazyValue<ExecutorService> EXECUTOR = LazyValue.create(new ExecutorSupplier());
private static final class ExecutorSupplier implements Supplier<ExecutorService> {
@Override
public ExecutorService get() {
return Executors.newThreadPerTaskExecutor(
Thread.ofPlatform().name("emulating-loom-helidon-client-", 0).factory());
}
}
}

View File

@ -3,15 +3,17 @@ package org.enso.ydoc.polyfill.web;
import java.util.concurrent.Future;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import org.enso.ydoc.Polyfill;
import org.enso.ydoc.polyfill.Arguments;
import org.enso.ydoc.polyfill.PolyfillBase;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Source;
import org.graalvm.polyglot.Value;
import org.graalvm.polyglot.proxy.ProxyExecutable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** Implements the <a href="https://nodejs.org/api/timers.html">Timers</a> Node.js API. */
final class Timers extends PolyfillBase implements ProxyExecutable {
final class Timers implements Polyfill, ProxyExecutable {
private static final Logger log = LoggerFactory.getLogger(Timers.class);
@ -29,10 +31,16 @@ final class Timers extends PolyfillBase implements ProxyExecutable {
private final ScheduledExecutorService executor;
Timers(ScheduledExecutorService executor) {
super(TIMERS_JS);
this.executor = executor;
}
@Override
public void initialize(Context ctx) {
Source jsSource = Source.newBuilder("js", getClass().getResource(TIMERS_JS)).buildLiteral();
ctx.eval(jsSource).execute(this);
}
private Future<?> setTimeout(Value func, long delay, Object[] args) {
return executor.schedule(() -> func.executeVoid(args), delay, TIME_UNIT);
}

View File

@ -7,6 +7,9 @@ import org.graalvm.polyglot.HostAccess;
/**
* Implements the <a href="https://nodejs.org/api/url.html">URL</a> Node.js interface and can be
* used directly for interop with JS.
*
* <p>Note that {@code HostAccess.Export} entries are not detected by the Native Image Agent {@code
* -agentlib:native-image-agent} and should be manually listed in the reflect-config.json.
*/
public final class URL {

View File

@ -3,8 +3,10 @@ package org.enso.ydoc.polyfill.web;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import org.enso.ydoc.Polyfill;
import org.enso.ydoc.polyfill.Arguments;
import org.enso.ydoc.polyfill.PolyfillBase;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Source;
import org.graalvm.polyglot.Value;
import org.graalvm.polyglot.io.ByteSequence;
import org.graalvm.polyglot.proxy.ProxyExecutable;
@ -12,7 +14,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** Implements the <a href="https://nodejs.org/api/util.html">Util</a> Node.js API. */
final class Util extends PolyfillBase implements ProxyExecutable {
final class Util implements Polyfill, ProxyExecutable {
private static final Logger log = LoggerFactory.getLogger(Util.class);
@ -21,8 +23,11 @@ final class Util extends PolyfillBase implements ProxyExecutable {
private static final String UTIL_JS = "util.js";
Util() {
super(UTIL_JS);
@Override
public void initialize(Context ctx) {
Source jsSource = Source.newBuilder("js", getClass().getResource(UTIL_JS)).buildLiteral();
ctx.eval(jsSource).execute(this);
}
@Override

View File

@ -15,8 +15,10 @@ import java.util.Arrays;
import java.util.Optional;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import org.enso.ydoc.Polyfill;
import org.enso.ydoc.polyfill.Arguments;
import org.enso.ydoc.polyfill.PolyfillBase;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Source;
import org.graalvm.polyglot.Value;
import org.graalvm.polyglot.io.ByteSequence;
import org.graalvm.polyglot.proxy.ProxyExecutable;
@ -27,7 +29,7 @@ import org.slf4j.LoggerFactory;
* Implements the WebSocket and WebSocketServer interfaces of the <a
* href="https://www.npmjs.com/package/ws">ws</a> NPM package.
*/
final class WebSocket extends PolyfillBase implements ProxyExecutable {
final class WebSocket implements Polyfill, ProxyExecutable {
private static final Logger log = LoggerFactory.getLogger(WebSocket.class);
@ -47,10 +49,16 @@ final class WebSocket extends PolyfillBase implements ProxyExecutable {
private final ExecutorService executor;
WebSocket(ExecutorService executor) {
super(WEBSOCKET_JS);
this.executor = executor;
}
@Override
public void initialize(Context ctx) {
Source jsSource = Source.newBuilder("js", getClass().getResource(WEBSOCKET_JS)).buildLiteral();
ctx.eval(jsSource).execute(this);
}
@Override
public Object execute(Value... arguments) {
var command = arguments[0].asString();

View File

@ -0,0 +1,21 @@
[
{
"name":"java.lang.Boolean",
"methods":[{"name":"getBoolean","parameterTypes":["java.lang.String"] }]
},
{
"name":"java.lang.Class",
"methods":[{"name":"getClassLoader","parameterTypes":[] }]
},
{
"name":"java.lang.ClassLoader",
"methods":[{"name":"loadClass","parameterTypes":["java.lang.String"] }]
},
{
"name":"jdk.internal.loader.ClassLoaders$AppClassLoader"
},
{
"name":"sun.management.VMManagementImpl",
"fields":[{"name":"compTimeMonitoringSupport"}, {"name":"currentThreadCpuTimeSupport"}, {"name":"objectMonitorUsageSupport"}, {"name":"otherThreadCpuTimeSupport"}, {"name":"remoteDiagnosticCommandsSupport"}, {"name":"synchronizerUsageSupport"}, {"name":"threadAllocatedMemorySupport"}, {"name":"threadContentionMonitoringSupport"}]
}
]

View File

@ -0,0 +1,8 @@
[
{
"type":"agent-extracted",
"classes":[
]
}
]

View File

@ -0,0 +1,261 @@
[
{
"name":"ch.qos.logback.classic.encoder.PatternLayoutEncoder",
"queryAllPublicMethods":true,
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"ch.qos.logback.classic.pattern.DateConverter",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"ch.qos.logback.classic.pattern.LevelConverter",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"ch.qos.logback.classic.pattern.LineSeparatorConverter",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"ch.qos.logback.classic.pattern.LoggerConverter",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"ch.qos.logback.classic.pattern.MessageConverter",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"ch.qos.logback.classic.pattern.ThreadConverter",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"ch.qos.logback.core.ConsoleAppender",
"queryAllPublicMethods":true,
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"ch.qos.logback.core.OutputStreamAppender",
"methods":[{"name":"setEncoder","parameterTypes":["ch.qos.logback.core.encoder.Encoder"] }]
},
{
"name":"ch.qos.logback.core.encoder.Encoder",
"methods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }]
},
{
"name":"ch.qos.logback.core.encoder.LayoutWrappingEncoder",
"methods":[{"name":"setParent","parameterTypes":["ch.qos.logback.core.spi.ContextAware"] }]
},
{
"name":"ch.qos.logback.core.pattern.PatternLayoutEncoderBase",
"methods":[{"name":"setPattern","parameterTypes":["java.lang.String"] }]
},
{
"name":"ch.qos.logback.core.spi.ContextAware",
"methods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }]
},
{
"name":"com.sun.crypto.provider.AESCipher$General",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"com.sun.crypto.provider.ARCFOURCipher",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"com.sun.crypto.provider.ChaCha20Cipher$ChaCha20Poly1305",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"com.sun.crypto.provider.DESCipher",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"com.sun.crypto.provider.DESedeCipher",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"com.sun.crypto.provider.GaloisCounterMode$AESGCM",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"io.helidon.common.LazyValueImpl",
"fields":[{"name":"loaded"}, {"name":"theLock"}]
},
{
"name":"java.io.FilePermission"
},
{
"name":"java.lang.Class",
"methods":[{"name":"getModule","parameterTypes":[] }]
},
{
"name":"java.lang.Module",
"methods":[{"name":"getDescriptor","parameterTypes":[] }]
},
{
"name":"java.lang.RuntimePermission"
},
{
"name":"java.lang.Thread",
"fields":[{"name":"threadLocalRandomProbe"}]
},
{
"name":"java.lang.module.ModuleDescriptor",
"methods":[{"name":"rawVersion","parameterTypes":[] }]
},
{
"name":"java.net.NetPermission"
},
{
"name":"java.net.SocketPermission"
},
{
"name":"java.net.URLPermission",
"methods":[{"name":"<init>","parameterTypes":["java.lang.String","java.lang.String"] }]
},
{
"name":"java.security.AlgorithmParametersSpi"
},
{
"name":"java.security.AllPermission"
},
{
"name":"java.security.KeyStoreSpi"
},
{
"name":"java.security.SecureRandomParameters"
},
{
"name":"java.security.SecurityPermission"
},
{
"name":"java.util.PropertyPermission"
},
{
"name":"java.util.concurrent.ForkJoinTask",
"fields":[{"name":"aux"}, {"name":"status"}]
},
{
"name":"java.util.concurrent.atomic.AtomicBoolean",
"fields":[{"name":"value"}]
},
{
"name":"java.util.concurrent.atomic.AtomicReference",
"fields":[{"name":"value"}]
},
{
"name":"java.util.concurrent.atomic.Striped64",
"fields":[{"name":"base"}, {"name":"cellsBusy"}]
},
{
"name":"javax.security.auth.x500.X500Principal",
"fields":[{"name":"thisX500Name"}],
"methods":[{"name":"<init>","parameterTypes":["sun.security.x509.X500Name"] }]
},
{
"name":"javax.smartcardio.CardPermission"
},
{
"name":"jdk.internal.misc.Unsafe"
},
{
"name":"org.enso.ydoc.polyfill.web.URL",
"fields":[{"name":"pathname"},{"name":"searchParams"}]
},
{
"name":"org.enso.ydoc.polyfill.web.URL$URLSearchParams",
"methods":[{"name":"get","parameterTypes":["java.lang.String"]}]
},
{
"name":"org.graalvm.polyglot.io.IOHelper",
"fields":[{"name":"ACCESS"}]
},
{
"name":"org.graalvm.polyglot.management.Management",
"fields":[{"name":"ACCESS"}]
},
{
"name":"sun.security.pkcs12.PKCS12KeyStore",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"sun.security.pkcs12.PKCS12KeyStore$DualFormatPKCS12",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"sun.security.provider.NativePRNG",
"methods":[{"name":"<init>","parameterTypes":[] }, {"name":"<init>","parameterTypes":["java.security.SecureRandomParameters"] }]
},
{
"name":"sun.security.provider.SHA",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"sun.security.provider.X509Factory",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"sun.security.rsa.RSAKeyFactory$Legacy",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"sun.security.ssl.SSLContextImpl$TLSContext",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"sun.security.ssl.TrustManagerFactoryImpl$PKIXFactory",
"methods":[{"name":"<init>","parameterTypes":[] }]
},
{
"name":"sun.security.x509.AuthorityInfoAccessExtension",
"methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
},
{
"name":"sun.security.x509.AuthorityKeyIdentifierExtension",
"methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
},
{
"name":"sun.security.x509.BasicConstraintsExtension",
"methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
},
{
"name":"sun.security.x509.CRLDistributionPointsExtension",
"methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
},
{
"name":"sun.security.x509.CertificatePoliciesExtension",
"methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
},
{
"name":"sun.security.x509.ExtendedKeyUsageExtension",
"methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
},
{
"name":"sun.security.x509.IssuerAlternativeNameExtension",
"methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
},
{
"name":"sun.security.x509.KeyUsageExtension",
"methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
},
{
"name":"sun.security.x509.NetscapeCertTypeExtension",
"methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
},
{
"name":"sun.security.x509.PrivateKeyUsageExtension",
"methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
},
{
"name":"sun.security.x509.SubjectAlternativeNameExtension",
"methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
},
{
"name":"sun.security.x509.SubjectKeyIdentifierExtension",
"methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
}
]

View File

@ -0,0 +1,109 @@
{
"resources":{
"includes":[{
"pattern":"\\QMETA-INF/helidon/feature-metadata.properties\\E"
}, {
"pattern":"\\QMETA-INF/helidon/serial-config.properties\\E"
}, {
"pattern":"\\QMETA-INF/services/ch.qos.logback.classic.spi.Configurator\\E"
}, {
"pattern":"\\QMETA-INF/services/com.oracle.truffle.api.TruffleLanguage$Provider\\E"
}, {
"pattern":"\\QMETA-INF/services/com.oracle.truffle.api.impl.TruffleLocator\\E"
}, {
"pattern":"\\QMETA-INF/services/com.oracle.truffle.api.instrumentation.TruffleInstrument$Provider\\E"
}, {
"pattern":"\\QMETA-INF/services/com.oracle.truffle.api.instrumentation.provider.TruffleInstrumentProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/com.oracle.truffle.api.library.DefaultExportProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/com.oracle.truffle.api.library.provider.DefaultExportProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/com.oracle.truffle.api.object.LayoutFactory\\E"
}, {
"pattern":"\\QMETA-INF/services/com.oracle.truffle.api.provider.InternalResourceProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/com.oracle.truffle.api.provider.TruffleLanguageProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/com.oracle.truffle.runtime.EngineCacheSupport\\E"
}, {
"pattern":"\\QMETA-INF/services/com.oracle.truffle.runtime.FloodControlHandler\\E"
}, {
"pattern":"\\QMETA-INF/services/com.oracle.truffle.runtime.TruffleTypes\\E"
}, {
"pattern":"\\QMETA-INF/services/io.helidon.common.mapper.spi.MapperProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/io.helidon.common.tls.spi.TlsManagerProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/io.helidon.http.encoding.spi.ContentEncodingProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/io.helidon.http.media.spi.MediaSupportProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/io.helidon.logging.common.spi.LoggingProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/io.helidon.webclient.spi.DnsResolverProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/io.helidon.webclient.spi.HttpClientSpiProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/io.helidon.webclient.spi.ProtocolConfigProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/io.helidon.webclient.spi.SourceHandlerProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/io.helidon.webclient.spi.WebClientServiceProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/io.helidon.webserver.http1.spi.Http1UpgradeProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/io.helidon.webserver.spi.ProtocolConfigProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/io.helidon.webserver.spi.ServerConnectionSelectorProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/io.helidon.webserver.spi.ServerFeatureProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/java.lang.System$LoggerFinder\\E"
}, {
"pattern":"\\QMETA-INF/services/java.net.spi.InetAddressResolverProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/java.net.spi.URLStreamHandlerProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/java.time.zone.ZoneRulesProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/javax.xml.parsers.SAXParserFactory\\E"
}, {
"pattern":"\\QMETA-INF/services/jdk.vm.ci.services.JVMCIServiceLocator\\E"
}, {
"pattern":"\\QMETA-INF/services/org.slf4j.spi.SLF4JServiceProvider\\E"
}, {
"pattern":"\\Qlogback-test.xml\\E"
}, {
"pattern":"\\Qlogback.xml\\E"
}, {
"pattern":"jdk.jfr:\\Qjdk/jfr/internal/types/metadata.bin\\E"
}, {
"pattern":"org.enso.ydoc:\\Qorg/enso/ydoc/polyfill/parser.js\\E"
}, {
"pattern":"org.enso.ydoc:\\Qorg/enso/ydoc/polyfill/web/abort-controller.js\\E"
}, {
"pattern":"org.enso.ydoc:\\Qorg/enso/ydoc/polyfill/web/crypto.js\\E"
}, {
"pattern":"org.enso.ydoc:\\Qorg/enso/ydoc/polyfill/web/event-emitter.js\\E"
}, {
"pattern":"org.enso.ydoc:\\Qorg/enso/ydoc/polyfill/web/event-target.js\\E"
}, {
"pattern":"org.enso.ydoc:\\Qorg/enso/ydoc/polyfill/web/performance.js\\E"
}, {
"pattern":"org.enso.ydoc:\\Qorg/enso/ydoc/polyfill/web/timers.js\\E"
}, {
"pattern":"org.enso.ydoc:\\Qorg/enso/ydoc/polyfill/web/util.js\\E"
}, {
"pattern":"org.enso.ydoc:\\Qorg/enso/ydoc/polyfill/web/websocket.js\\E"
}, {
"pattern":"org.enso.ydoc:\\Qorg/enso/ydoc/ydoc.cjs\\E"
}, {
"pattern":"org.graalvm.polyglot:\\QMETA-INF/graalvm/org.graalvm.polyglot/version\\E"
}, {
"pattern":"org.graalvm.truffle.runtime:\\QMETA-INF/resources/engine/libtruffleattach/linux/amd64/sha256\\E"
}, {
"pattern":"org.graalvm.truffle:\\QMETA-INF/graalvm/org.graalvm.truffle/version\\E"
}]},
"bundles":[]
}

View File

@ -0,0 +1,8 @@
{
"types":[
],
"lambdaCapturingTypes":[
],
"proxies":[
]
}

View File

@ -118,8 +118,6 @@ object NativeImage {
log.info("Native image JAVA_HOME: " + javaHome)
val subProjectRoot = baseDirectory.value
val pathToJAR =
(assembly / assemblyOutputPath).value.toPath.toAbsolutePath.normalize
if (!nativeImagePathResolver(javaHome).toFile.exists()) {
log.error(
@ -214,13 +212,15 @@ object NativeImage {
buildMemoryLimitOptions ++
runtimeMemoryOptions ++
additionalOptions ++
Seq("-o", targetLoc.toString())
Seq("-o", targetLoc.toString)
args = mainClass match {
case Some(main) =>
args ++
Seq(main)
case None =>
val pathToJAR =
(assembly / assemblyOutputPath).value.toPath.toAbsolutePath.normalize
args ++
Seq("-jar", pathToJAR.toString)
}

View File

@ -3,3 +3,4 @@ Copyright (c) 2020, 2022 Oracle and/or its affiliates.
Copyright (c) 2022 Oracle and/or its affiliates.
Copyright (c) 2022, 2023 Oracle and/or its affiliates.
Copyright (c) 2022, 2024 Oracle and/or its affiliates.
Copyright (c) 2024 Oracle and/or its affiliates.

View File

@ -1,4 +1,4 @@
Copyright (c) 2019, 2023 Oracle and/or its affiliates.
Copyright (c) 2022 Oracle and/or its affiliates.
Copyright (c) 2022, 2023 Oracle and/or its affiliates.
Copyright (c) 2022, 2024 Oracle and/or its affiliates.
Copyright (c) 2022, 2023 Oracle and/or its affiliates.
Copyright (c) 2022 Oracle and/or its affiliates.
Copyright (c) 2019, 2023 Oracle and/or its affiliates.

View File

@ -1,7 +1,6 @@
Copyright (c) 2017, 2021 Oracle and/or its affiliates.
Copyright (c) 2017, 2024 Oracle and/or its affiliates.
Copyright (c) 2017, 2022 Oracle and/or its affiliates.
Copyright (c) 2017, 2023 Oracle and/or its affiliates.
Copyright (c) 2018, 2021 Oracle and/or its affiliates.
Copyright (c) 2018, 2024 Oracle and/or its affiliates.
Copyright (c) 2019, 2020 Oracle and/or its affiliates.

View File

@ -1,4 +1,4 @@
Copyright (c) 2018, 2022 Oracle and/or its affiliates.
Copyright (c) 2022 Oracle and/or its affiliates.
Copyright (c) 2022, 2023 Oracle and/or its affiliates.
Copyright (c) 2022, 2024 Oracle and/or its affiliates.
Copyright (c) 2022, 2023 Oracle and/or its affiliates.
Copyright (c) 2022 Oracle and/or its affiliates.
Copyright (c) 2018, 2022 Oracle and/or its affiliates.

View File

@ -1,11 +1,13 @@
Copyright (c) 2017, 2021 Oracle and/or its affiliates.
Copyright (c) 2017, 2022 Oracle and/or its affiliates.
Copyright (c) 2017, 2023 Oracle and/or its affiliates.
Copyright (c) 2017, 2022 Oracle and/or its affiliates.
Copyright (c) 2018, 2023 Oracle and/or its affiliates.
Copyright (c) 2018, 2024 Oracle and/or its affiliates.
Copyright (c) 2019, 2022 Oracle and/or its affiliates.
Copyright (c) 2019, 2023 Oracle and/or its affiliates.
Copyright (c) 2022 Oracle and/or its affiliates.
Copyright (c) 2022, 2023 Oracle and/or its affiliates.
Copyright (c) 2022, 2024 Oracle and/or its affiliates.
Copyright (c) 2023 Oracle and/or its affiliates.
Copyright (c) 2023, 2024 Oracle and/or its affiliates.
Copyright (c) 2024 Oracle and/or its affiliates.

View File

@ -1,7 +1,6 @@
Copyright (c) 2019, 2020 Oracle and/or its affiliates.
Copyright (c) 2019, 2021 Oracle and/or its affiliates.
Copyright (c) 2019, 2022 Oracle and/or its affiliates.
Copyright (c) 2019, 2023 Oracle and/or its affiliates.
Copyright (c) 2019, 2024 Oracle and/or its affiliates.
Copyright (c) 2020 Oracle and/or its affiliates.
Copyright (c) 2020, 2022 Oracle and/or its affiliates.
Copyright (c) 2020 Oracle and/or its affiliates.
Copyright (c) 2019, 2024 Oracle and/or its affiliates.
Copyright (c) 2019, 2023 Oracle and/or its affiliates.
Copyright (c) 2019, 2021 Oracle and/or its affiliates.
Copyright (c) 2019, 2020 Oracle and/or its affiliates.

Some files were not shown because too many files have changed in this diff Show More