You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by mg...@apache.org on 2020/10/21 09:03:33 UTC
[tomcat] branch master updated: Add GraalVM config for Tomcat JNI
This is an automated email from the ASF dual-hosted git repository.
mgrigorov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/master by this push:
new c6f5764 Add GraalVM config for Tomcat JNI
c6f5764 is described below
commit c6f576416900a4e72aa9a2d8ddf97b1e41f1220a
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
AuthorDate: Wed Oct 21 11:59:30 2020 +0300
Add GraalVM config for Tomcat JNI
This way it is possible to use the APR connector in GraalVM native images
---
.../native-image/native-image.properties | 2 +-
.../tomcat-embed-core/native-image/tomcat-jni.json | 34 ++++++++++++++++++++++
webapps/docs/changelog.xml | 4 +++
3 files changed, 39 insertions(+), 1 deletion(-)
diff --git a/res/graal/tomcat-embed-core/native-image/native-image.properties b/res/graal/tomcat-embed-core/native-image/native-image.properties
index 29b501f..5cbfb55 100644
--- a/res/graal/tomcat-embed-core/native-image/native-image.properties
+++ b/res/graal/tomcat-embed-core/native-image/native-image.properties
@@ -13,4 +13,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-Args = -H:ReflectionConfigurationResources=${.}/tomcat-reflection.json -H:ResourceConfigurationResources=${.}/tomcat-resource.json
\ No newline at end of file
+Args = -H:ReflectionConfigurationResources=${.}/tomcat-reflection.json -H:ResourceConfigurationResources=${.}/tomcat-resource.json -H:JNIConfigurationResources=${.}/tomcat-jni.json
diff --git a/res/graal/tomcat-embed-core/native-image/tomcat-jni.json b/res/graal/tomcat-embed-core/native-image/tomcat-jni.json
new file mode 100644
index 0000000..d53270c
--- /dev/null
+++ b/res/graal/tomcat-embed-core/native-image/tomcat-jni.json
@@ -0,0 +1,34 @@
+[
+ { "name":"org.apache.tomcat.jni.Address", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Buffer", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Directory", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Error", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.File", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.FileInfo", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Global", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Library", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Local", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Lock", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Mmap", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Multicast", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.OS", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Poll", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Pool", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Proc", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Procattr", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Registry", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Shm", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Sockaddr", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Socket", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.SSL", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.SSLConf", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.SSLContext", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.SSLSocket", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Status", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Stdlib", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Thread", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.Time", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"org.apache.tomcat.jni.User", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true},
+ { "name":"java.lang.String", "allDeclaredConstructors" : true,"allPublicConstructors" : true,"allDeclaredMethods" : true,"allPublicMethods" : true,"allDeclaredClasses" : true,"allPublicClasses" : true,"allPublicFields" : true,"allDeclaredFields" : true}
+
+]
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index e64cc03..706c8ee 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -79,6 +79,10 @@
<code>ErrorReportValve</code> that returns response as JSON instead of
HTML. (kfujino)
</add>
+ <add>
+ Add GraalVM config for Tomcat JNI related classes. This makes it possible to use the APR
+ protocol in GraalVM native images. (mgrigorov)
+ </add>
<fix>
JNDIRealm connections should only be created with the container
classloader as the thread context classloader, just like for the JAAS
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org