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 <mgrigo...@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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org