You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2020/12/21 02:18:00 UTC
[cxf] 01/03: CXF-8340: GraalVM native image fails to run. Added
sample projects, minor changes
This is an automated email from the ASF dual-hosted git repository.
reta pushed a commit to branch 3.4.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git
commit 1733865f4f91dce72249c0e98ccde9cbe01d2963
Author: reta <dr...@gmail.com>
AuthorDate: Sun Dec 20 16:33:53 2020 -0500
CXF-8340: GraalVM native image fails to run. Added sample projects, minor changes
(cherry picked from commit 17ae5b56dea7f1d460cf2ecd4db9dd89ab3a9acd)
---
.../cxf/common/spi/GeneratedClassClassLoader.java | 2 +-
.../spi/GeneratedClassClassLoaderCapture.java | 2 +-
.../common/spi/GeneratedNamespaceClassLoader.java | 7 +-
.../main/release/samples/jaxws_graalvm/README.txt | 66 ++
.../src/main/release/samples/jaxws_graalvm/pom.xml | 179 ++++
.../src/graalvm/client/jni-config.json | 22 +
.../src/graalvm/client/proxy-config.json | 15 +
.../src/graalvm/client/reflect-config.json | 761 +++++++++++++++++
.../src/graalvm/client/resource-config.json | 58 ++
.../src/graalvm/server/jni-config.json | 22 +
.../src/graalvm/server/proxy-config.json | 22 +
.../src/graalvm/server/reflect-config.json | 909 +++++++++++++++++++++
.../src/graalvm/server/resource-config.json | 56 ++
.../src/main/java/demo/jaxws/client/Client.java | 85 ++
.../java/demo/jaxws/server/AddNumbersImpl.java | 56 ++
.../src/main/java/demo/jaxws/server/Server.java | 50 ++
.../jaxws_graalvm/native-image.properties | 1 +
.../src/main/resources/addNumbers.wsdl | 83 ++
.../samples/jaxws_graalvm_dynamic/README.txt | 72 ++
.../samples/jaxws_graalvm_dynamic/client/pom.xml | 104 +++
.../src/main/java/demo/jaxws/client/Client.java | 101 +++
.../main/java/demo/jaxws/client/ClientCapture.java | 51 ++
.../jaxws/client/DumpingClassLoaderCapturer.java | 60 ++
.../main/java/org/apache/handlers/AddNumbers.java | 43 +
.../java/org/apache/handlers/AddNumbersFault.java | 55 ++
.../org/apache/handlers/types/FaultDetail.java | 84 ++
.../org/apache/handlers/types/package-info.java | 21 +
.../jaxws_graalvm_dynamic_client/jni-config.json | 22 +
.../native-image.properties | 1 +
.../jaxws_graalvm_dynamic_client/proxy-config.json | 10 +
.../reflect-config.json | 625 ++++++++++++++
.../resource-config.json | 56 ++
.../client/src/main/resources/addNumbers.wsdl | 83 ++
.../samples/jaxws_graalvm_dynamic/server/pom.xml | 105 +++
.../java/demo/jaxws/server/AddNumbersImpl.java | 56 ++
.../src/main/java/demo/jaxws/server/Server.java | 50 ++
.../jaxws_graalvm_dynamic_server/jni-config.json | 22 +
.../native-image.properties | 1 +
.../jaxws_graalvm_dynamic_server/proxy-config.json | 22 +
.../reflect-config.json | 909 +++++++++++++++++++++
.../resource-config.json | 56 ++
.../server/src/main/resources/addNumbers.wsdl | 83 ++
distribution/src/main/release/samples/pom.xml | 3 +
43 files changed, 5086 insertions(+), 5 deletions(-)
diff --git a/core/src/main/java/org/apache/cxf/common/spi/GeneratedClassClassLoader.java b/core/src/main/java/org/apache/cxf/common/spi/GeneratedClassClassLoader.java
index 452c5fe..320ee52 100644
--- a/core/src/main/java/org/apache/cxf/common/spi/GeneratedClassClassLoader.java
+++ b/core/src/main/java/org/apache/cxf/common/spi/GeneratedClassClassLoader.java
@@ -32,7 +32,7 @@ import org.apache.cxf.common.util.StringUtils;
* @author olivier dufour
*/
public class GeneratedClassClassLoader {
- private static final Logger LOG = LogUtils.getL7dLogger(ClassLoaderProxyService.class);
+ private static final Logger LOG = LogUtils.getL7dLogger(GeneratedClassClassLoader.class);
protected final Bus bus;
public GeneratedClassClassLoader(Bus bus) {
diff --git a/core/src/main/java/org/apache/cxf/common/spi/GeneratedClassClassLoaderCapture.java b/core/src/main/java/org/apache/cxf/common/spi/GeneratedClassClassLoaderCapture.java
index 06f7044..00c6c05 100644
--- a/core/src/main/java/org/apache/cxf/common/spi/GeneratedClassClassLoaderCapture.java
+++ b/core/src/main/java/org/apache/cxf/common/spi/GeneratedClassClassLoaderCapture.java
@@ -26,7 +26,7 @@ package org.apache.cxf.common.spi;
* bus.setExtension(new WrapperHelperClassLoader(bus), WrapperHelperCreator.class);
* bus.setExtension(new ExtensionClassLoader(bus), ExtensionClassCreator.class);
* bus.setExtension(new ExceptionClassLoader(bus), ExceptionClassCreator.class);
- * bus.setExtension(new WrapperHelperClassLoader(bus), WrapperClassCreator.class);
+ * bus.setExtension(new WrapperClassLoader(bus), WrapperClassCreator.class);
* bus.setExtension(new FactoryClassLoader(bus), FactoryClassCreator.class);
* bus.setExtension(new GeneratedNamespaceClassLoader(bus), NamespaceClassCreator.class);
* @author olivier dufour
diff --git a/core/src/main/java/org/apache/cxf/common/spi/GeneratedNamespaceClassLoader.java b/core/src/main/java/org/apache/cxf/common/spi/GeneratedNamespaceClassLoader.java
index 1f3bf89..affa7d5 100644
--- a/core/src/main/java/org/apache/cxf/common/spi/GeneratedNamespaceClassLoader.java
+++ b/core/src/main/java/org/apache/cxf/common/spi/GeneratedNamespaceClassLoader.java
@@ -30,9 +30,11 @@ import org.apache.cxf.Bus;
* @author olivier dufour
*/
public class GeneratedNamespaceClassLoader extends GeneratedClassClassLoader implements NamespaceClassCreator {
- GeneratedNamespaceClassLoader(Bus bus) {
+ public GeneratedNamespaceClassLoader(Bus bus) {
super(bus);
}
+
+ @Override
public synchronized Class<?> createNamespaceWrapperClass(Class<?> mcls, Map<String, String> map) {
String postFix = "";
@@ -44,8 +46,7 @@ public class GeneratedNamespaceClassLoader extends GeneratedClassClassLoader imp
} else if (mcls.getName().contains("com.sun")) {
postFix = "RI";
}
- return findClass("org.apache.cxf.jaxb.NamespaceMapper" + postFix, NamespaceClassCreator.class);
-
+ return findClass("org.apache.cxf.jaxb.NamespaceMapper" + postFix, NamespaceClassCreator.class);
}
}
diff --git a/distribution/src/main/release/samples/jaxws_graalvm/README.txt b/distribution/src/main/release/samples/jaxws_graalvm/README.txt
new file mode 100644
index 0000000..4614bd9
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm/README.txt
@@ -0,0 +1,66 @@
+JAX-WS GraalVM native-image Demo
+===================
+
+This demo shows how JAX-WS services and clients could use GraalVM's native-image
+capabilities and be packaged as native executables.
+
+Pre-requisites
+---------------------------------------
+
+GraalVM 20.3.0 or later distribution should be installed and pre-configured as
+default JVM runtime (using JAVA_HOME), see please instructions at [1].
+
+The GraalVM's native-image tool should be installed, see please
+instructions at [2].
+
+Building and running the demo using Maven
+---------------------------------------
+
+From the base directory of this sample (i.e., where this README file is
+located), the pom.xml file is used to build and run the demo.
+
+Using either UNIX or Windows:
+
+ mvn clean
+
+Than build server:
+
+ mvn package -Pserver (from one command line window)
+
+This goal will produce 'target/jaxws-demo-server' executable (platform-dependent)
+which could be run right away:
+
+ On Windows: target\jaxws-demo-server.exe
+ On Linux: ./target/jaxws-demo-server
+
+Than build client:
+
+ mvn package -Pclient (from a second command line window)
+
+This goal will produce 'target/jaxws-demo-client' executable (platform-dependent)
+which could be run right away:
+
+ On Windows: target\jaxws-demo-client.exe src\main\resources\addNumbers.wsdl
+ On Linux: ./target/jaxws-demo-client src/main/resources/addNumbers.wsdl
+
+The command should produce the following output (assuming the server is up and running):
+
+ org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean buildServiceFromWSDL
+
+ INFO: Creating Service {http://apache.org/handlers}AddNumbersService from WSDL: client/src/main/resources/addNumbers.wsdl
+ Invoking addNumbers(10, 20)
+ The result of adding 10 and 20 is 30.
+
+ Invoking addNumbers(3, 5)
+ The result of adding 3 and 5 is 8.
+
+ Invoking addNumbers(-10, 5)
+ Caught AddNumbersFault: Negative number cant be added!
+
+To remove the code generated from the WSDL file and the .class
+files, run "mvn clean".
+
+References
+---------------------------------------
+[1] https://www.graalvm.org/downloads/
+[2] https://www.graalvm.org/reference-manual/native-image/
diff --git a/distribution/src/main/release/samples/jaxws_graalvm/pom.xml b/distribution/src/main/release/samples/jaxws_graalvm/pom.xml
new file mode 100644
index 0000000..d0c4fe7
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm/pom.xml
@@ -0,0 +1,179 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>jaxws_graalvm</artifactId>
+ <name>JAX-WS GraalVM Demo</name>
+ <description>JAX-WS GraalVM Demo</description>
+ <parent>
+ <groupId>org.apache.cxf.samples</groupId>
+ <artifactId>cxf-samples</artifactId>
+ <version>3.5.0-SNAPSHOT</version>
+ </parent>
+ <properties>
+ <cxf.version>${project.version}</cxf.version>
+ <wsdl.file>${basedir}/src/main/resources/addNumbers.wsdl</wsdl.file>
+ <graalvm.version>20.3.0</graalvm.version>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-codegen-plugin</artifactId>
+ <version>${project.version}</version>
+ <executions>
+ <execution>
+ <id>generate-SOAPService1</id>
+ <phase>generate-sources</phase>
+ <configuration>
+ <wsdlOptions>
+ <wsdlOption>
+ <wsdl>${wsdl.file}</wsdl>
+ </wsdlOption>
+ </wsdlOptions>
+ </configuration>
+ <goals>
+ <goal>wsdl2java</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <profiles>
+ <profile>
+ <id>server</id>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-transports-http-netty-server</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>3.2.0</version>
+ <executions>
+ <execution>
+ <id>copy-resources</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.outputDirectory}/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/graalvm/server</directory>
+ <filtering>false</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.graalvm.nativeimage</groupId>
+ <artifactId>native-image-maven-plugin</artifactId>
+ <version>${graalvm.version}</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>native-image</goal>
+ </goals>
+ <phase>package</phase>
+ </execution>
+ </executions>
+ <configuration>
+ <mainClass>demo.jaxws.server.Server</mainClass>
+ <imageName>jaxws-demo-server</imageName>
+ <buildArgs>--no-fallback</buildArgs>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>client</id>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-transports-http-netty-client</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>3.2.0</version>
+ <executions>
+ <execution>
+ <id>copy-resources</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.outputDirectory}/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/graalvm/client</directory>
+ <filtering>false</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.graalvm.nativeimage</groupId>
+ <artifactId>native-image-maven-plugin</artifactId>
+ <version>${graalvm.version}</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>native-image</goal>
+ </goals>
+ <phase>package</phase>
+ </execution>
+ </executions>
+ <configuration>
+ <mainClass>demo.jaxws.client.Client</mainClass>
+ <imageName>jaxws-demo-client</imageName>
+ <buildArgs>--no-fallback</buildArgs>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxws</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-transports-http</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/client/jni-config.json b/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/client/jni-config.json
new file mode 100644
index 0000000..0218ccb
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/client/jni-config.json
@@ -0,0 +1,22 @@
+[
+{
+ "name":"java.lang.ClassLoader",
+ "methods":[{"name":"getPlatformClassLoader","parameterTypes":[] }]
+},
+{
+ "name":"java.lang.NoSuchMethodError"
+},
+{
+ "name":"sun.management.VMManagementImpl",
+ "fields":[
+ {"name":"compTimeMonitoringSupport"},
+ {"name":"currentThreadCpuTimeSupport"},
+ {"name":"objectMonitorUsageSupport"},
+ {"name":"otherThreadCpuTimeSupport"},
+ {"name":"remoteDiagnosticCommandsSupport"},
+ {"name":"synchronizerUsageSupport"},
+ {"name":"threadAllocatedMemorySupport"},
+ {"name":"threadContentionMonitoringSupport"}
+ ]
+}
+]
diff --git a/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/client/proxy-config.json b/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/client/proxy-config.json
new file mode 100644
index 0000000..fb9c728
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/client/proxy-config.json
@@ -0,0 +1,15 @@
+[
+ ["com.sun.xml.bind.marshaller.CharacterEscapeHandler"],
+ ["javax.xml.bind.annotation.XmlAccessorType","com.sun.xml.bind.v2.model.annotation.Locatable"],
+ ["javax.xml.bind.annotation.XmlRegistry","com.sun.xml.bind.v2.model.annotation.Locatable"],
+ ["org.apache.cxf.binding.soap.wsdl.extensions.SoapAddress"],
+ ["org.apache.cxf.binding.soap.wsdl.extensions.SoapBinding"],
+ ["org.apache.cxf.binding.soap.wsdl.extensions.SoapBody"],
+ ["org.apache.cxf.binding.soap.wsdl.extensions.SoapOperation"],
+ ["org.apache.cxf.common.jaxb.JAXBContextProxy"],
+ ["org.apache.cxf.common.util.ASMHelper$AnnotationVisitor"],
+ ["org.apache.cxf.common.util.ASMHelper$ClassWriter"],
+ ["org.apache.cxf.common.util.ASMHelper$FieldVisitor"],
+ ["org.apache.cxf.common.util.ASMHelper$MethodVisitor"],
+ ["org.apache.handlers.AddNumbers","javax.xml.ws.BindingProvider","java.io.Closeable","org.apache.cxf.endpoint.Client"]
+]
diff --git a/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/client/reflect-config.json b/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/client/reflect-config.json
new file mode 100644
index 0000000..bc0e5ee
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/client/reflect-config.json
@@ -0,0 +1,761 @@
+[
+{
+ "name":"char[]"
+},
+{
+ "name":"com.ibm.wsdl.extensions.schema.SchemaImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPAddressImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPBindingImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPBodyImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPFaultImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPHeaderImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPOperationImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.factory.WSDLFactoryImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.sun.xml.bind.marshaller.CharacterEscapeHandler",
+ "allPublicMethods":true
+},
+{
+ "name":"com.sun.xml.bind.marshaller.MinimumEscapeHandler",
+ "fields":[{"name":"theInstance"}]
+},
+{
+ "name":"com.sun.xml.bind.marshaller.NoEscapeHandler",
+ "fields":[{"name":"theInstance"}]
+},
+{
+ "name":"com.sun.xml.bind.v2.model.nav.ReflectionNavigator",
+ "methods":[{"name":"getInstance","parameterTypes":[] }]
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.JAXBContextImpl",
+ "methods":[{"name":"hasSwaRef","parameterTypes":[] }]
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.ArrayElementLeafProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.ArrayReferenceNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.SingleMapNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.SingleReferenceNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.unmarshaller.StAXExConnector",
+ "methods":[{"name":"<init>","parameterTypes":["org.jvnet.staxex.XMLStreamReaderEx","com.sun.xml.bind.v2.runtime.unmarshaller.XmlVisitor"] }]
+},
+{
+ "name":"com.sun.xml.messaging.saaj.soap.SOAPDocumentImpl",
+ "allPublicMethods":true
+},
+{
+ "name":"int",
+ "allDeclaredConstructors":true
+},
+{
+ "name":"io.netty.channel.socket.nio.NioSocketChannel",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueColdProducerFields",
+ "fields":[{"name":"producerLimit", "allowUnsafeAccess":true}]
+},
+{
+ "name":"io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueConsumerFields",
+ "fields":[{"name":"consumerIndex", "allowUnsafeAccess":true}]
+},
+{
+ "name":"io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueProducerFields",
+ "fields":[{"name":"producerIndex", "allowUnsafeAccess":true}]
+},
+{
+ "name":"java.io.Closeable",
+ "allPublicMethods":true
+},
+{
+ "name":"java.io.Writer"
+},
+{
+ "name":"java.lang.Class"
+},
+{
+ "name":"java.lang.Object",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true
+},
+{
+ "name":"java.lang.Object[]"
+},
+{
+ "name":"java.lang.String"
+},
+{
+ "name":"java.lang.invoke.MethodHandles",
+ "methods":[{"name":"lookup","parameterTypes":[] }]
+},
+{
+ "name":"java.lang.invoke.MethodHandles$Lookup",
+ "methods":[{"name":"findClass","parameterTypes":["java.lang.String"] }]
+},
+{
+ "name":"java.lang.management.ManagementFactory",
+ "methods":[{"name":"getRuntimeMXBean","parameterTypes":[] }]
+},
+{
+ "name":"java.lang.management.RuntimeMXBean",
+ "methods":[{"name":"getInputArguments","parameterTypes":[] }]
+},
+{
+ "name":"java.net.Authenticator",
+ "methods":[{"name":"getDefault","parameterTypes":[] }]
+},
+{
+ "name":"java.nio.Bits",
+ "fields":[{"name":"UNALIGNED"}]
+},
+{
+ "name":"java.nio.Buffer",
+ "fields":[{"name":"address", "allowUnsafeAccess":true}]
+},
+{
+ "name":"java.nio.DirectByteBuffer",
+ "methods":[{"name":"<init>","parameterTypes":["long","int"] }]
+},
+{
+ "name":"java.security.MessageDigestSpi"
+},
+{
+ "name":"java.security.SecureRandomParameters"
+},
+{
+ "name":"java.util.List"
+},
+{
+ "name":"java.util.Map"
+},
+{
+ "name":"java.util.concurrent.Executor"
+},
+{
+ "name":"javax.security.auth.login.Configuration"
+},
+{
+ "name":"javax.xml.bind.annotation.XmlAccessorType"
+},
+{
+ "name":"javax.xml.bind.annotation.XmlElement",
+ "methods":[{"name":"type","parameterTypes":[] }]
+},
+{
+ "name":"javax.xml.bind.annotation.XmlElementDecl",
+ "methods":[{"name":"scope","parameterTypes":[] }]
+},
+{
+ "name":"javax.xml.bind.annotation.XmlRegistry"
+},
+{
+ "name":"javax.xml.bind.annotation.XmlType",
+ "methods":[{"name":"factoryClass","parameterTypes":[] }]
+},
+{
+ "name":"javax.xml.namespace.QName"
+},
+{
+ "name":"javax.xml.ws.Binding"
+},
+{
+ "name":"javax.xml.ws.BindingProvider",
+ "allPublicMethods":true
+},
+{
+ "name":"javax.xml.ws.EndpointReference"
+},
+{
+ "name":"jdk.internal.misc.Unsafe",
+ "methods":[{"name":"getUnsafe","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.Bus"
+},
+{
+ "name":"org.apache.cxf.binding.AbstractBindingFactory",
+ "fields":[{"name":"bus"}]
+},
+{
+ "name":"org.apache.cxf.binding.soap.SoapBindingFactory",
+ "fields":[{"name":"DEFAULT_NAMESPACES"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.binding.soap.SoapTransportFactory",
+ "fields":[{"name":"DEFAULT_NAMESPACES"}],
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.binding.xml.XMLBindingFactory",
+ "fields":[{"name":"DEFAULT_NAMESPACES"}]
+},
+{
+ "name":"org.apache.cxf.binding.xml.wsdl11.XMLWSDLExtensionLoader",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.bindings.xformat.ObjectFactory",
+ "allDeclaredMethods":true
+},
+{
+ "name":"org.apache.cxf.bindings.xformat.XMLBindingMessageFormat",
+ "methods":[{"name":"getOtherAttributes","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.bindings.xformat.XMLFormatBinding",
+ "methods":[{"name":"getOtherAttributes","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.CXFBusLifeCycleManager",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.ClientLifeCycleManagerImpl",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.EndpointResolverRegistryImpl"
+},
+{
+ "name":"org.apache.cxf.bus.managers.HeaderManagerImpl"
+},
+{
+ "name":"org.apache.cxf.bus.managers.PhaseManagerImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.ServerLifeCycleManagerImpl"
+},
+{
+ "name":"org.apache.cxf.bus.managers.ServerRegistryImpl"
+},
+{
+ "name":"org.apache.cxf.bus.managers.WorkQueueManagerImpl"
+},
+{
+ "name":"org.apache.cxf.bus.resource.ResourceManagerImpl"
+},
+{
+ "name":"org.apache.cxf.buslifecycle.BusLifeCycleManager"
+},
+{
+ "name":"org.apache.cxf.catalog.OASISCatalogManager",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.common.spi.ClassLoaderProxyService"
+},
+{
+ "name":"org.apache.cxf.common.util.ASMHelper"
+},
+{
+ "name":"org.apache.cxf.common.util.ASMHelperImpl",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.common.util.ASMHelperImpl$2",
+ "methods":[
+ {"name":"getValue","parameterTypes":[] },
+ {"name":"realType","parameterTypes":[] }
+ ]
+},
+{
+ "name":"org.apache.cxf.common.util.OpcodesProxy",
+ "allDeclaredFields":true
+},
+{
+ "name":"org.apache.cxf.endpoint.Client",
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.cxf.endpoint.Client$Contexts"
+},
+{
+ "name":"org.apache.cxf.endpoint.ClientCallback"
+},
+{
+ "name":"org.apache.cxf.endpoint.ClientLifeCycleManager"
+},
+{
+ "name":"org.apache.cxf.endpoint.ConduitSelector"
+},
+{
+ "name":"org.apache.cxf.endpoint.Endpoint"
+},
+{
+ "name":"org.apache.cxf.endpoint.dynamic.ExceptionClassCreatorProxyService"
+},
+{
+ "name":"org.apache.cxf.ext.logging.LoggingBusLifecycleListener"
+},
+{
+ "name":"org.apache.cxf.ext.logging.LoggingFactoryBeanListener",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.ext.logging.OldLoggingFactoryBeanListener",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.jaxb.FactoryClassProxyService"
+},
+{
+ "name":"org.apache.cxf.jaxb.JAXBDataBinding",
+ "methods":[{"name":"<init>","parameterTypes":["boolean","java.util.Map"] }]
+},
+{
+ "name":"org.apache.cxf.jaxb.WrapperHelperCreator"
+},
+{
+ "name":"org.apache.cxf.jaxb.WrapperHelperProxyService",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.jaxws.context.WebServiceContextResourceResolver",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.jaxws.spi.WrapperClassCreator"
+},
+{
+ "name":"org.apache.cxf.jaxws.spi.WrapperClassCreatorProxyService",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.message.Exchange"
+},
+{
+ "name":"org.apache.cxf.message.Message"
+},
+{
+ "name":"org.apache.cxf.phase.PhaseManager"
+},
+{
+ "name":"org.apache.cxf.policy.PolicyDataEngine"
+},
+{
+ "name":"org.apache.cxf.service.factory.FactoryBeanListenerManager",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.service.model.BindingOperationInfo"
+},
+{
+ "name":"org.apache.cxf.transport.Conduit"
+},
+{
+ "name":"org.apache.cxf.transport.http.HTTPTransportFactory",
+ "fields":[{"name":"DEFAULT_NAMESPACES"}],
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.transport.http.HTTPWSDLExtensionLoader",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.transport.http.ReferencingAuthenticator",
+ "methods":[{"name":"<init>","parameterTypes":["java.net.Authenticator","java.net.Authenticator"] }]
+},
+{
+ "name":"org.apache.cxf.transport.http.netty.client.NettyHttpConduitFactory",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider"
+},
+{
+ "name":"org.apache.cxf.transports.http.configuration.HTTPClientPolicy",
+ "methods":[{"name":"getOtherAttributes","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.transports.http.configuration.HTTPServerPolicy",
+ "methods":[{"name":"getOtherAttributes","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.transports.http.configuration.ObjectFactory",
+ "allDeclaredMethods":true
+},
+{
+ "name":"org.apache.cxf.ws.addressing.impl.AddressingFeatureApplier"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.impl.AddressingWSDLExtensionLoader",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.addressing.impl.MAPAggregatorImplLoader"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.policy.AddressingAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.policy.AddressingPolicyInterceptorProvider"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.policy.UsingAddressingAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.wsdl.ObjectFactory",
+ "allDeclaredMethods":true
+},
+{
+ "name":"org.apache.cxf.ws.addressing.wsdl.UsingAddressing",
+ "methods":[{"name":"getOtherAttributes","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.AssertionBuilderRegistry"
+},
+{
+ "name":"org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyAnnotationListener",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyBuilderImpl",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyDataEngineImpl",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyEngine"
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyEngineImpl",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyInterceptorProviderRegistry"
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyInterceptorProviderRegistryImpl",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.ServiceModelPolicyProvider",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.external.DomainExpressionBuilderRegistry"
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.external.EndpointReferenceDomainExpressionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.external.URIDomainExpressionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.mtom.MTOMAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.policy.mtom.MTOMPolicyInterceptorProvider"
+},
+{
+ "name":"org.apache.cxf.wsdl.ExtensionClassCreator"
+},
+{
+ "name":"org.apache.cxf.wsdl.ExtensionClassCreatorProxyService",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.wsdl.WSDLManager"
+},
+{
+ "name":"org.apache.cxf.wsdl.http.AddressType",
+ "methods":[{"name":"getOtherAttributes","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.wsdl.http.ObjectFactory",
+ "allDeclaredMethods":true
+},
+{
+ "name":"org.apache.cxf.wsdl11.WSDLManagerImpl",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.handlers.AddNumbers",
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.handlers.AddNumbersFault",
+ "allPublicConstructors":true,
+ "methods":[{"name":"getFaultInfo","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.handlers.types.AddNumbers",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.handlers.types.AddNumbersResponse",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.handlers.types.FaultDetail",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.handlers.types.ObjectFactory",
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.xml.resolver.CatalogManager"
+},
+{
+ "name":"org.jvnet.staxex.XMLStreamReaderEx"
+},
+{
+ "name":"org.objectweb.asm.AnnotationWriter",
+ "methods":[{"name":"visitEnd","parameterTypes":[] }]
+},
+{
+ "name":"org.objectweb.asm.ClassWriter",
+ "fields":[
+ {"name":"COMPUTE_FRAMES"},
+ {"name":"COMPUTE_MAXS"}
+ ],
+ "methods":[
+ {"name":"<init>","parameterTypes":["int"] },
+ {"name":"toByteArray","parameterTypes":[] },
+ {"name":"visit","parameterTypes":["int","int","java.lang.String","java.lang.String","java.lang.String","java.lang.String[]"] },
+ {"name":"visitEnd","parameterTypes":[] },
+ {"name":"visitField","parameterTypes":["int","java.lang.String","java.lang.String","java.lang.String","java.lang.Object"] },
+ {"name":"visitMethod","parameterTypes":["int","java.lang.String","java.lang.String","java.lang.String","java.lang.String[]"] },
+ {"name":"visitSource","parameterTypes":["java.lang.String","java.lang.String"] }
+ ]
+},
+{
+ "name":"org.objectweb.asm.FieldWriter",
+ "methods":[{"name":"visitEnd","parameterTypes":[] }]
+},
+{
+ "name":"org.objectweb.asm.Label",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.objectweb.asm.MethodVisitor",
+ "methods":[{"name":"visitFrame","parameterTypes":["int","int","java.lang.Object[]","int","java.lang.Object[]"] }]
+},
+{
+ "name":"org.objectweb.asm.MethodWriter",
+ "allPublicMethods":true
+},
+{
+ "name":"org.objectweb.asm.Opcodes",
+ "fields":[
+ {"name":"AALOAD"},
+ {"name":"ACC_ABSTRACT"},
+ {"name":"ACC_FINAL"},
+ {"name":"ACC_INTERFACE"},
+ {"name":"ACC_PRIVATE"},
+ {"name":"ACC_PUBLIC"},
+ {"name":"ACC_STATIC"},
+ {"name":"ACC_SUPER"},
+ {"name":"ACC_SYNTHETIC"},
+ {"name":"ACONST_NULL"},
+ {"name":"ALOAD"},
+ {"name":"ANEWARRAY"},
+ {"name":"ARETURN"},
+ {"name":"ARRAYLENGTH"},
+ {"name":"ASTORE"},
+ {"name":"ATHROW"},
+ {"name":"CHECKCAST"},
+ {"name":"DCONST_0"},
+ {"name":"DUP"},
+ {"name":"FCONST_0"},
+ {"name":"F_APPEND"},
+ {"name":"F_SAME"},
+ {"name":"F_SAME1"},
+ {"name":"GETFIELD"},
+ {"name":"GETSTATIC"},
+ {"name":"GOTO"},
+ {"name":"ICONST_0"},
+ {"name":"ICONST_1"},
+ {"name":"IFNONNULL"},
+ {"name":"IFNULL"},
+ {"name":"IF_ICMPLT"},
+ {"name":"ILOAD"},
+ {"name":"INTEGER"},
+ {"name":"INVOKEINTERFACE"},
+ {"name":"INVOKESPECIAL"},
+ {"name":"INVOKESTATIC"},
+ {"name":"INVOKEVIRTUAL"},
+ {"name":"IRETURN"},
+ {"name":"ISTORE"},
+ {"name":"LCONST_0"},
+ {"name":"NEW"},
+ {"name":"POP"},
+ {"name":"PUTFIELD"},
+ {"name":"PUTSTATIC"},
+ {"name":"RETURN"},
+ {"name":"SIPUSH"},
+ {"name":"V1_5"},
+ {"name":"V1_6"},
+ {"name":"V1_7"}
+ ]
+},
+{
+ "name":"org.slf4j.LoggerFactory",
+ "methods":[{"name":"getILoggerFactory","parameterTypes":[] }]
+},
+{
+ "name":"org.slf4j.impl.StaticLoggerBinder"
+},
+{
+ "name":"org.w3c.dom.Node",
+ "methods":[
+ {"name":"getUserData","parameterTypes":["java.lang.String"] },
+ {"name":"setUserData","parameterTypes":["java.lang.String","java.lang.Object","org.w3c.dom.UserDataHandler"] }
+ ]
+},
+{
+ "name":"org.w3c.dom.UserDataHandler"
+},
+{
+ "name":"sun.misc.Unsafe",
+ "fields":[{"name":"theUnsafe"}],
+ "methods":[
+ {"name":"copyMemory","parameterTypes":["java.lang.Object","long","java.lang.Object","long","long"] },
+ {"name":"getAndAddLong","parameterTypes":["java.lang.Object","long","long"] },
+ {"name":"getAndSetObject","parameterTypes":["java.lang.Object","long","java.lang.Object"] },
+ {"name":"invokeCleaner","parameterTypes":["java.nio.ByteBuffer"] }
+ ]
+},
+{
+ "name":"sun.nio.ch.SelectorImpl",
+ "fields":[
+ {"name":"publicSelectedKeys", "allowUnsafeAccess":true},
+ {"name":"selectedKeys", "allowUnsafeAccess":true}
+ ]
+},
+{
+ "name":"sun.security.provider.DRBG",
+ "methods":[{"name":"<init>","parameterTypes":["java.security.SecureRandomParameters"] }]
+},
+{
+ "name":"sun.security.provider.SHA",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"sun.security.provider.SHA2$SHA256",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+}
+]
diff --git a/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/client/resource-config.json b/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/client/resource-config.json
new file mode 100644
index 0000000..3a80131
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/client/resource-config.json
@@ -0,0 +1,58 @@
+{
+ "resources":{
+ "includes":[
+ {"pattern":"\\QMETA-INF/cxf/bus-extensions.txt\\E"},
+ {"pattern":"\\QMETA-INF/io.netty.versions.properties\\E"},
+ {"pattern":"\\QMETA-INF/mailcap.default\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.xml.bind.JAXBContextFactory\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.xml.stream.XMLEventFactory\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.xml.stream.XMLInputFactory\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.xml.stream.XMLOutputFactory\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.xml.ws.spi.Provider\\E"},
+ {"pattern":"\\Qorg/apache/cxf/transport/http/ReferencingAuthenticator.class\\E"},
+ {"pattern":"\\Qorg/apache/cxf/version/version.properties\\E"},
+ {"pattern":"\\Qorg/apache/xml/resolver/etc/catalog.dtd\\E"},
+ {"pattern":"\\Qorg/apache/xml/resolver/etc/catalog.rng\\E"},
+ {"pattern":"\\Qorg/apache/xml/resolver/etc/catalog.xsd\\E"},
+ {"pattern":"\\Qorg/apache/xml/resolver/etc/xcatalog.dtd\\E"},
+ {"pattern":"\\Qorg/slf4j/impl/StaticLoggerBinder.class\\E"},
+ {"pattern":"\\Qschemas/wsdl/ws-addr-wsdl.xsd\\E"},
+ {"pattern":"\\Qschemas/wsdl/ws-addr.xsd\\E"},
+ {"pattern":"\\Qschemas/wsdl/wsrm.xsd\\E"}
+ ]},
+ "bundles":[
+ {"name":"org.apache.cxf.Messages"},
+ {"name":"org.apache.cxf.binding.soap.interceptor.Messages"},
+ {"name":"org.apache.cxf.binding.soap.saaj.Messages"},
+ {"name":"org.apache.cxf.bus.extension.Messages"},
+ {"name":"org.apache.cxf.bus.managers.Messages"},
+ {"name":"org.apache.cxf.common.annotation.Messages"},
+ {"name":"org.apache.cxf.common.injection.Messages"},
+ {"name":"org.apache.cxf.common.jaxb.Messages"},
+ {"name":"org.apache.cxf.common.util.Messages"},
+ {"name":"org.apache.cxf.endpoint.Messages"},
+ {"name":"org.apache.cxf.frontend.Messages"},
+ {"name":"org.apache.cxf.interceptor.Messages"},
+ {"name":"org.apache.cxf.jaxb.Messages"},
+ {"name":"org.apache.cxf.jaxb.attachment.Messages"},
+ {"name":"org.apache.cxf.jaxws.Messages"},
+ {"name":"org.apache.cxf.jaxws.binding.soap.Messages"},
+ {"name":"org.apache.cxf.jaxws.handler.Messages"},
+ {"name":"org.apache.cxf.jaxws.interceptors.Messages"},
+ {"name":"org.apache.cxf.jaxws.spi.Messages"},
+ {"name":"org.apache.cxf.jaxws.support.Messages"},
+ {"name":"org.apache.cxf.resource.Messages"},
+ {"name":"org.apache.cxf.service.factory.Messages"},
+ {"name":"org.apache.cxf.service.model.Messages"},
+ {"name":"org.apache.cxf.staxutils.Messages"},
+ {"name":"org.apache.cxf.transport.http.Messages"},
+ {"name":"org.apache.cxf.transport.https.Messages"},
+ {"name":"org.apache.cxf.ws.policy.APIMessages"},
+ {"name":"org.apache.cxf.ws.policy.Messages"},
+ {"name":"org.apache.cxf.ws.policy.attachment.Messages"},
+ {"name":"org.apache.cxf.wsdl.Messages"},
+ {"name":"org.apache.cxf.wsdl.interceptors.Messages"},
+ {"name":"org.apache.cxf.wsdl.service.factory.Messages"},
+ {"name":"org.apache.cxf.wsdl11.Messages"}
+ ]
+}
diff --git a/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/server/jni-config.json b/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/server/jni-config.json
new file mode 100644
index 0000000..0218ccb
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/server/jni-config.json
@@ -0,0 +1,22 @@
+[
+{
+ "name":"java.lang.ClassLoader",
+ "methods":[{"name":"getPlatformClassLoader","parameterTypes":[] }]
+},
+{
+ "name":"java.lang.NoSuchMethodError"
+},
+{
+ "name":"sun.management.VMManagementImpl",
+ "fields":[
+ {"name":"compTimeMonitoringSupport"},
+ {"name":"currentThreadCpuTimeSupport"},
+ {"name":"objectMonitorUsageSupport"},
+ {"name":"otherThreadCpuTimeSupport"},
+ {"name":"remoteDiagnosticCommandsSupport"},
+ {"name":"synchronizerUsageSupport"},
+ {"name":"threadAllocatedMemorySupport"},
+ {"name":"threadContentionMonitoringSupport"}
+ ]
+}
+]
diff --git a/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/server/proxy-config.json b/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/server/proxy-config.json
new file mode 100644
index 0000000..9e5ed4d
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/server/proxy-config.json
@@ -0,0 +1,22 @@
+[
+ ["com.sun.xml.bind.marshaller.CharacterEscapeHandler"],
+ ["com.sun.xml.bind.v2.schemagen.xmlschema.ComplexType"],
+ ["com.sun.xml.bind.v2.schemagen.xmlschema.ContentModelContainer"],
+ ["com.sun.xml.bind.v2.schemagen.xmlschema.LocalElement"],
+ ["com.sun.xml.bind.v2.schemagen.xmlschema.Particle"],
+ ["com.sun.xml.bind.v2.schemagen.xmlschema.Schema"],
+ ["com.sun.xml.bind.v2.schemagen.xmlschema.TopLevelElement"],
+ ["javax.xml.bind.annotation.XmlAccessorType","com.sun.xml.bind.v2.model.annotation.Locatable"],
+ ["javax.xml.bind.annotation.XmlRegistry","com.sun.xml.bind.v2.model.annotation.Locatable"],
+ ["org.apache.cxf.binding.soap.wsdl.extensions.SoapAddress"],
+ ["org.apache.cxf.binding.soap.wsdl.extensions.SoapBinding"],
+ ["org.apache.cxf.binding.soap.wsdl.extensions.SoapBody"],
+ ["org.apache.cxf.binding.soap.wsdl.extensions.SoapFault"],
+ ["org.apache.cxf.binding.soap.wsdl.extensions.SoapOperation"],
+ ["org.apache.cxf.common.jaxb.JAXBBeanInfo"],
+ ["org.apache.cxf.common.jaxb.JAXBContextProxy"],
+ ["org.apache.cxf.common.util.ASMHelper$AnnotationVisitor"],
+ ["org.apache.cxf.common.util.ASMHelper$ClassWriter"],
+ ["org.apache.cxf.common.util.ASMHelper$FieldVisitor"],
+ ["org.apache.cxf.common.util.ASMHelper$MethodVisitor"]
+]
diff --git a/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/server/reflect-config.json b/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/server/reflect-config.json
new file mode 100644
index 0000000..e4a5a9e
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/server/reflect-config.json
@@ -0,0 +1,909 @@
+[
+{
+ "name":"char[]"
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPAddressImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPBindingImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPBodyImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPFaultImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPHeaderImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPOperationImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.factory.WSDLFactoryImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.sun.xml.bind.marshaller.CharacterEscapeHandler",
+ "allPublicMethods":true
+},
+{
+ "name":"com.sun.xml.bind.marshaller.MinimumEscapeHandler",
+ "fields":[{"name":"theInstance"}]
+},
+{
+ "name":"com.sun.xml.bind.marshaller.NoEscapeHandler",
+ "fields":[{"name":"theInstance"}]
+},
+{
+ "name":"com.sun.xml.bind.v2.model.nav.ReflectionNavigator",
+ "methods":[{"name":"getInstance","parameterTypes":[] }]
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.JAXBContextImpl",
+ "methods":[
+ {"name":"getBeanInfo","parameterTypes":["java.lang.Class"] },
+ {"name":"hasSwaRef","parameterTypes":[] }
+ ]
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.JaxBeanInfo",
+ "methods":[
+ {"name":"getTypeNames","parameterTypes":[] },
+ {"name":"isElement","parameterTypes":[] }
+ ]
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.LeafBeanInfoImpl"
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.output.StAXExStreamWriterOutput",
+ "methods":[{"name":"<init>","parameterTypes":["org.jvnet.staxex.XMLStreamWriterEx"] }]
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.ArrayElementLeafProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.ArrayReferenceNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.SingleMapNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.SingleReferenceNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.unmarshaller.StAXExConnector",
+ "methods":[{"name":"<init>","parameterTypes":["org.jvnet.staxex.XMLStreamReaderEx","com.sun.xml.bind.v2.runtime.unmarshaller.XmlVisitor"] }]
+},
+{
+ "name":"com.sun.xml.messaging.saaj.soap.SOAPDocumentImpl",
+ "allPublicMethods":true
+},
+{
+ "name":"demo.jaxws.server.AddNumbersImpl",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true
+},
+{
+ "name":"int",
+ "allDeclaredConstructors":true
+},
+{
+ "name":"io.netty.bootstrap.ServerBootstrap$1"
+},
+{
+ "name":"io.netty.bootstrap.ServerBootstrap$ServerBootstrapAcceptor",
+ "methods":[
+ {"name":"channelRead","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] },
+ {"name":"exceptionCaught","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Throwable"] }
+ ]
+},
+{
+ "name":"io.netty.buffer.AbstractByteBufAllocator",
+ "allDeclaredMethods":true
+},
+{
+ "name":"io.netty.buffer.AbstractReferenceCountedByteBuf",
+ "fields":[{"name":"refCnt", "allowUnsafeAccess":true}]
+},
+{
+ "name":"io.netty.channel.ChannelDuplexHandler",
+ "methods":[
+ {"name":"bind","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.net.SocketAddress","io.netty.channel.ChannelPromise"] },
+ {"name":"close","parameterTypes":["io.netty.channel.ChannelHandlerContext","io.netty.channel.ChannelPromise"] },
+ {"name":"connect","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.net.SocketAddress","java.net.SocketAddress","io.netty.channel.ChannelPromise"] },
+ {"name":"deregister","parameterTypes":["io.netty.channel.ChannelHandlerContext","io.netty.channel.ChannelPromise"] },
+ {"name":"disconnect","parameterTypes":["io.netty.channel.ChannelHandlerContext","io.netty.channel.ChannelPromise"] },
+ {"name":"flush","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"read","parameterTypes":["io.netty.channel.ChannelHandlerContext"] }
+ ]
+},
+{
+ "name":"io.netty.channel.ChannelHandlerAdapter",
+ "methods":[{"name":"exceptionCaught","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Throwable"] }]
+},
+{
+ "name":"io.netty.channel.ChannelInboundHandlerAdapter",
+ "methods":[
+ {"name":"channelActive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelInactive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRead","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] },
+ {"name":"channelReadComplete","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRegistered","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelUnregistered","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelWritabilityChanged","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"exceptionCaught","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Throwable"] },
+ {"name":"userEventTriggered","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] }
+ ]
+},
+{
+ "name":"io.netty.channel.ChannelInitializer",
+ "methods":[
+ {"name":"channelRegistered","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"exceptionCaught","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Throwable"] }
+ ]
+},
+{
+ "name":"io.netty.channel.ChannelOutboundHandlerAdapter",
+ "methods":[
+ {"name":"bind","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.net.SocketAddress","io.netty.channel.ChannelPromise"] },
+ {"name":"close","parameterTypes":["io.netty.channel.ChannelHandlerContext","io.netty.channel.ChannelPromise"] },
+ {"name":"connect","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.net.SocketAddress","java.net.SocketAddress","io.netty.channel.ChannelPromise"] },
+ {"name":"deregister","parameterTypes":["io.netty.channel.ChannelHandlerContext","io.netty.channel.ChannelPromise"] },
+ {"name":"disconnect","parameterTypes":["io.netty.channel.ChannelHandlerContext","io.netty.channel.ChannelPromise"] },
+ {"name":"flush","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"read","parameterTypes":["io.netty.channel.ChannelHandlerContext"] }
+ ]
+},
+{
+ "name":"io.netty.channel.DefaultChannelPipeline$HeadContext",
+ "methods":[
+ {"name":"bind","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.net.SocketAddress","io.netty.channel.ChannelPromise"] },
+ {"name":"channelActive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelInactive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRead","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] },
+ {"name":"channelReadComplete","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRegistered","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelUnregistered","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelWritabilityChanged","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"close","parameterTypes":["io.netty.channel.ChannelHandlerContext","io.netty.channel.ChannelPromise"] },
+ {"name":"connect","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.net.SocketAddress","java.net.SocketAddress","io.netty.channel.ChannelPromise"] },
+ {"name":"deregister","parameterTypes":["io.netty.channel.ChannelHandlerContext","io.netty.channel.ChannelPromise"] },
+ {"name":"disconnect","parameterTypes":["io.netty.channel.ChannelHandlerContext","io.netty.channel.ChannelPromise"] },
+ {"name":"exceptionCaught","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Throwable"] },
+ {"name":"flush","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"read","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"userEventTriggered","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] },
+ {"name":"write","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object","io.netty.channel.ChannelPromise"] }
+ ]
+},
+{
+ "name":"io.netty.channel.DefaultChannelPipeline$TailContext",
+ "methods":[
+ {"name":"channelActive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelInactive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRead","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] },
+ {"name":"channelReadComplete","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRegistered","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelUnregistered","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelWritabilityChanged","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"exceptionCaught","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Throwable"] },
+ {"name":"userEventTriggered","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] }
+ ]
+},
+{
+ "name":"io.netty.channel.socket.nio.NioServerSocketChannel",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"io.netty.handler.codec.ByteToMessageDecoder",
+ "methods":[
+ {"name":"channelInactive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRead","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] },
+ {"name":"channelReadComplete","parameterTypes":["io.netty.channel.ChannelHandlerContext"] }
+ ]
+},
+{
+ "name":"io.netty.handler.codec.MessageAggregator",
+ "methods":[
+ {"name":"channelInactive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelReadComplete","parameterTypes":["io.netty.channel.ChannelHandlerContext"] }
+ ]
+},
+{
+ "name":"io.netty.handler.codec.MessageToMessageCodec",
+ "methods":[
+ {"name":"channelRead","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] },
+ {"name":"write","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object","io.netty.channel.ChannelPromise"] }
+ ]
+},
+{
+ "name":"io.netty.handler.codec.MessageToMessageDecoder",
+ "methods":[{"name":"channelRead","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] }]
+},
+{
+ "name":"io.netty.handler.codec.MessageToMessageEncoder",
+ "methods":[{"name":"write","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object","io.netty.channel.ChannelPromise"] }]
+},
+{
+ "name":"io.netty.handler.codec.http.HttpContentCompressor"
+},
+{
+ "name":"io.netty.handler.codec.http.HttpContentEncoder",
+ "methods":[{"name":"channelInactive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] }]
+},
+{
+ "name":"io.netty.handler.codec.http.HttpObjectAggregator"
+},
+{
+ "name":"io.netty.handler.codec.http.HttpObjectDecoder",
+ "methods":[{"name":"userEventTriggered","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] }]
+},
+{
+ "name":"io.netty.handler.codec.http.HttpRequestDecoder"
+},
+{
+ "name":"io.netty.handler.codec.http.HttpResponseEncoder"
+},
+{
+ "name":"io.netty.handler.timeout.IdleStateHandler",
+ "methods":[
+ {"name":"channelActive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelInactive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRead","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] },
+ {"name":"channelReadComplete","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRegistered","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"write","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object","io.netty.channel.ChannelPromise"] }
+ ]
+},
+{
+ "name":"io.netty.util.ReferenceCountUtil",
+ "allDeclaredMethods":true
+},
+{
+ "name":"io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueColdProducerFields",
+ "fields":[{"name":"producerLimit", "allowUnsafeAccess":true}]
+},
+{
+ "name":"io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueConsumerFields",
+ "fields":[{"name":"consumerIndex", "allowUnsafeAccess":true}]
+},
+{
+ "name":"io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueProducerFields",
+ "fields":[{"name":"producerIndex", "allowUnsafeAccess":true}]
+},
+{
+ "name":"io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueConsumerIndexField",
+ "fields":[{"name":"consumerIndex", "allowUnsafeAccess":true}]
+},
+{
+ "name":"io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueProducerIndexField",
+ "fields":[{"name":"producerIndex", "allowUnsafeAccess":true}]
+},
+{
+ "name":"io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueProducerLimitField",
+ "fields":[{"name":"producerLimit", "allowUnsafeAccess":true}]
+},
+{
+ "name":"java.io.Writer"
+},
+{
+ "name":"java.lang.Object",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true
+},
+{
+ "name":"java.lang.management.ManagementFactory",
+ "methods":[{"name":"getRuntimeMXBean","parameterTypes":[] }]
+},
+{
+ "name":"java.lang.management.RuntimeMXBean",
+ "methods":[
+ {"name":"getInputArguments","parameterTypes":[] },
+ {"name":"getName","parameterTypes":[] }
+ ]
+},
+{
+ "name":"java.nio.Bits",
+ "fields":[{"name":"UNALIGNED"}]
+},
+{
+ "name":"java.nio.Buffer",
+ "fields":[{"name":"address", "allowUnsafeAccess":true}]
+},
+{
+ "name":"java.nio.DirectByteBuffer",
+ "methods":[{"name":"<init>","parameterTypes":["long","int"] }]
+},
+{
+ "name":"java.security.MessageDigestSpi"
+},
+{
+ "name":"java.security.SecureRandomParameters"
+},
+{
+ "name":"javax.security.auth.login.Configuration"
+},
+{
+ "name":"javax.xml.bind.annotation.XmlAccessorType"
+},
+{
+ "name":"javax.xml.bind.annotation.XmlElement",
+ "methods":[{"name":"type","parameterTypes":[] }]
+},
+{
+ "name":"javax.xml.bind.annotation.XmlElementDecl",
+ "methods":[{"name":"scope","parameterTypes":[] }]
+},
+{
+ "name":"javax.xml.bind.annotation.XmlRegistry"
+},
+{
+ "name":"javax.xml.bind.annotation.XmlType",
+ "methods":[{"name":"factoryClass","parameterTypes":[] }]
+},
+{
+ "name":"javax.xml.ws.RequestWrapper",
+ "methods":[{"name":"partName","parameterTypes":[] }]
+},
+{
+ "name":"javax.xml.ws.ResponseWrapper",
+ "methods":[{"name":"partName","parameterTypes":[] }]
+},
+{
+ "name":"javax.xml.ws.WebFault",
+ "methods":[{"name":"messageName","parameterTypes":[] }]
+},
+{
+ "name":"jdk.internal.misc.Unsafe",
+ "methods":[{"name":"getUnsafe","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.binding.AbstractBindingFactory",
+ "fields":[{"name":"bus"}]
+},
+{
+ "name":"org.apache.cxf.binding.soap.SoapBindingFactory",
+ "fields":[{"name":"DEFAULT_NAMESPACES"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.binding.soap.SoapTransportFactory",
+ "fields":[{"name":"DEFAULT_NAMESPACES"}],
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.binding.xml.XMLBindingFactory",
+ "fields":[{"name":"DEFAULT_NAMESPACES"}]
+},
+{
+ "name":"org.apache.cxf.binding.xml.wsdl11.XMLWSDLExtensionLoader",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.bindings.xformat.ObjectFactory",
+ "allDeclaredMethods":true
+},
+{
+ "name":"org.apache.cxf.bindings.xformat.XMLBindingMessageFormat",
+ "methods":[{"name":"getOtherAttributes","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.bindings.xformat.XMLFormatBinding",
+ "methods":[{"name":"getOtherAttributes","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.CXFBusLifeCycleManager",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.ClientLifeCycleManagerImpl"
+},
+{
+ "name":"org.apache.cxf.bus.managers.EndpointResolverRegistryImpl"
+},
+{
+ "name":"org.apache.cxf.bus.managers.HeaderManagerImpl"
+},
+{
+ "name":"org.apache.cxf.bus.managers.PhaseManagerImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.ServerLifeCycleManagerImpl",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.ServerRegistryImpl",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.WorkQueueManagerImpl"
+},
+{
+ "name":"org.apache.cxf.bus.resource.ResourceManagerImpl"
+},
+{
+ "name":"org.apache.cxf.buslifecycle.BusLifeCycleManager"
+},
+{
+ "name":"org.apache.cxf.catalog.OASISCatalogManager"
+},
+{
+ "name":"org.apache.cxf.common.spi.ClassLoaderProxyService"
+},
+{
+ "name":"org.apache.cxf.common.util.ASMHelper"
+},
+{
+ "name":"org.apache.cxf.common.util.ASMHelperImpl",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.common.util.ASMHelperImpl$2",
+ "methods":[
+ {"name":"getValue","parameterTypes":[] },
+ {"name":"realType","parameterTypes":[] }
+ ]
+},
+{
+ "name":"org.apache.cxf.common.util.OpcodesProxy",
+ "allDeclaredFields":true
+},
+{
+ "name":"org.apache.cxf.endpoint.ServerLifeCycleManager"
+},
+{
+ "name":"org.apache.cxf.endpoint.ServerRegistry"
+},
+{
+ "name":"org.apache.cxf.endpoint.dynamic.ExceptionClassCreatorProxyService"
+},
+{
+ "name":"org.apache.cxf.ext.logging.LoggingBusLifecycleListener"
+},
+{
+ "name":"org.apache.cxf.ext.logging.LoggingFactoryBeanListener",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.ext.logging.OldLoggingFactoryBeanListener",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.jaxb.FactoryClassProxyService"
+},
+{
+ "name":"org.apache.cxf.jaxb.JAXBDataBinding",
+ "methods":[{"name":"<init>","parameterTypes":["boolean","java.util.Map"] }]
+},
+{
+ "name":"org.apache.cxf.jaxb.WrapperHelperCreator"
+},
+{
+ "name":"org.apache.cxf.jaxb.WrapperHelperProxyService",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.jaxws.context.WebServiceContextResourceResolver",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.jaxws.spi.WrapperClassCreator"
+},
+{
+ "name":"org.apache.cxf.jaxws.spi.WrapperClassCreatorProxyService",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.phase.PhaseManager"
+},
+{
+ "name":"org.apache.cxf.policy.PolicyDataEngine"
+},
+{
+ "name":"org.apache.cxf.service.factory.FactoryBeanListenerManager",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.transport.http.HTTPTransportFactory",
+ "fields":[{"name":"DEFAULT_NAMESPACES"}],
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.transport.http.HTTPWSDLExtensionLoader",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.transport.http.netty.server.NettyHttpDestinationFactory",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.transport.http.netty.server.NettyHttpServerEngineFactory",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.transport.http.netty.server.NettyHttpServletHandler",
+ "methods":[
+ {"name":"channelActive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRead","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] },
+ {"name":"channelReadComplete","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"exceptionCaught","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Throwable"] },
+ {"name":"userEventTriggered","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] }
+ ]
+},
+{
+ "name":"org.apache.cxf.transport.http.netty.server.NettyHttpServletPipelineFactory"
+},
+{
+ "name":"org.apache.cxf.transport.http.netty.server.NettyHttpTransportFactory"
+},
+{
+ "name":"org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider"
+},
+{
+ "name":"org.apache.cxf.transports.http.configuration.HTTPClientPolicy",
+ "methods":[{"name":"getOtherAttributes","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.transports.http.configuration.HTTPServerPolicy",
+ "methods":[{"name":"getOtherAttributes","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.transports.http.configuration.ObjectFactory",
+ "allDeclaredMethods":true
+},
+{
+ "name":"org.apache.cxf.ws.addressing.impl.AddressingFeatureApplier"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.impl.AddressingWSDLExtensionLoader",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.addressing.impl.MAPAggregatorImplLoader"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.policy.AddressingAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.policy.AddressingPolicyInterceptorProvider"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.policy.UsingAddressingAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.wsdl.ObjectFactory",
+ "allDeclaredMethods":true
+},
+{
+ "name":"org.apache.cxf.ws.addressing.wsdl.UsingAddressing",
+ "methods":[{"name":"getOtherAttributes","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.AssertionBuilderRegistry"
+},
+{
+ "name":"org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyAnnotationListener",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyBuilderImpl",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyDataEngineImpl",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyEngine"
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyEngineImpl",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyInterceptorProviderRegistry"
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyInterceptorProviderRegistryImpl",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.ServiceModelPolicyProvider",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.external.DomainExpressionBuilderRegistry"
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.external.EndpointReferenceDomainExpressionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.external.URIDomainExpressionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.mtom.MTOMAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.policy.mtom.MTOMPolicyInterceptorProvider"
+},
+{
+ "name":"org.apache.cxf.wsdl.ExtensionClassCreator"
+},
+{
+ "name":"org.apache.cxf.wsdl.ExtensionClassCreatorProxyService",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.wsdl.WSDLManager"
+},
+{
+ "name":"org.apache.cxf.wsdl.http.AddressType",
+ "methods":[{"name":"getOtherAttributes","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.wsdl.http.ObjectFactory",
+ "allDeclaredMethods":true
+},
+{
+ "name":"org.apache.cxf.wsdl11.WSDLManagerImpl",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.handlers.AddNumbers",
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.handlers.AddNumbersFault",
+ "methods":[{"name":"getFaultInfo","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.handlers.types.AddNumbers",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.handlers.types.AddNumbersResponse",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.handlers.types.FaultDetail",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.handlers.types.ObjectFactory",
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.jvnet.staxex.XMLStreamReaderEx"
+},
+{
+ "name":"org.jvnet.staxex.XMLStreamWriterEx"
+},
+{
+ "name":"org.objectweb.asm.AnnotationWriter",
+ "methods":[{"name":"visitEnd","parameterTypes":[] }]
+},
+{
+ "name":"org.objectweb.asm.ClassWriter",
+ "fields":[
+ {"name":"COMPUTE_FRAMES"},
+ {"name":"COMPUTE_MAXS"}
+ ],
+ "methods":[
+ {"name":"<init>","parameterTypes":["int"] },
+ {"name":"toByteArray","parameterTypes":[] },
+ {"name":"visit","parameterTypes":["int","int","java.lang.String","java.lang.String","java.lang.String","java.lang.String[]"] },
+ {"name":"visitEnd","parameterTypes":[] },
+ {"name":"visitField","parameterTypes":["int","java.lang.String","java.lang.String","java.lang.String","java.lang.Object"] },
+ {"name":"visitMethod","parameterTypes":["int","java.lang.String","java.lang.String","java.lang.String","java.lang.String[]"] },
+ {"name":"visitSource","parameterTypes":["java.lang.String","java.lang.String"] }
+ ]
+},
+{
+ "name":"org.objectweb.asm.FieldWriter",
+ "methods":[{"name":"visitEnd","parameterTypes":[] }]
+},
+{
+ "name":"org.objectweb.asm.Label",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.objectweb.asm.MethodVisitor",
+ "methods":[{"name":"visitFrame","parameterTypes":["int","int","java.lang.Object[]","int","java.lang.Object[]"] }]
+},
+{
+ "name":"org.objectweb.asm.MethodWriter",
+ "allPublicMethods":true
+},
+{
+ "name":"org.objectweb.asm.Opcodes",
+ "fields":[
+ {"name":"AALOAD"},
+ {"name":"ACC_ABSTRACT"},
+ {"name":"ACC_FINAL"},
+ {"name":"ACC_INTERFACE"},
+ {"name":"ACC_PRIVATE"},
+ {"name":"ACC_PUBLIC"},
+ {"name":"ACC_STATIC"},
+ {"name":"ACC_SUPER"},
+ {"name":"ACC_SYNTHETIC"},
+ {"name":"ACONST_NULL"},
+ {"name":"ALOAD"},
+ {"name":"ANEWARRAY"},
+ {"name":"ARETURN"},
+ {"name":"ARRAYLENGTH"},
+ {"name":"ASTORE"},
+ {"name":"ATHROW"},
+ {"name":"CHECKCAST"},
+ {"name":"DCONST_0"},
+ {"name":"DUP"},
+ {"name":"FCONST_0"},
+ {"name":"F_APPEND"},
+ {"name":"F_SAME"},
+ {"name":"F_SAME1"},
+ {"name":"GETFIELD"},
+ {"name":"GETSTATIC"},
+ {"name":"GOTO"},
+ {"name":"ICONST_0"},
+ {"name":"ICONST_1"},
+ {"name":"IFNONNULL"},
+ {"name":"IFNULL"},
+ {"name":"IF_ICMPLT"},
+ {"name":"ILOAD"},
+ {"name":"INTEGER"},
+ {"name":"INVOKEINTERFACE"},
+ {"name":"INVOKESPECIAL"},
+ {"name":"INVOKESTATIC"},
+ {"name":"INVOKEVIRTUAL"},
+ {"name":"IRETURN"},
+ {"name":"ISTORE"},
+ {"name":"LCONST_0"},
+ {"name":"NEW"},
+ {"name":"POP"},
+ {"name":"PUTFIELD"},
+ {"name":"PUTSTATIC"},
+ {"name":"RETURN"},
+ {"name":"SIPUSH"},
+ {"name":"V1_5"},
+ {"name":"V1_6"},
+ {"name":"V1_7"}
+ ]
+},
+{
+ "name":"org.slf4j.LoggerFactory",
+ "methods":[{"name":"getILoggerFactory","parameterTypes":[] }]
+},
+{
+ "name":"org.slf4j.impl.StaticLoggerBinder"
+},
+{
+ "name":"org.w3c.dom.Node",
+ "methods":[
+ {"name":"getUserData","parameterTypes":["java.lang.String"] },
+ {"name":"setUserData","parameterTypes":["java.lang.String","java.lang.Object","org.w3c.dom.UserDataHandler"] }
+ ]
+},
+{
+ "name":"org.w3c.dom.UserDataHandler"
+},
+{
+ "name":"sun.misc.Unsafe",
+ "fields":[{"name":"theUnsafe"}],
+ "methods":[
+ {"name":"copyMemory","parameterTypes":["java.lang.Object","long","java.lang.Object","long","long"] },
+ {"name":"getAndAddLong","parameterTypes":["java.lang.Object","long","long"] },
+ {"name":"getAndSetObject","parameterTypes":["java.lang.Object","long","java.lang.Object"] },
+ {"name":"invokeCleaner","parameterTypes":["java.nio.ByteBuffer"] }
+ ]
+},
+{
+ "name":"sun.nio.ch.SelectorImpl",
+ "fields":[
+ {"name":"publicSelectedKeys", "allowUnsafeAccess":true},
+ {"name":"selectedKeys", "allowUnsafeAccess":true}
+ ]
+},
+{
+ "name":"sun.security.provider.DRBG",
+ "methods":[{"name":"<init>","parameterTypes":["java.security.SecureRandomParameters"] }]
+},
+{
+ "name":"sun.security.provider.SHA",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"sun.security.provider.SHA2$SHA256",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+}
+]
diff --git a/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/server/resource-config.json b/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/server/resource-config.json
new file mode 100644
index 0000000..4de452a
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm/src/graalvm/server/resource-config.json
@@ -0,0 +1,56 @@
+{
+ "resources":{
+ "includes":[
+ {"pattern":"\\QMETA-INF/cxf/bus-extensions.txt\\E"},
+ {"pattern":"\\QMETA-INF/io.netty.versions.properties\\E"},
+ {"pattern":"\\QMETA-INF/mailcap.default\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.xml.bind.JAXBContextFactory\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.xml.stream.XMLEventFactory\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.xml.stream.XMLInputFactory\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.xml.stream.XMLOutputFactory\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.xml.ws.spi.Provider\\E"},
+ {"pattern":"\\Qorg/apache/cxf/version/version.properties\\E"},
+ {"pattern":"\\Qorg/slf4j/impl/StaticLoggerBinder.class\\E"},
+ {"pattern":"\\Qschemas/wsdl/ws-addr-wsdl.xsd\\E"},
+ {"pattern":"\\Qschemas/wsdl/ws-addr.xsd\\E"},
+ {"pattern":"\\Qschemas/wsdl/wsrm.xsd\\E"}
+ ]},
+ "bundles":[
+ {"name":"javax.servlet.LocalStrings"},
+ {"name":"org.apache.cxf.Messages"},
+ {"name":"org.apache.cxf.binding.soap.interceptor.Messages"},
+ {"name":"org.apache.cxf.binding.soap.saaj.Messages"},
+ {"name":"org.apache.cxf.bus.extension.Messages"},
+ {"name":"org.apache.cxf.bus.managers.Messages"},
+ {"name":"org.apache.cxf.common.annotation.Messages"},
+ {"name":"org.apache.cxf.common.injection.Messages"},
+ {"name":"org.apache.cxf.common.jaxb.Messages"},
+ {"name":"org.apache.cxf.common.util.Messages"},
+ {"name":"org.apache.cxf.endpoint.Messages"},
+ {"name":"org.apache.cxf.frontend.Messages"},
+ {"name":"org.apache.cxf.interceptor.Messages"},
+ {"name":"org.apache.cxf.jaxb.Messages"},
+ {"name":"org.apache.cxf.jaxb.attachment.Messages"},
+ {"name":"org.apache.cxf.jaxws.Messages"},
+ {"name":"org.apache.cxf.jaxws.binding.soap.Messages"},
+ {"name":"org.apache.cxf.jaxws.context.Messages"},
+ {"name":"org.apache.cxf.jaxws.handler.Messages"},
+ {"name":"org.apache.cxf.jaxws.interceptors.Messages"},
+ {"name":"org.apache.cxf.jaxws.spi.Messages"},
+ {"name":"org.apache.cxf.jaxws.support.Messages"},
+ {"name":"org.apache.cxf.resource.Messages"},
+ {"name":"org.apache.cxf.service.factory.Messages"},
+ {"name":"org.apache.cxf.service.invoker.Messages"},
+ {"name":"org.apache.cxf.service.model.Messages"},
+ {"name":"org.apache.cxf.staxutils.Messages"},
+ {"name":"org.apache.cxf.transport.http.Messages"},
+ {"name":"org.apache.cxf.transport.http.netty.server.Messages"},
+ {"name":"org.apache.cxf.transport.https.Messages"},
+ {"name":"org.apache.cxf.ws.addressing.Messages"},
+ {"name":"org.apache.cxf.ws.policy.Messages"},
+ {"name":"org.apache.cxf.ws.policy.attachment.Messages"},
+ {"name":"org.apache.cxf.wsdl.Messages"},
+ {"name":"org.apache.cxf.wsdl.interceptors.Messages"},
+ {"name":"org.apache.cxf.wsdl.service.factory.Messages"}
+ ]
+}
diff --git a/distribution/src/main/release/samples/jaxws_graalvm/src/main/java/demo/jaxws/client/Client.java b/distribution/src/main/release/samples/jaxws_graalvm/src/main/java/demo/jaxws/client/Client.java
new file mode 100644
index 0000000..284005d
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm/src/main/java/demo/jaxws/client/Client.java
@@ -0,0 +1,85 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package demo.jaxws.client;
+
+import java.io.File;
+
+import javax.xml.namespace.QName;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.extension.ExtensionManagerBus;
+import org.apache.handlers.AddNumbers;
+import org.apache.handlers.AddNumbersFault;
+import org.apache.handlers.AddNumbersService;
+
+public final class Client {
+
+ static QName serviceName = new QName("http://apache.org/handlers",
+ "AddNumbersService");
+
+ static QName portName = new QName("http://apache.org/handlers",
+ "AddNumbersPort");
+
+ private Client() {
+ }
+
+ public static void main(String[] args) throws Exception {
+
+ if (args.length == 0) {
+ System.err.println("please provide wsdl");
+ System.exit(0);
+ }
+
+ final Bus bus = new ExtensionManagerBus();
+ BusFactory.setDefaultBus(bus);
+
+ File wsdl = new File(args[0]);
+
+ AddNumbersService service = new AddNumbersService(wsdl.toURI().toURL(), serviceName);
+ AddNumbers port = (AddNumbers)service.getPort(portName, AddNumbers.class);
+
+ try {
+ int number1 = 10;
+ int number2 = 20;
+
+ System.out.printf("Invoking addNumbers(%d, %d)\n", number1, number2);
+ int result = port.addNumbers(number1, number2);
+ System.out.printf("The result of adding %d and %d is %d.\n\n", number1, number2, result);
+
+ number1 = 3;
+ number2 = 5;
+
+ System.out.printf("Invoking addNumbers(%d, %d)\n", number1, number2);
+ result = port.addNumbers(number1, number2);
+ System.out.printf("The result of adding %d and %d is %d.\n\n", number1, number2, result);
+
+ number1 = -10;
+ System.out.printf("Invoking addNumbers(%d, %d)\n", number1, number2);
+ result = port.addNumbers(number1, number2);
+ System.out.printf("The result of adding %d and %d is %d.\n", number1, number2, result);
+
+ } catch (AddNumbersFault ex) {
+ System.out.printf("Caught AddNumbersFault: %s\n", ex.getFaultInfo().getMessage());
+ }
+
+ System.exit(0);
+ }
+}
diff --git a/distribution/src/main/release/samples/jaxws_graalvm/src/main/java/demo/jaxws/server/AddNumbersImpl.java b/distribution/src/main/release/samples/jaxws_graalvm/src/main/java/demo/jaxws/server/AddNumbersImpl.java
new file mode 100644
index 0000000..5704498
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm/src/main/java/demo/jaxws/server/AddNumbersImpl.java
@@ -0,0 +1,56 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package demo.jaxws.server;
+
+import javax.jws.WebService;
+import org.apache.handlers.AddNumbers;
+import org.apache.handlers.AddNumbersFault;
+import org.apache.handlers.types.FaultDetail;
+
+
+@WebService(name = "AddNumbers",
+ targetNamespace = "http://apache.org/handlers",
+ portName = "AddNumbersPort",
+ endpointInterface = "org.apache.handlers.AddNumbers",
+ serviceName = "AddNumbersService")
+public class AddNumbersImpl implements AddNumbers {
+
+
+ /**
+ * @param number1
+ * @param number2
+ * @return The sum
+ * @throws AddNumbersException
+ * if any of the numbers to be added is negative.
+ */
+ public int addNumbers(int number1, int number2) throws AddNumbersFault {
+ System.out.println("addNumbers called....." + number1 + ":" + number2);
+ if (number1 < 0 || number2 < 0) {
+ String message = "Negative number cant be added!";
+ String detail = "Numbers: " + number1 + ", " + number2;
+ FaultDetail fault = new FaultDetail();
+ fault.setMessage(message);
+ fault.setFaultInfo(detail);
+ throw new AddNumbersFault(message, fault);
+ }
+ return number1 + number2;
+ }
+
+}
diff --git a/distribution/src/main/release/samples/jaxws_graalvm/src/main/java/demo/jaxws/server/Server.java b/distribution/src/main/release/samples/jaxws_graalvm/src/main/java/demo/jaxws/server/Server.java
new file mode 100644
index 0000000..f94ff35
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm/src/main/java/demo/jaxws/server/Server.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package demo.jaxws.server;
+
+
+import javax.xml.ws.Endpoint;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.extension.ExtensionManagerBus;
+
+public class Server {
+ protected Server() throws Exception {
+ System.out.println("Starting AddNumbers Server");
+
+ final Bus bus = new ExtensionManagerBus();
+ BusFactory.setDefaultBus(bus);
+
+ Object implementor = new AddNumbersImpl();
+ String address = "http://localhost:9000/handlers/AddNumbersService/AddNumbersPort";
+
+ Endpoint.publish(address, implementor);
+ }
+
+ public static void main(String[] args) throws Exception {
+ new Server();
+ System.out.println("Server ready...");
+
+ Thread.sleep(5 * 60 * 1000);
+ System.out.println("Server exiting");
+ System.exit(0);
+ }
+}
diff --git a/distribution/src/main/release/samples/jaxws_graalvm/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm/native-image.properties b/distribution/src/main/release/samples/jaxws_graalvm/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm/native-image.properties
new file mode 100644
index 0000000..b2069af
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm/native-image.properties
@@ -0,0 +1 @@
+Args = --initialize-at-build-time=org.slf4j.impl.JDK14LoggerAdapter,org.slf4j.impl.StaticLoggerBinder,org.slf4j.LoggerFactory --allow-incomplete-classpath -H:JNIConfigurationResources=${.}/jni-config.json -H:ResourceConfigurationResources=${.}/resource-config.json -H:DynamicProxyConfigurationResources=${.}/proxy-config.json -H:ReflectionConfigurationResources=${.}/reflect-config.json --report-unsupported-elements-at-runtime --enable-url-protocols=http
\ No newline at end of file
diff --git a/distribution/src/main/release/samples/jaxws_graalvm/src/main/resources/addNumbers.wsdl b/distribution/src/main/release/samples/jaxws_graalvm/src/main/resources/addNumbers.wsdl
new file mode 100644
index 0000000..415c688
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm/src/main/resources/addNumbers.wsdl
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<definitions xmlns:tns="http://apache.org/handlers" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:x1="http://apache.org/handlers/types" name="AddNumbers" targetNamespace="http://apache.org/handlers">
+ <types>
+ <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://apache.org/handlers/types" elementFormDefault="qualified">
+ <complexType name="addNumbersResponse">
+ <sequence>
+ <element name="return" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ <element name="addNumbersResponse" type="x1:addNumbersResponse"/>
+ <complexType name="addNumbers">
+ <sequence>
+ <element name="arg0" type="xsd:int"/>
+ <element name="arg1" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ <element name="addNumbers" type="x1:addNumbers"/>
+ <element name="FaultDetail" type="x1:FaultDetail"/>
+ <complexType name="FaultDetail">
+ <sequence>
+ <element name="faultInfo" type="xsd:string"/>
+ <element name="message" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </xsd:schema>
+ </types>
+ <message name="addNumbers">
+ <part name="parameters" element="x1:addNumbers"/>
+ </message>
+ <message name="addNumbersResponse">
+ <part name="result" element="x1:addNumbersResponse"/>
+ </message>
+ <message name="addNumbersFault">
+ <part name="AddNumbersFault" element="x1:FaultDetail"/>
+ </message>
+ <portType name="AddNumbers">
+ <operation name="addNumbers">
+ <input message="tns:addNumbers"/>
+ <output message="tns:addNumbersResponse"/>
+ <fault name="addNumbersFault" message="tns:addNumbersFault"/>
+ </operation>
+ </portType>
+ <binding name="AddNumbersBinding" type="tns:AddNumbers">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+ <operation name="addNumbers">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="addNumbersFault">
+ <soap:fault name="addNumbersFault" use="literal"/>
+ </fault>
+ </operation>
+ </binding>
+ <service name="AddNumbersService">
+ <port name="AddNumbersPort" binding="tns:AddNumbersBinding">
+ <soap:address location="http://localhost:9000/handlers/AddNumbersService/AddNumbersPort"/>
+ </port>
+ </service>
+</definitions>
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/README.txt b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/README.txt
new file mode 100644
index 0000000..1ec8d31
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/README.txt
@@ -0,0 +1,72 @@
+JAX-WS GraalVM native-image Demo
+===================
+
+This demo shows how JAX-WS services and clients could use GraalVM's native-image
+capabilities and be packaged as native executables. This example demonstrates advanced
+techniques to deal with dynamic class generation.
+
+Pre-requisites
+---------------------------------------
+
+GraalVM 20.3.0 or later distribution should be installed and pre-configured as
+default JVM runtime (using JAVA_HOME), see please instructions at [1].
+
+The GraalVM's native-image tool should be installed, see please
+instructions at [2].
+
+Building and running the demo using Maven
+---------------------------------------
+
+From the base directory of this sample (i.e., where this README file is
+located), the pom.xml file is used to build and run the demo.
+
+Using either UNIX or Windows:
+
+Than build server:
+
+ mvn clean package -f server -Pserver
+
+This goal will produce 'server/target/jaxws-demo-server' executable (platform-dependent)
+which could be run right away:
+
+ On Windows: server\target\jaxws-demo-server.exe
+ On Linux: ./server/target/jaxws-demo-server
+
+Than build the client in capturing mode (please note that the server has to be up and running):
+
+ mvn -f client -Pcapture (from a second command line window)
+
+Than build the client:
+
+ mvn -f client -Pclient (from a second command line window)
+
+This goal will produce 'client/target/jaxws-demo-client' executable (platform-dependent)
+which could be run right away:
+
+ On Windows: client\target\jaxws-demo-client.exe client\ src\main\resources\addNumbers.wsdl
+ On Linux: ./client/target/jaxws-demo-client client/src/main/resources/addNumbers.wsdl
+
+The command should produce the following output (assuming the server is up and running):
+
+ org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean buildServiceFromWSDL
+
+ INFO: Creating Service {http://apache.org/handlers}AddNumbersService from WSDL: client/src/main/resources/addNumbers.wsdl
+ Invoking addNumbers(10, 20)
+ The result of adding 10 and 20 is 30.
+
+ Invoking addNumbers(3, 5)
+ The result of adding 3 and 5 is 8.
+
+ Invoking addNumbers(-10, 5)
+ Caught AddNumbersFault: Negative number cant be added!
+
+To remove the code generated from the WSDL file and the .class
+files, run :
+
+ mvn clean -f server
+ mvn clean -f client
+
+References
+---------------------------------------
+[1] https://www.graalvm.org/downloads/
+[2] https://www.graalvm.org/reference-manual/native-image/
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/pom.xml b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/pom.xml
new file mode 100644
index 0000000..fb2d599
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/pom.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>jaxws_graalvm_dynamic_client</artifactId>
+ <name>JAX-WS GraalVM Demo (capture generated classes)</name>
+ <description>JAX-WS GraalVM Demo (capture generated classes)</description>
+ <parent>
+ <groupId>org.apache.cxf.samples</groupId>
+ <artifactId>cxf-samples</artifactId>
+ <version>3.5.0-SNAPSHOT</version>
+ </parent>
+ <properties>
+ <cxf.version>${project.version}</cxf.version>
+ <wsdl.file>${basedir}/src/main/resources/addNumbers.wsdl</wsdl.file>
+ <graalvm.version>20.3.0</graalvm.version>
+ </properties>
+
+ <profiles>
+ <profile>
+ <id>client</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.graalvm.nativeimage</groupId>
+ <artifactId>native-image-maven-plugin</artifactId>
+ <version>${graalvm.version}</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>native-image</goal>
+ </goals>
+ <phase>package</phase>
+ </execution>
+ </executions>
+ <configuration>
+ <mainClass>demo.jaxws.client.Client</mainClass>
+ <imageName>jaxws-demo-client</imageName>
+ <buildArgs>--no-fallback</buildArgs>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>capture</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>test</phase>
+ <goals>
+ <goal>java</goal>
+ </goals>
+ <configuration>
+ <mainClass>demo.jaxws.client.ClientCapture</mainClass>
+ <arguments>
+ <argument>${wsdl.file}</argument>
+ <argument>${basedir}/src/main/resources</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxws</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-transports-http</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-transports-http-netty-client</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/demo/jaxws/client/Client.java b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/demo/jaxws/client/Client.java
new file mode 100644
index 0000000..909e728
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/demo/jaxws/client/Client.java
@@ -0,0 +1,101 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package demo.jaxws.client;
+
+import java.io.File;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.extension.ExtensionManagerBus;
+import org.apache.cxf.common.spi.GeneratedNamespaceClassLoader;
+import org.apache.cxf.common.spi.NamespaceClassCreator;
+import org.apache.cxf.endpoint.dynamic.ExceptionClassCreator;
+import org.apache.cxf.endpoint.dynamic.ExceptionClassLoader;
+import org.apache.cxf.jaxb.FactoryClassCreator;
+import org.apache.cxf.jaxb.FactoryClassLoader;
+import org.apache.cxf.jaxb.WrapperHelperClassLoader;
+import org.apache.cxf.jaxb.WrapperHelperCreator;
+import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
+import org.apache.cxf.jaxws.spi.WrapperClassCreator;
+import org.apache.cxf.jaxws.spi.WrapperClassLoader;
+import org.apache.cxf.wsdl.ExtensionClassCreator;
+import org.apache.cxf.wsdl.ExtensionClassLoader;
+import org.apache.handlers.AddNumbers;
+import org.apache.handlers.AddNumbersFault;
+
+public final class Client {
+ private Client() {
+ }
+
+ public static void main(String[] args) throws Exception {
+
+ if (args.length == 0) {
+ System.err.println("please provide wsdl");
+ System.exit(0);
+ }
+
+ final Bus bus = new ExtensionManagerBus();
+ BusFactory.setDefaultBus(bus);
+
+ bus.setExtension(new WrapperHelperClassLoader(bus), WrapperHelperCreator.class);
+ bus.setExtension(new ExtensionClassLoader(bus), ExtensionClassCreator.class);
+ bus.setExtension(new ExceptionClassLoader(bus), ExceptionClassCreator.class);
+ bus.setExtension(new WrapperClassLoader(bus), WrapperClassCreator.class);
+ bus.setExtension(new FactoryClassLoader(bus), FactoryClassCreator.class);
+ bus.setExtension(new GeneratedNamespaceClassLoader(bus), NamespaceClassCreator.class);
+
+ run(args, bus);
+
+ System.exit(0);
+ }
+
+ public static void run(String[] args, final Bus bus) {
+ File wsdl = new File(args[0]);
+
+ final JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
+ factory.setServiceClass(AddNumbers.class);
+ factory.setWsdlURL(wsdl.toURI().toString());
+ final AddNumbers client = (AddNumbers)factory.create();
+
+ try {
+ int number1 = 10;
+ int number2 = 20;
+
+ System.out.printf("Invoking addNumbers(%d, %d)\n", number1, number2);
+ int result = client.addNumbers(number1, number2);
+ System.out.printf("The result of adding %d and %d is %d.\n\n", number1, number2, result);
+
+ number1 = 3;
+ number2 = 5;
+
+ System.out.printf("Invoking addNumbers(%d, %d)\n", number1, number2);
+ result = client.addNumbers(number1, number2);
+ System.out.printf("The result of adding %d and %d is %d.\n\n", number1, number2, result);
+
+ number1 = -10;
+ System.out.printf("Invoking addNumbers(%d, %d)\n", number1, number2);
+ result = client.addNumbers(number1, number2);
+ System.out.printf("The result of adding %d and %d is %d.\n", number1, number2, result);
+
+ } catch (AddNumbersFault ex) {
+ System.out.printf("Caught AddNumbersFault: %s\n", ex.getFaultInfo().getMessage());
+ }
+ }
+}
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/demo/jaxws/client/ClientCapture.java b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/demo/jaxws/client/ClientCapture.java
new file mode 100644
index 0000000..71b5d89
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/demo/jaxws/client/ClientCapture.java
@@ -0,0 +1,51 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package demo.jaxws.client;
+
+import java.io.File;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.extension.ExtensionManagerBus;
+import org.apache.cxf.common.spi.GeneratedClassClassLoaderCapture;
+
+public final class ClientCapture {
+ private ClientCapture() {
+ }
+
+ public static void main(String[] args) throws Exception {
+
+ if (args.length < 2) {
+ System.err.println("please provide wsdl and classes dump location");
+ System.exit(0);
+ }
+
+ final Bus bus = new ExtensionManagerBus();
+ BusFactory.setDefaultBus(bus);
+
+ final DumpingClassLoaderCapturer capturer = new DumpingClassLoaderCapturer();
+ bus.setExtension(capturer, GeneratedClassClassLoaderCapture.class);
+
+ Client.run(args, bus);
+
+ capturer.dumpTo(new File(args[1]));
+ System.exit(0);
+ }
+}
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/demo/jaxws/client/DumpingClassLoaderCapturer.java b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/demo/jaxws/client/DumpingClassLoaderCapturer.java
new file mode 100644
index 0000000..c713de9
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/demo/jaxws/client/DumpingClassLoaderCapturer.java
@@ -0,0 +1,60 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package demo.jaxws.client;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.StandardOpenOption;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.cxf.common.spi.GeneratedClassClassLoaderCapture;
+import org.apache.cxf.common.util.StringUtils;
+
+public class DumpingClassLoaderCapturer implements GeneratedClassClassLoaderCapture {
+ private final Map<String, byte[]> classes = new ConcurrentHashMap<>();
+
+ public void dumpTo(File file) throws IOException {
+ if (!file.exists())
+ Files.createDirectories(file.toPath());{
+ }
+
+ if (!file.isDirectory()) {
+ throw new IllegalArgumentException("The dump location does not exist or is not a directory: " + file);
+ }
+
+ for (Map.Entry<String, byte[]> entry: classes.entrySet()) {
+ final Path path = file.toPath().resolve(StringUtils.periodToSlashes(entry.getKey()) + ".class");
+ Files.createDirectories(path.getParent());
+
+ try (OutputStream out = Files.newOutputStream(path, StandardOpenOption.CREATE)) {
+ out.write(entry.getValue());
+ }
+ }
+ }
+
+ @Override
+ public void capture(String className, byte[] bytes) {
+ classes.putIfAbsent(className, bytes);
+ }
+}
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/org/apache/handlers/AddNumbers.java b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/org/apache/handlers/AddNumbers.java
new file mode 100644
index 0000000..e512589
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/org/apache/handlers/AddNumbers.java
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.handlers;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebResult;
+import javax.jws.WebService;
+import javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
+
+@WebService(targetNamespace = "http://apache.org/handlers", name = "AddNumbers")
+public interface AddNumbers {
+
+ @WebMethod
+ @RequestWrapper(localName = "addNumbers", targetNamespace = "http://apache.org/handlers/types", className = "org.apache.handlers.types.AddNumbers")
+ @ResponseWrapper(localName = "addNumbersResponse", targetNamespace = "http://apache.org/handlers/types", className = "org.apache.handlers.types.AddNumbersResponse")
+ @WebResult(name = "return", targetNamespace = "http://apache.org/handlers/types")
+ public int addNumbers(
+
+ @WebParam(name = "arg0", targetNamespace = "http://apache.org/handlers/types")
+ int arg0,
+ @WebParam(name = "arg1", targetNamespace = "http://apache.org/handlers/types")
+ int arg1
+ ) throws AddNumbersFault;
+}
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/org/apache/handlers/AddNumbersFault.java b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/org/apache/handlers/AddNumbersFault.java
new file mode 100644
index 0000000..7ee4f10
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/org/apache/handlers/AddNumbersFault.java
@@ -0,0 +1,55 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.handlers;
+
+import javax.xml.ws.WebFault;
+
+@WebFault(name = "FaultDetail", targetNamespace = "http://apache.org/handlers/types")
+public class AddNumbersFault extends Exception {
+ private static final long serialVersionUID = 6949117900244694759L;
+
+ private org.apache.handlers.types.FaultDetail faultInfo;
+
+ public AddNumbersFault() {
+ super();
+ }
+
+ public AddNumbersFault(String message) {
+ super(message);
+ }
+
+ public AddNumbersFault(String message, java.lang.Throwable cause) {
+ super(message, cause);
+ }
+
+ public AddNumbersFault(String message, org.apache.handlers.types.FaultDetail faultDetail) {
+ super(message);
+ this.faultInfo = faultDetail;
+ }
+
+ public AddNumbersFault(String message, org.apache.handlers.types.FaultDetail faultDetail, java.lang.Throwable cause) {
+ super(message, cause);
+ this.faultInfo = faultDetail;
+ }
+
+ public org.apache.handlers.types.FaultDetail getFaultInfo() {
+ return this.faultInfo;
+ }
+}
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/org/apache/handlers/types/FaultDetail.java b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/org/apache/handlers/types/FaultDetail.java
new file mode 100644
index 0000000..67054d0
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/org/apache/handlers/types/FaultDetail.java
@@ -0,0 +1,84 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.handlers.types;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "FaultDetail", propOrder = { "faultInfo", "message" })
+public class FaultDetail {
+
+ @XmlElement(required = true)
+ protected String faultInfo;
+ @XmlElement(required = true)
+ protected String message;
+
+ /**
+ * Gets the value of the faultInfo property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getFaultInfo() {
+ return faultInfo;
+ }
+
+ /**
+ * Sets the value of the faultInfo property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setFaultInfo(String value) {
+ this.faultInfo = value;
+ }
+
+ /**
+ * Gets the value of the message property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMessage() {
+ return message;
+ }
+
+ /**
+ * Sets the value of the message property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMessage(String value) {
+ this.message = value;
+ }
+
+}
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/org/apache/handlers/types/package-info.java b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/org/apache/handlers/types/package-info.java
new file mode 100644
index 0000000..3b31aa8
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/java/org/apache/handlers/types/package-info.java
@@ -0,0 +1,21 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://apache.org/handlers/types", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.apache.handlers.types;
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_client/jni-config.json b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_client/jni-config.json
new file mode 100644
index 0000000..0218ccb
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_client/jni-config.json
@@ -0,0 +1,22 @@
+[
+{
+ "name":"java.lang.ClassLoader",
+ "methods":[{"name":"getPlatformClassLoader","parameterTypes":[] }]
+},
+{
+ "name":"java.lang.NoSuchMethodError"
+},
+{
+ "name":"sun.management.VMManagementImpl",
+ "fields":[
+ {"name":"compTimeMonitoringSupport"},
+ {"name":"currentThreadCpuTimeSupport"},
+ {"name":"objectMonitorUsageSupport"},
+ {"name":"otherThreadCpuTimeSupport"},
+ {"name":"remoteDiagnosticCommandsSupport"},
+ {"name":"synchronizerUsageSupport"},
+ {"name":"threadAllocatedMemorySupport"},
+ {"name":"threadContentionMonitoringSupport"}
+ ]
+}
+]
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_client/native-image.properties b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_client/native-image.properties
new file mode 100644
index 0000000..b2069af
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_client/native-image.properties
@@ -0,0 +1 @@
+Args = --initialize-at-build-time=org.slf4j.impl.JDK14LoggerAdapter,org.slf4j.impl.StaticLoggerBinder,org.slf4j.LoggerFactory --allow-incomplete-classpath -H:JNIConfigurationResources=${.}/jni-config.json -H:ResourceConfigurationResources=${.}/resource-config.json -H:DynamicProxyConfigurationResources=${.}/proxy-config.json -H:ReflectionConfigurationResources=${.}/reflect-config.json --report-unsupported-elements-at-runtime --enable-url-protocols=http
\ No newline at end of file
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_client/proxy-config.json b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_client/proxy-config.json
new file mode 100644
index 0000000..f32f043
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_client/proxy-config.json
@@ -0,0 +1,10 @@
+[
+ ["com.sun.xml.bind.marshaller.CharacterEscapeHandler"],
+ ["javax.xml.bind.annotation.XmlAccessorType","com.sun.xml.bind.v2.model.annotation.Locatable"],
+ ["org.apache.cxf.binding.soap.wsdl.extensions.SoapAddress"],
+ ["org.apache.cxf.binding.soap.wsdl.extensions.SoapBinding"],
+ ["org.apache.cxf.binding.soap.wsdl.extensions.SoapBody"],
+ ["org.apache.cxf.binding.soap.wsdl.extensions.SoapOperation"],
+ ["org.apache.cxf.common.jaxb.JAXBContextProxy"],
+ ["org.apache.handlers.AddNumbers","javax.xml.ws.BindingProvider","java.io.Closeable","org.apache.cxf.endpoint.Client"]
+]
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_client/reflect-config.json b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_client/reflect-config.json
new file mode 100644
index 0000000..cc6e27b
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_client/reflect-config.json
@@ -0,0 +1,625 @@
+[
+{
+ "name":"char[]"
+},
+{
+ "name":"com.ibm.wsdl.extensions.schema.SchemaImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPAddressImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPBindingImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPBodyImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPFaultImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPHeaderImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPOperationImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.factory.WSDLFactoryImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.sun.xml.bind.marshaller.CharacterEscapeHandler",
+ "allPublicMethods":true
+},
+{
+ "name":"com.sun.xml.bind.marshaller.MinimumEscapeHandler",
+ "fields":[{"name":"theInstance"}]
+},
+{
+ "name":"com.sun.xml.bind.marshaller.NoEscapeHandler",
+ "fields":[{"name":"theInstance"}]
+},
+{
+ "name":"com.sun.xml.bind.v2.model.nav.ReflectionNavigator",
+ "methods":[{"name":"getInstance","parameterTypes":[] }]
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.JAXBContextImpl",
+ "methods":[{"name":"hasSwaRef","parameterTypes":[] }]
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.ArrayElementLeafProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.ArrayReferenceNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.SingleMapNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.SingleReferenceNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.unmarshaller.StAXExConnector",
+ "methods":[{"name":"<init>","parameterTypes":["org.jvnet.staxex.XMLStreamReaderEx","com.sun.xml.bind.v2.runtime.unmarshaller.XmlVisitor"] }]
+},
+{
+ "name":"com.sun.xml.messaging.saaj.soap.SOAPDocumentImpl",
+ "allPublicMethods":true
+},
+{
+ "name":"int",
+ "allDeclaredConstructors":true
+},
+{
+ "name":"io.netty.channel.socket.nio.NioSocketChannel",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueColdProducerFields",
+ "fields":[{"name":"producerLimit", "allowUnsafeAccess":true}]
+},
+{
+ "name":"io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueConsumerFields",
+ "fields":[{"name":"consumerIndex", "allowUnsafeAccess":true}]
+},
+{
+ "name":"io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueProducerFields",
+ "fields":[{"name":"producerIndex", "allowUnsafeAccess":true}]
+},
+{
+ "name":"java.io.Closeable",
+ "allPublicMethods":true
+},
+{
+ "name":"java.io.Writer"
+},
+{
+ "name":"java.lang.Class"
+},
+{
+ "name":"java.lang.Object",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true
+},
+{
+ "name":"java.lang.Object[]"
+},
+{
+ "name":"java.lang.String"
+},
+{
+ "name":"java.lang.invoke.MethodHandles",
+ "methods":[{"name":"lookup","parameterTypes":[] }]
+},
+{
+ "name":"java.lang.invoke.MethodHandles$Lookup",
+ "methods":[{"name":"findClass","parameterTypes":["java.lang.String"] }]
+},
+{
+ "name":"java.lang.management.ManagementFactory",
+ "methods":[{"name":"getRuntimeMXBean","parameterTypes":[] }]
+},
+{
+ "name":"java.lang.management.RuntimeMXBean",
+ "methods":[{"name":"getInputArguments","parameterTypes":[] }]
+},
+{
+ "name":"java.net.Authenticator",
+ "methods":[{"name":"getDefault","parameterTypes":[] }]
+},
+{
+ "name":"java.nio.Bits",
+ "fields":[{"name":"UNALIGNED"}]
+},
+{
+ "name":"java.nio.Buffer",
+ "fields":[{"name":"address", "allowUnsafeAccess":true}]
+},
+{
+ "name":"java.nio.DirectByteBuffer",
+ "methods":[{"name":"<init>","parameterTypes":["long","int"] }]
+},
+{
+ "name":"java.security.MessageDigestSpi"
+},
+{
+ "name":"java.security.SecureRandomParameters"
+},
+{
+ "name":"java.util.List"
+},
+{
+ "name":"java.util.Map"
+},
+{
+ "name":"java.util.concurrent.Executor"
+},
+{
+ "name":"javax.security.auth.login.Configuration"
+},
+{
+ "name":"javax.xml.bind.annotation.XmlAccessorType"
+},
+{
+ "name":"javax.xml.bind.annotation.XmlElement",
+ "methods":[{"name":"type","parameterTypes":[] }]
+},
+{
+ "name":"javax.xml.bind.annotation.XmlType",
+ "methods":[{"name":"factoryClass","parameterTypes":[] }]
+},
+{
+ "name":"javax.xml.namespace.QName"
+},
+{
+ "name":"javax.xml.ws.Binding"
+},
+{
+ "name":"javax.xml.ws.BindingProvider",
+ "allPublicMethods":true
+},
+{
+ "name":"javax.xml.ws.EndpointReference"
+},
+{
+ "name":"jdk.internal.misc.Unsafe",
+ "methods":[{"name":"getUnsafe","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.Bus"
+},
+{
+ "name":"org.apache.cxf.binding.AbstractBindingFactory",
+ "fields":[{"name":"bus"}]
+},
+{
+ "name":"org.apache.cxf.binding.soap.SoapBindingFactory",
+ "fields":[{"name":"DEFAULT_NAMESPACES"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.binding.soap.SoapTransportFactory",
+ "fields":[{"name":"DEFAULT_NAMESPACES"}],
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.binding.xml.XMLBindingFactory",
+ "fields":[{"name":"DEFAULT_NAMESPACES"}]
+},
+{
+ "name":"org.apache.cxf.binding.xml.wsdl11.XMLWSDLExtensionLoader",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.bindings.xformat.ObjectFactory",
+ "allDeclaredMethods":true
+},
+{
+ "name":"org.apache.cxf.bindings.xformat.XMLBindingMessageFormatExtensibility"
+},
+{
+ "name":"org.apache.cxf.bindings.xformat.XMLFormatBindingExtensibility"
+},
+{
+ "name":"org.apache.cxf.bus.managers.CXFBusLifeCycleManager",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.ClientLifeCycleManagerImpl",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.EndpointResolverRegistryImpl"
+},
+{
+ "name":"org.apache.cxf.bus.managers.HeaderManagerImpl"
+},
+{
+ "name":"org.apache.cxf.bus.managers.PhaseManagerImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.ServerLifeCycleManagerImpl"
+},
+{
+ "name":"org.apache.cxf.bus.managers.ServerRegistryImpl"
+},
+{
+ "name":"org.apache.cxf.bus.managers.WorkQueueManagerImpl"
+},
+{
+ "name":"org.apache.cxf.bus.resource.ResourceManagerImpl"
+},
+{
+ "name":"org.apache.cxf.buslifecycle.BusLifeCycleManager"
+},
+{
+ "name":"org.apache.cxf.catalog.OASISCatalogManager",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.common.spi.ClassLoaderProxyService"
+},
+{
+ "name":"org.apache.cxf.common.util.ASMHelperImpl"
+},
+{
+ "name":"org.apache.cxf.endpoint.Client",
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.cxf.endpoint.Client$Contexts"
+},
+{
+ "name":"org.apache.cxf.endpoint.ClientCallback"
+},
+{
+ "name":"org.apache.cxf.endpoint.ClientLifeCycleManager"
+},
+{
+ "name":"org.apache.cxf.endpoint.ConduitSelector"
+},
+{
+ "name":"org.apache.cxf.endpoint.Endpoint"
+},
+{
+ "name":"org.apache.cxf.endpoint.dynamic.ExceptionClassCreatorProxyService"
+},
+{
+ "name":"org.apache.cxf.ext.logging.LoggingBusLifecycleListener"
+},
+{
+ "name":"org.apache.cxf.ext.logging.LoggingFactoryBeanListener",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.ext.logging.OldLoggingFactoryBeanListener",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.jaxb.FactoryClassProxyService"
+},
+{
+ "name":"org.apache.cxf.jaxb.JAXBDataBinding",
+ "methods":[{"name":"<init>","parameterTypes":["boolean","java.util.Map"] }]
+},
+{
+ "name":"org.apache.cxf.jaxb.WrapperHelperProxyService"
+},
+{
+ "name":"org.apache.cxf.jaxws.context.WebServiceContextResourceResolver",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.jaxws.spi.WrapperClassCreatorProxyService"
+},
+{
+ "name":"org.apache.cxf.message.Exchange"
+},
+{
+ "name":"org.apache.cxf.message.Message"
+},
+{
+ "name":"org.apache.cxf.phase.PhaseManager"
+},
+{
+ "name":"org.apache.cxf.policy.PolicyDataEngine"
+},
+{
+ "name":"org.apache.cxf.service.factory.FactoryBeanListenerManager",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.service.model.BindingOperationInfo"
+},
+{
+ "name":"org.apache.cxf.transport.Conduit"
+},
+{
+ "name":"org.apache.cxf.transport.http.HTTPTransportFactory",
+ "fields":[{"name":"DEFAULT_NAMESPACES"}],
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.transport.http.HTTPWSDLExtensionLoader",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.transport.http.ReferencingAuthenticator",
+ "methods":[{"name":"<init>","parameterTypes":["java.net.Authenticator","java.net.Authenticator"] }]
+},
+{
+ "name":"org.apache.cxf.transport.http.netty.client.NettyHttpConduitFactory",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.transport.http.netty.client.NettyHttpTransportFactory"
+},
+{
+ "name":"org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider"
+},
+{
+ "name":"org.apache.cxf.transports.http.configuration.HTTPClientPolicyExtensibility"
+},
+{
+ "name":"org.apache.cxf.transports.http.configuration.HTTPServerPolicyExtensibility"
+},
+{
+ "name":"org.apache.cxf.transports.http.configuration.ObjectFactory",
+ "allDeclaredMethods":true
+},
+{
+ "name":"org.apache.cxf.ws.addressing.impl.AddressingFeatureApplier"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.impl.AddressingWSDLExtensionLoader",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.addressing.impl.MAPAggregatorImplLoader"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.policy.AddressingAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.policy.AddressingPolicyInterceptorProvider"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.policy.UsingAddressingAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.wsdl.ObjectFactory",
+ "allDeclaredMethods":true
+},
+{
+ "name":"org.apache.cxf.ws.addressing.wsdl.UsingAddressingExtensibility"
+},
+{
+ "name":"org.apache.cxf.ws.policy.AssertionBuilderRegistry"
+},
+{
+ "name":"org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyAnnotationListener",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyBuilderImpl",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyDataEngineImpl",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyEngine"
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyEngineImpl",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyInterceptorProviderRegistry"
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyInterceptorProviderRegistryImpl",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.ServiceModelPolicyProvider",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.external.DomainExpressionBuilderRegistry"
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.external.EndpointReferenceDomainExpressionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.external.URIDomainExpressionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.mtom.MTOMAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.policy.mtom.MTOMPolicyInterceptorProvider"
+},
+{
+ "name":"org.apache.cxf.wsdl.ExtensionClassCreatorProxyService"
+},
+{
+ "name":"org.apache.cxf.wsdl.WSDLManager"
+},
+{
+ "name":"org.apache.cxf.wsdl.http.AddressTypeExtensibility"
+},
+{
+ "name":"org.apache.cxf.wsdl.http.ObjectFactory",
+ "allDeclaredMethods":true
+},
+{
+ "name":"org.apache.cxf.wsdl11.WSDLManagerImpl",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.handlers.AddNumbers",
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.handlers.AddNumbersFault",
+ "allPublicConstructors":true,
+ "methods":[{"name":"getFaultInfo","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.handlers.jaxws_asm.AddNumbers",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.handlers.jaxws_asm.AddNumbersResponse",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.handlers.jaxws_asm.AddNumbersResponse_WrapperTypeHelper1"
+},
+{
+ "name":"org.apache.handlers.jaxws_asm.AddNumbers_WrapperTypeHelper1"
+},
+{
+ "name":"org.apache.handlers.types.FaultDetail",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "methods":[
+ {"name":"<init>","parameterTypes":[] },
+ {"name":"getMessage","parameterTypes":[] }
+ ]
+},
+{
+ "name":"org.apache.xml.resolver.CatalogManager"
+},
+{
+ "name":"org.jvnet.staxex.XMLStreamReaderEx"
+},
+{
+ "name":"org.slf4j.LoggerFactory",
+ "methods":[{"name":"getILoggerFactory","parameterTypes":[] }]
+},
+{
+ "name":"org.slf4j.impl.StaticLoggerBinder"
+},
+{
+ "name":"org.w3c.dom.Node",
+ "methods":[
+ {"name":"getUserData","parameterTypes":["java.lang.String"] },
+ {"name":"setUserData","parameterTypes":["java.lang.String","java.lang.Object","org.w3c.dom.UserDataHandler"] }
+ ]
+},
+{
+ "name":"org.w3c.dom.UserDataHandler"
+},
+{
+ "name":"sun.misc.Unsafe",
+ "fields":[{"name":"theUnsafe"}],
+ "methods":[
+ {"name":"copyMemory","parameterTypes":["java.lang.Object","long","java.lang.Object","long","long"] },
+ {"name":"getAndAddLong","parameterTypes":["java.lang.Object","long","long"] },
+ {"name":"getAndSetObject","parameterTypes":["java.lang.Object","long","java.lang.Object"] },
+ {"name":"invokeCleaner","parameterTypes":["java.nio.ByteBuffer"] }
+ ]
+},
+{
+ "name":"sun.nio.ch.SelectorImpl",
+ "fields":[
+ {"name":"publicSelectedKeys", "allowUnsafeAccess":true},
+ {"name":"selectedKeys", "allowUnsafeAccess":true}
+ ]
+},
+{
+ "name":"sun.security.provider.DRBG",
+ "methods":[{"name":"<init>","parameterTypes":["java.security.SecureRandomParameters"] }]
+},
+{
+ "name":"sun.security.provider.SHA",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"sun.security.provider.SHA2$SHA256",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+}
+]
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_client/resource-config.json b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_client/resource-config.json
new file mode 100644
index 0000000..6d323d6
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_client/resource-config.json
@@ -0,0 +1,56 @@
+{
+ "resources":{
+ "includes":[
+ {"pattern":"\\QMETA-INF/cxf/bus-extensions.txt\\E"},
+ {"pattern":"\\QMETA-INF/io.netty.versions.properties\\E"},
+ {"pattern":"\\QMETA-INF/mailcap.default\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.xml.bind.JAXBContextFactory\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.xml.stream.XMLEventFactory\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.xml.stream.XMLInputFactory\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.xml.stream.XMLOutputFactory\\E"},
+ {"pattern":"\\Qorg/apache/cxf/transport/http/ReferencingAuthenticator.class\\E"},
+ {"pattern":"\\Qorg/apache/cxf/version/version.properties\\E"},
+ {"pattern":"\\Qorg/apache/xml/resolver/etc/catalog.dtd\\E"},
+ {"pattern":"\\Qorg/apache/xml/resolver/etc/catalog.rng\\E"},
+ {"pattern":"\\Qorg/apache/xml/resolver/etc/catalog.xsd\\E"},
+ {"pattern":"\\Qorg/apache/xml/resolver/etc/xcatalog.dtd\\E"},
+ {"pattern":"\\Qorg/slf4j/impl/StaticLoggerBinder.class\\E"},
+ {"pattern":"\\Qschemas/wsdl/ws-addr-wsdl.xsd\\E"},
+ {"pattern":"\\Qschemas/wsdl/ws-addr.xsd\\E"},
+ {"pattern":"\\Qschemas/wsdl/wsrm.xsd\\E"}
+ ]},
+ "bundles":[
+ {"name":"org.apache.cxf.Messages"},
+ {"name":"org.apache.cxf.binding.soap.interceptor.Messages"},
+ {"name":"org.apache.cxf.binding.soap.saaj.Messages"},
+ {"name":"org.apache.cxf.bus.extension.Messages"},
+ {"name":"org.apache.cxf.bus.managers.Messages"},
+ {"name":"org.apache.cxf.common.annotation.Messages"},
+ {"name":"org.apache.cxf.common.injection.Messages"},
+ {"name":"org.apache.cxf.common.jaxb.Messages"},
+ {"name":"org.apache.cxf.common.util.Messages"},
+ {"name":"org.apache.cxf.endpoint.Messages"},
+ {"name":"org.apache.cxf.frontend.Messages"},
+ {"name":"org.apache.cxf.interceptor.Messages"},
+ {"name":"org.apache.cxf.jaxb.Messages"},
+ {"name":"org.apache.cxf.jaxb.attachment.Messages"},
+ {"name":"org.apache.cxf.jaxws.Messages"},
+ {"name":"org.apache.cxf.jaxws.binding.soap.Messages"},
+ {"name":"org.apache.cxf.jaxws.handler.Messages"},
+ {"name":"org.apache.cxf.jaxws.interceptors.Messages"},
+ {"name":"org.apache.cxf.jaxws.support.Messages"},
+ {"name":"org.apache.cxf.resource.Messages"},
+ {"name":"org.apache.cxf.service.factory.Messages"},
+ {"name":"org.apache.cxf.service.model.Messages"},
+ {"name":"org.apache.cxf.staxutils.Messages"},
+ {"name":"org.apache.cxf.transport.http.Messages"},
+ {"name":"org.apache.cxf.transport.https.Messages"},
+ {"name":"org.apache.cxf.ws.policy.APIMessages"},
+ {"name":"org.apache.cxf.ws.policy.Messages"},
+ {"name":"org.apache.cxf.ws.policy.attachment.Messages"},
+ {"name":"org.apache.cxf.wsdl.Messages"},
+ {"name":"org.apache.cxf.wsdl.interceptors.Messages"},
+ {"name":"org.apache.cxf.wsdl.service.factory.Messages"},
+ {"name":"org.apache.cxf.wsdl11.Messages"}
+ ]
+}
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/resources/addNumbers.wsdl b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/resources/addNumbers.wsdl
new file mode 100644
index 0000000..415c688
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/resources/addNumbers.wsdl
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<definitions xmlns:tns="http://apache.org/handlers" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:x1="http://apache.org/handlers/types" name="AddNumbers" targetNamespace="http://apache.org/handlers">
+ <types>
+ <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://apache.org/handlers/types" elementFormDefault="qualified">
+ <complexType name="addNumbersResponse">
+ <sequence>
+ <element name="return" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ <element name="addNumbersResponse" type="x1:addNumbersResponse"/>
+ <complexType name="addNumbers">
+ <sequence>
+ <element name="arg0" type="xsd:int"/>
+ <element name="arg1" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ <element name="addNumbers" type="x1:addNumbers"/>
+ <element name="FaultDetail" type="x1:FaultDetail"/>
+ <complexType name="FaultDetail">
+ <sequence>
+ <element name="faultInfo" type="xsd:string"/>
+ <element name="message" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </xsd:schema>
+ </types>
+ <message name="addNumbers">
+ <part name="parameters" element="x1:addNumbers"/>
+ </message>
+ <message name="addNumbersResponse">
+ <part name="result" element="x1:addNumbersResponse"/>
+ </message>
+ <message name="addNumbersFault">
+ <part name="AddNumbersFault" element="x1:FaultDetail"/>
+ </message>
+ <portType name="AddNumbers">
+ <operation name="addNumbers">
+ <input message="tns:addNumbers"/>
+ <output message="tns:addNumbersResponse"/>
+ <fault name="addNumbersFault" message="tns:addNumbersFault"/>
+ </operation>
+ </portType>
+ <binding name="AddNumbersBinding" type="tns:AddNumbers">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+ <operation name="addNumbers">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="addNumbersFault">
+ <soap:fault name="addNumbersFault" use="literal"/>
+ </fault>
+ </operation>
+ </binding>
+ <service name="AddNumbersService">
+ <port name="AddNumbersPort" binding="tns:AddNumbersBinding">
+ <soap:address location="http://localhost:9000/handlers/AddNumbersService/AddNumbersPort"/>
+ </port>
+ </service>
+</definitions>
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/pom.xml b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/pom.xml
new file mode 100644
index 0000000..423bfce
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/pom.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>jaxws_graalvm_dynamic_server</artifactId>
+ <name>JAX-WS GraalVM Demo (capture generated classes)</name>
+ <description>JAX-WS GraalVM Demo (capture generated classes)</description>
+ <parent>
+ <groupId>org.apache.cxf.samples</groupId>
+ <artifactId>cxf-samples</artifactId>
+ <version>3.5.0-SNAPSHOT</version>
+ </parent>
+ <properties>
+ <cxf.version>${project.version}</cxf.version>
+ <wsdl.file>${basedir}/src/main/resources/addNumbers.wsdl</wsdl.file>
+ <graalvm.version>20.3.0</graalvm.version>
+ </properties>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-codegen-plugin</artifactId>
+ <version>${project.version}</version>
+ <executions>
+ <execution>
+ <id>generate-SOAPService1</id>
+ <phase>generate-sources</phase>
+ <configuration>
+ <wsdlOptions>
+ <wsdlOption>
+ <wsdl>${wsdl.file}</wsdl>
+ </wsdlOption>
+ </wsdlOptions>
+ </configuration>
+ <goals>
+ <goal>wsdl2java</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+
+ <profiles>
+ <profile>
+ <id>server</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.graalvm.nativeimage</groupId>
+ <artifactId>native-image-maven-plugin</artifactId>
+ <version>${graalvm.version}</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>native-image</goal>
+ </goals>
+ <phase>package</phase>
+ </execution>
+ </executions>
+ <configuration>
+ <mainClass>demo.jaxws.server.Server</mainClass>
+ <imageName>jaxws-demo-server</imageName>
+ <buildArgs>--no-fallback</buildArgs>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxws</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-transports-http</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-transports-http-netty-server</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/java/demo/jaxws/server/AddNumbersImpl.java b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/java/demo/jaxws/server/AddNumbersImpl.java
new file mode 100644
index 0000000..5704498
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/java/demo/jaxws/server/AddNumbersImpl.java
@@ -0,0 +1,56 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package demo.jaxws.server;
+
+import javax.jws.WebService;
+import org.apache.handlers.AddNumbers;
+import org.apache.handlers.AddNumbersFault;
+import org.apache.handlers.types.FaultDetail;
+
+
+@WebService(name = "AddNumbers",
+ targetNamespace = "http://apache.org/handlers",
+ portName = "AddNumbersPort",
+ endpointInterface = "org.apache.handlers.AddNumbers",
+ serviceName = "AddNumbersService")
+public class AddNumbersImpl implements AddNumbers {
+
+
+ /**
+ * @param number1
+ * @param number2
+ * @return The sum
+ * @throws AddNumbersException
+ * if any of the numbers to be added is negative.
+ */
+ public int addNumbers(int number1, int number2) throws AddNumbersFault {
+ System.out.println("addNumbers called....." + number1 + ":" + number2);
+ if (number1 < 0 || number2 < 0) {
+ String message = "Negative number cant be added!";
+ String detail = "Numbers: " + number1 + ", " + number2;
+ FaultDetail fault = new FaultDetail();
+ fault.setMessage(message);
+ fault.setFaultInfo(detail);
+ throw new AddNumbersFault(message, fault);
+ }
+ return number1 + number2;
+ }
+
+}
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/java/demo/jaxws/server/Server.java b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/java/demo/jaxws/server/Server.java
new file mode 100644
index 0000000..f94ff35
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/java/demo/jaxws/server/Server.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package demo.jaxws.server;
+
+
+import javax.xml.ws.Endpoint;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.extension.ExtensionManagerBus;
+
+public class Server {
+ protected Server() throws Exception {
+ System.out.println("Starting AddNumbers Server");
+
+ final Bus bus = new ExtensionManagerBus();
+ BusFactory.setDefaultBus(bus);
+
+ Object implementor = new AddNumbersImpl();
+ String address = "http://localhost:9000/handlers/AddNumbersService/AddNumbersPort";
+
+ Endpoint.publish(address, implementor);
+ }
+
+ public static void main(String[] args) throws Exception {
+ new Server();
+ System.out.println("Server ready...");
+
+ Thread.sleep(5 * 60 * 1000);
+ System.out.println("Server exiting");
+ System.exit(0);
+ }
+}
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_server/jni-config.json b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_server/jni-config.json
new file mode 100644
index 0000000..0218ccb
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_server/jni-config.json
@@ -0,0 +1,22 @@
+[
+{
+ "name":"java.lang.ClassLoader",
+ "methods":[{"name":"getPlatformClassLoader","parameterTypes":[] }]
+},
+{
+ "name":"java.lang.NoSuchMethodError"
+},
+{
+ "name":"sun.management.VMManagementImpl",
+ "fields":[
+ {"name":"compTimeMonitoringSupport"},
+ {"name":"currentThreadCpuTimeSupport"},
+ {"name":"objectMonitorUsageSupport"},
+ {"name":"otherThreadCpuTimeSupport"},
+ {"name":"remoteDiagnosticCommandsSupport"},
+ {"name":"synchronizerUsageSupport"},
+ {"name":"threadAllocatedMemorySupport"},
+ {"name":"threadContentionMonitoringSupport"}
+ ]
+}
+]
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_server/native-image.properties b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_server/native-image.properties
new file mode 100644
index 0000000..b2069af
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_server/native-image.properties
@@ -0,0 +1 @@
+Args = --initialize-at-build-time=org.slf4j.impl.JDK14LoggerAdapter,org.slf4j.impl.StaticLoggerBinder,org.slf4j.LoggerFactory --allow-incomplete-classpath -H:JNIConfigurationResources=${.}/jni-config.json -H:ResourceConfigurationResources=${.}/resource-config.json -H:DynamicProxyConfigurationResources=${.}/proxy-config.json -H:ReflectionConfigurationResources=${.}/reflect-config.json --report-unsupported-elements-at-runtime --enable-url-protocols=http
\ No newline at end of file
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_server/proxy-config.json b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_server/proxy-config.json
new file mode 100644
index 0000000..9e5ed4d
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_server/proxy-config.json
@@ -0,0 +1,22 @@
+[
+ ["com.sun.xml.bind.marshaller.CharacterEscapeHandler"],
+ ["com.sun.xml.bind.v2.schemagen.xmlschema.ComplexType"],
+ ["com.sun.xml.bind.v2.schemagen.xmlschema.ContentModelContainer"],
+ ["com.sun.xml.bind.v2.schemagen.xmlschema.LocalElement"],
+ ["com.sun.xml.bind.v2.schemagen.xmlschema.Particle"],
+ ["com.sun.xml.bind.v2.schemagen.xmlschema.Schema"],
+ ["com.sun.xml.bind.v2.schemagen.xmlschema.TopLevelElement"],
+ ["javax.xml.bind.annotation.XmlAccessorType","com.sun.xml.bind.v2.model.annotation.Locatable"],
+ ["javax.xml.bind.annotation.XmlRegistry","com.sun.xml.bind.v2.model.annotation.Locatable"],
+ ["org.apache.cxf.binding.soap.wsdl.extensions.SoapAddress"],
+ ["org.apache.cxf.binding.soap.wsdl.extensions.SoapBinding"],
+ ["org.apache.cxf.binding.soap.wsdl.extensions.SoapBody"],
+ ["org.apache.cxf.binding.soap.wsdl.extensions.SoapFault"],
+ ["org.apache.cxf.binding.soap.wsdl.extensions.SoapOperation"],
+ ["org.apache.cxf.common.jaxb.JAXBBeanInfo"],
+ ["org.apache.cxf.common.jaxb.JAXBContextProxy"],
+ ["org.apache.cxf.common.util.ASMHelper$AnnotationVisitor"],
+ ["org.apache.cxf.common.util.ASMHelper$ClassWriter"],
+ ["org.apache.cxf.common.util.ASMHelper$FieldVisitor"],
+ ["org.apache.cxf.common.util.ASMHelper$MethodVisitor"]
+]
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_server/reflect-config.json b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_server/reflect-config.json
new file mode 100644
index 0000000..e4a5a9e
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_server/reflect-config.json
@@ -0,0 +1,909 @@
+[
+{
+ "name":"char[]"
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPAddressImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPBindingImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPBodyImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPFaultImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPHeaderImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.extensions.soap.SOAPOperationImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.ibm.wsdl.factory.WSDLFactoryImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.sun.xml.bind.marshaller.CharacterEscapeHandler",
+ "allPublicMethods":true
+},
+{
+ "name":"com.sun.xml.bind.marshaller.MinimumEscapeHandler",
+ "fields":[{"name":"theInstance"}]
+},
+{
+ "name":"com.sun.xml.bind.marshaller.NoEscapeHandler",
+ "fields":[{"name":"theInstance"}]
+},
+{
+ "name":"com.sun.xml.bind.v2.model.nav.ReflectionNavigator",
+ "methods":[{"name":"getInstance","parameterTypes":[] }]
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.JAXBContextImpl",
+ "methods":[
+ {"name":"getBeanInfo","parameterTypes":["java.lang.Class"] },
+ {"name":"hasSwaRef","parameterTypes":[] }
+ ]
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.JaxBeanInfo",
+ "methods":[
+ {"name":"getTypeNames","parameterTypes":[] },
+ {"name":"isElement","parameterTypes":[] }
+ ]
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.LeafBeanInfoImpl"
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.output.StAXExStreamWriterOutput",
+ "methods":[{"name":"<init>","parameterTypes":["org.jvnet.staxex.XMLStreamWriterEx"] }]
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.ArrayElementLeafProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.ArrayReferenceNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.SingleMapNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.property.SingleReferenceNodeProperty",
+ "allPublicConstructors":true
+},
+{
+ "name":"com.sun.xml.bind.v2.runtime.unmarshaller.StAXExConnector",
+ "methods":[{"name":"<init>","parameterTypes":["org.jvnet.staxex.XMLStreamReaderEx","com.sun.xml.bind.v2.runtime.unmarshaller.XmlVisitor"] }]
+},
+{
+ "name":"com.sun.xml.messaging.saaj.soap.SOAPDocumentImpl",
+ "allPublicMethods":true
+},
+{
+ "name":"demo.jaxws.server.AddNumbersImpl",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true
+},
+{
+ "name":"int",
+ "allDeclaredConstructors":true
+},
+{
+ "name":"io.netty.bootstrap.ServerBootstrap$1"
+},
+{
+ "name":"io.netty.bootstrap.ServerBootstrap$ServerBootstrapAcceptor",
+ "methods":[
+ {"name":"channelRead","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] },
+ {"name":"exceptionCaught","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Throwable"] }
+ ]
+},
+{
+ "name":"io.netty.buffer.AbstractByteBufAllocator",
+ "allDeclaredMethods":true
+},
+{
+ "name":"io.netty.buffer.AbstractReferenceCountedByteBuf",
+ "fields":[{"name":"refCnt", "allowUnsafeAccess":true}]
+},
+{
+ "name":"io.netty.channel.ChannelDuplexHandler",
+ "methods":[
+ {"name":"bind","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.net.SocketAddress","io.netty.channel.ChannelPromise"] },
+ {"name":"close","parameterTypes":["io.netty.channel.ChannelHandlerContext","io.netty.channel.ChannelPromise"] },
+ {"name":"connect","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.net.SocketAddress","java.net.SocketAddress","io.netty.channel.ChannelPromise"] },
+ {"name":"deregister","parameterTypes":["io.netty.channel.ChannelHandlerContext","io.netty.channel.ChannelPromise"] },
+ {"name":"disconnect","parameterTypes":["io.netty.channel.ChannelHandlerContext","io.netty.channel.ChannelPromise"] },
+ {"name":"flush","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"read","parameterTypes":["io.netty.channel.ChannelHandlerContext"] }
+ ]
+},
+{
+ "name":"io.netty.channel.ChannelHandlerAdapter",
+ "methods":[{"name":"exceptionCaught","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Throwable"] }]
+},
+{
+ "name":"io.netty.channel.ChannelInboundHandlerAdapter",
+ "methods":[
+ {"name":"channelActive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelInactive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRead","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] },
+ {"name":"channelReadComplete","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRegistered","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelUnregistered","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelWritabilityChanged","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"exceptionCaught","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Throwable"] },
+ {"name":"userEventTriggered","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] }
+ ]
+},
+{
+ "name":"io.netty.channel.ChannelInitializer",
+ "methods":[
+ {"name":"channelRegistered","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"exceptionCaught","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Throwable"] }
+ ]
+},
+{
+ "name":"io.netty.channel.ChannelOutboundHandlerAdapter",
+ "methods":[
+ {"name":"bind","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.net.SocketAddress","io.netty.channel.ChannelPromise"] },
+ {"name":"close","parameterTypes":["io.netty.channel.ChannelHandlerContext","io.netty.channel.ChannelPromise"] },
+ {"name":"connect","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.net.SocketAddress","java.net.SocketAddress","io.netty.channel.ChannelPromise"] },
+ {"name":"deregister","parameterTypes":["io.netty.channel.ChannelHandlerContext","io.netty.channel.ChannelPromise"] },
+ {"name":"disconnect","parameterTypes":["io.netty.channel.ChannelHandlerContext","io.netty.channel.ChannelPromise"] },
+ {"name":"flush","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"read","parameterTypes":["io.netty.channel.ChannelHandlerContext"] }
+ ]
+},
+{
+ "name":"io.netty.channel.DefaultChannelPipeline$HeadContext",
+ "methods":[
+ {"name":"bind","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.net.SocketAddress","io.netty.channel.ChannelPromise"] },
+ {"name":"channelActive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelInactive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRead","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] },
+ {"name":"channelReadComplete","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRegistered","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelUnregistered","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelWritabilityChanged","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"close","parameterTypes":["io.netty.channel.ChannelHandlerContext","io.netty.channel.ChannelPromise"] },
+ {"name":"connect","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.net.SocketAddress","java.net.SocketAddress","io.netty.channel.ChannelPromise"] },
+ {"name":"deregister","parameterTypes":["io.netty.channel.ChannelHandlerContext","io.netty.channel.ChannelPromise"] },
+ {"name":"disconnect","parameterTypes":["io.netty.channel.ChannelHandlerContext","io.netty.channel.ChannelPromise"] },
+ {"name":"exceptionCaught","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Throwable"] },
+ {"name":"flush","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"read","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"userEventTriggered","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] },
+ {"name":"write","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object","io.netty.channel.ChannelPromise"] }
+ ]
+},
+{
+ "name":"io.netty.channel.DefaultChannelPipeline$TailContext",
+ "methods":[
+ {"name":"channelActive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelInactive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRead","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] },
+ {"name":"channelReadComplete","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRegistered","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelUnregistered","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelWritabilityChanged","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"exceptionCaught","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Throwable"] },
+ {"name":"userEventTriggered","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] }
+ ]
+},
+{
+ "name":"io.netty.channel.socket.nio.NioServerSocketChannel",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"io.netty.handler.codec.ByteToMessageDecoder",
+ "methods":[
+ {"name":"channelInactive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRead","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] },
+ {"name":"channelReadComplete","parameterTypes":["io.netty.channel.ChannelHandlerContext"] }
+ ]
+},
+{
+ "name":"io.netty.handler.codec.MessageAggregator",
+ "methods":[
+ {"name":"channelInactive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelReadComplete","parameterTypes":["io.netty.channel.ChannelHandlerContext"] }
+ ]
+},
+{
+ "name":"io.netty.handler.codec.MessageToMessageCodec",
+ "methods":[
+ {"name":"channelRead","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] },
+ {"name":"write","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object","io.netty.channel.ChannelPromise"] }
+ ]
+},
+{
+ "name":"io.netty.handler.codec.MessageToMessageDecoder",
+ "methods":[{"name":"channelRead","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] }]
+},
+{
+ "name":"io.netty.handler.codec.MessageToMessageEncoder",
+ "methods":[{"name":"write","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object","io.netty.channel.ChannelPromise"] }]
+},
+{
+ "name":"io.netty.handler.codec.http.HttpContentCompressor"
+},
+{
+ "name":"io.netty.handler.codec.http.HttpContentEncoder",
+ "methods":[{"name":"channelInactive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] }]
+},
+{
+ "name":"io.netty.handler.codec.http.HttpObjectAggregator"
+},
+{
+ "name":"io.netty.handler.codec.http.HttpObjectDecoder",
+ "methods":[{"name":"userEventTriggered","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] }]
+},
+{
+ "name":"io.netty.handler.codec.http.HttpRequestDecoder"
+},
+{
+ "name":"io.netty.handler.codec.http.HttpResponseEncoder"
+},
+{
+ "name":"io.netty.handler.timeout.IdleStateHandler",
+ "methods":[
+ {"name":"channelActive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelInactive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRead","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] },
+ {"name":"channelReadComplete","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRegistered","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"write","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object","io.netty.channel.ChannelPromise"] }
+ ]
+},
+{
+ "name":"io.netty.util.ReferenceCountUtil",
+ "allDeclaredMethods":true
+},
+{
+ "name":"io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueColdProducerFields",
+ "fields":[{"name":"producerLimit", "allowUnsafeAccess":true}]
+},
+{
+ "name":"io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueConsumerFields",
+ "fields":[{"name":"consumerIndex", "allowUnsafeAccess":true}]
+},
+{
+ "name":"io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueProducerFields",
+ "fields":[{"name":"producerIndex", "allowUnsafeAccess":true}]
+},
+{
+ "name":"io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueConsumerIndexField",
+ "fields":[{"name":"consumerIndex", "allowUnsafeAccess":true}]
+},
+{
+ "name":"io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueProducerIndexField",
+ "fields":[{"name":"producerIndex", "allowUnsafeAccess":true}]
+},
+{
+ "name":"io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueProducerLimitField",
+ "fields":[{"name":"producerLimit", "allowUnsafeAccess":true}]
+},
+{
+ "name":"java.io.Writer"
+},
+{
+ "name":"java.lang.Object",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true
+},
+{
+ "name":"java.lang.management.ManagementFactory",
+ "methods":[{"name":"getRuntimeMXBean","parameterTypes":[] }]
+},
+{
+ "name":"java.lang.management.RuntimeMXBean",
+ "methods":[
+ {"name":"getInputArguments","parameterTypes":[] },
+ {"name":"getName","parameterTypes":[] }
+ ]
+},
+{
+ "name":"java.nio.Bits",
+ "fields":[{"name":"UNALIGNED"}]
+},
+{
+ "name":"java.nio.Buffer",
+ "fields":[{"name":"address", "allowUnsafeAccess":true}]
+},
+{
+ "name":"java.nio.DirectByteBuffer",
+ "methods":[{"name":"<init>","parameterTypes":["long","int"] }]
+},
+{
+ "name":"java.security.MessageDigestSpi"
+},
+{
+ "name":"java.security.SecureRandomParameters"
+},
+{
+ "name":"javax.security.auth.login.Configuration"
+},
+{
+ "name":"javax.xml.bind.annotation.XmlAccessorType"
+},
+{
+ "name":"javax.xml.bind.annotation.XmlElement",
+ "methods":[{"name":"type","parameterTypes":[] }]
+},
+{
+ "name":"javax.xml.bind.annotation.XmlElementDecl",
+ "methods":[{"name":"scope","parameterTypes":[] }]
+},
+{
+ "name":"javax.xml.bind.annotation.XmlRegistry"
+},
+{
+ "name":"javax.xml.bind.annotation.XmlType",
+ "methods":[{"name":"factoryClass","parameterTypes":[] }]
+},
+{
+ "name":"javax.xml.ws.RequestWrapper",
+ "methods":[{"name":"partName","parameterTypes":[] }]
+},
+{
+ "name":"javax.xml.ws.ResponseWrapper",
+ "methods":[{"name":"partName","parameterTypes":[] }]
+},
+{
+ "name":"javax.xml.ws.WebFault",
+ "methods":[{"name":"messageName","parameterTypes":[] }]
+},
+{
+ "name":"jdk.internal.misc.Unsafe",
+ "methods":[{"name":"getUnsafe","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.binding.AbstractBindingFactory",
+ "fields":[{"name":"bus"}]
+},
+{
+ "name":"org.apache.cxf.binding.soap.SoapBindingFactory",
+ "fields":[{"name":"DEFAULT_NAMESPACES"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.binding.soap.SoapTransportFactory",
+ "fields":[{"name":"DEFAULT_NAMESPACES"}],
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.binding.xml.XMLBindingFactory",
+ "fields":[{"name":"DEFAULT_NAMESPACES"}]
+},
+{
+ "name":"org.apache.cxf.binding.xml.wsdl11.XMLWSDLExtensionLoader",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.bindings.xformat.ObjectFactory",
+ "allDeclaredMethods":true
+},
+{
+ "name":"org.apache.cxf.bindings.xformat.XMLBindingMessageFormat",
+ "methods":[{"name":"getOtherAttributes","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.bindings.xformat.XMLFormatBinding",
+ "methods":[{"name":"getOtherAttributes","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.CXFBusLifeCycleManager",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.ClientLifeCycleManagerImpl"
+},
+{
+ "name":"org.apache.cxf.bus.managers.EndpointResolverRegistryImpl"
+},
+{
+ "name":"org.apache.cxf.bus.managers.HeaderManagerImpl"
+},
+{
+ "name":"org.apache.cxf.bus.managers.PhaseManagerImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.ServerLifeCycleManagerImpl",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.ServerRegistryImpl",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.WorkQueueManagerImpl"
+},
+{
+ "name":"org.apache.cxf.bus.resource.ResourceManagerImpl"
+},
+{
+ "name":"org.apache.cxf.buslifecycle.BusLifeCycleManager"
+},
+{
+ "name":"org.apache.cxf.catalog.OASISCatalogManager"
+},
+{
+ "name":"org.apache.cxf.common.spi.ClassLoaderProxyService"
+},
+{
+ "name":"org.apache.cxf.common.util.ASMHelper"
+},
+{
+ "name":"org.apache.cxf.common.util.ASMHelperImpl",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.common.util.ASMHelperImpl$2",
+ "methods":[
+ {"name":"getValue","parameterTypes":[] },
+ {"name":"realType","parameterTypes":[] }
+ ]
+},
+{
+ "name":"org.apache.cxf.common.util.OpcodesProxy",
+ "allDeclaredFields":true
+},
+{
+ "name":"org.apache.cxf.endpoint.ServerLifeCycleManager"
+},
+{
+ "name":"org.apache.cxf.endpoint.ServerRegistry"
+},
+{
+ "name":"org.apache.cxf.endpoint.dynamic.ExceptionClassCreatorProxyService"
+},
+{
+ "name":"org.apache.cxf.ext.logging.LoggingBusLifecycleListener"
+},
+{
+ "name":"org.apache.cxf.ext.logging.LoggingFactoryBeanListener",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.ext.logging.OldLoggingFactoryBeanListener",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.jaxb.FactoryClassProxyService"
+},
+{
+ "name":"org.apache.cxf.jaxb.JAXBDataBinding",
+ "methods":[{"name":"<init>","parameterTypes":["boolean","java.util.Map"] }]
+},
+{
+ "name":"org.apache.cxf.jaxb.WrapperHelperCreator"
+},
+{
+ "name":"org.apache.cxf.jaxb.WrapperHelperProxyService",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.jaxws.context.WebServiceContextResourceResolver",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.jaxws.spi.WrapperClassCreator"
+},
+{
+ "name":"org.apache.cxf.jaxws.spi.WrapperClassCreatorProxyService",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.phase.PhaseManager"
+},
+{
+ "name":"org.apache.cxf.policy.PolicyDataEngine"
+},
+{
+ "name":"org.apache.cxf.service.factory.FactoryBeanListenerManager",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.transport.http.HTTPTransportFactory",
+ "fields":[{"name":"DEFAULT_NAMESPACES"}],
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.transport.http.HTTPWSDLExtensionLoader",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.transport.http.netty.server.NettyHttpDestinationFactory",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.transport.http.netty.server.NettyHttpServerEngineFactory",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.transport.http.netty.server.NettyHttpServletHandler",
+ "methods":[
+ {"name":"channelActive","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"channelRead","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] },
+ {"name":"channelReadComplete","parameterTypes":["io.netty.channel.ChannelHandlerContext"] },
+ {"name":"exceptionCaught","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Throwable"] },
+ {"name":"userEventTriggered","parameterTypes":["io.netty.channel.ChannelHandlerContext","java.lang.Object"] }
+ ]
+},
+{
+ "name":"org.apache.cxf.transport.http.netty.server.NettyHttpServletPipelineFactory"
+},
+{
+ "name":"org.apache.cxf.transport.http.netty.server.NettyHttpTransportFactory"
+},
+{
+ "name":"org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider"
+},
+{
+ "name":"org.apache.cxf.transports.http.configuration.HTTPClientPolicy",
+ "methods":[{"name":"getOtherAttributes","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.transports.http.configuration.HTTPServerPolicy",
+ "methods":[{"name":"getOtherAttributes","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.transports.http.configuration.ObjectFactory",
+ "allDeclaredMethods":true
+},
+{
+ "name":"org.apache.cxf.ws.addressing.impl.AddressingFeatureApplier"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.impl.AddressingWSDLExtensionLoader",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.addressing.impl.MAPAggregatorImplLoader"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.policy.AddressingAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.policy.AddressingPolicyInterceptorProvider"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.policy.UsingAddressingAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.addressing.wsdl.ObjectFactory",
+ "allDeclaredMethods":true
+},
+{
+ "name":"org.apache.cxf.ws.addressing.wsdl.UsingAddressing",
+ "methods":[{"name":"getOtherAttributes","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.AssertionBuilderRegistry"
+},
+{
+ "name":"org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyAnnotationListener",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyBuilderImpl",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyDataEngineImpl",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyEngine"
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyEngineImpl",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyInterceptorProviderRegistry"
+},
+{
+ "name":"org.apache.cxf.ws.policy.PolicyInterceptorProviderRegistryImpl",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.ServiceModelPolicyProvider",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.external.DomainExpressionBuilderRegistry"
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.external.EndpointReferenceDomainExpressionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.external.URIDomainExpressionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.ws.policy.mtom.MTOMAssertionBuilder"
+},
+{
+ "name":"org.apache.cxf.ws.policy.mtom.MTOMPolicyInterceptorProvider"
+},
+{
+ "name":"org.apache.cxf.wsdl.ExtensionClassCreator"
+},
+{
+ "name":"org.apache.cxf.wsdl.ExtensionClassCreatorProxyService",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.wsdl.WSDLManager"
+},
+{
+ "name":"org.apache.cxf.wsdl.http.AddressType",
+ "methods":[{"name":"getOtherAttributes","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.wsdl.http.ObjectFactory",
+ "allDeclaredMethods":true
+},
+{
+ "name":"org.apache.cxf.wsdl11.WSDLManagerImpl",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.handlers.AddNumbers",
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.handlers.AddNumbersFault",
+ "methods":[{"name":"getFaultInfo","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.handlers.types.AddNumbers",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.handlers.types.AddNumbersResponse",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.handlers.types.FaultDetail",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.handlers.types.ObjectFactory",
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.jvnet.staxex.XMLStreamReaderEx"
+},
+{
+ "name":"org.jvnet.staxex.XMLStreamWriterEx"
+},
+{
+ "name":"org.objectweb.asm.AnnotationWriter",
+ "methods":[{"name":"visitEnd","parameterTypes":[] }]
+},
+{
+ "name":"org.objectweb.asm.ClassWriter",
+ "fields":[
+ {"name":"COMPUTE_FRAMES"},
+ {"name":"COMPUTE_MAXS"}
+ ],
+ "methods":[
+ {"name":"<init>","parameterTypes":["int"] },
+ {"name":"toByteArray","parameterTypes":[] },
+ {"name":"visit","parameterTypes":["int","int","java.lang.String","java.lang.String","java.lang.String","java.lang.String[]"] },
+ {"name":"visitEnd","parameterTypes":[] },
+ {"name":"visitField","parameterTypes":["int","java.lang.String","java.lang.String","java.lang.String","java.lang.Object"] },
+ {"name":"visitMethod","parameterTypes":["int","java.lang.String","java.lang.String","java.lang.String","java.lang.String[]"] },
+ {"name":"visitSource","parameterTypes":["java.lang.String","java.lang.String"] }
+ ]
+},
+{
+ "name":"org.objectweb.asm.FieldWriter",
+ "methods":[{"name":"visitEnd","parameterTypes":[] }]
+},
+{
+ "name":"org.objectweb.asm.Label",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.objectweb.asm.MethodVisitor",
+ "methods":[{"name":"visitFrame","parameterTypes":["int","int","java.lang.Object[]","int","java.lang.Object[]"] }]
+},
+{
+ "name":"org.objectweb.asm.MethodWriter",
+ "allPublicMethods":true
+},
+{
+ "name":"org.objectweb.asm.Opcodes",
+ "fields":[
+ {"name":"AALOAD"},
+ {"name":"ACC_ABSTRACT"},
+ {"name":"ACC_FINAL"},
+ {"name":"ACC_INTERFACE"},
+ {"name":"ACC_PRIVATE"},
+ {"name":"ACC_PUBLIC"},
+ {"name":"ACC_STATIC"},
+ {"name":"ACC_SUPER"},
+ {"name":"ACC_SYNTHETIC"},
+ {"name":"ACONST_NULL"},
+ {"name":"ALOAD"},
+ {"name":"ANEWARRAY"},
+ {"name":"ARETURN"},
+ {"name":"ARRAYLENGTH"},
+ {"name":"ASTORE"},
+ {"name":"ATHROW"},
+ {"name":"CHECKCAST"},
+ {"name":"DCONST_0"},
+ {"name":"DUP"},
+ {"name":"FCONST_0"},
+ {"name":"F_APPEND"},
+ {"name":"F_SAME"},
+ {"name":"F_SAME1"},
+ {"name":"GETFIELD"},
+ {"name":"GETSTATIC"},
+ {"name":"GOTO"},
+ {"name":"ICONST_0"},
+ {"name":"ICONST_1"},
+ {"name":"IFNONNULL"},
+ {"name":"IFNULL"},
+ {"name":"IF_ICMPLT"},
+ {"name":"ILOAD"},
+ {"name":"INTEGER"},
+ {"name":"INVOKEINTERFACE"},
+ {"name":"INVOKESPECIAL"},
+ {"name":"INVOKESTATIC"},
+ {"name":"INVOKEVIRTUAL"},
+ {"name":"IRETURN"},
+ {"name":"ISTORE"},
+ {"name":"LCONST_0"},
+ {"name":"NEW"},
+ {"name":"POP"},
+ {"name":"PUTFIELD"},
+ {"name":"PUTSTATIC"},
+ {"name":"RETURN"},
+ {"name":"SIPUSH"},
+ {"name":"V1_5"},
+ {"name":"V1_6"},
+ {"name":"V1_7"}
+ ]
+},
+{
+ "name":"org.slf4j.LoggerFactory",
+ "methods":[{"name":"getILoggerFactory","parameterTypes":[] }]
+},
+{
+ "name":"org.slf4j.impl.StaticLoggerBinder"
+},
+{
+ "name":"org.w3c.dom.Node",
+ "methods":[
+ {"name":"getUserData","parameterTypes":["java.lang.String"] },
+ {"name":"setUserData","parameterTypes":["java.lang.String","java.lang.Object","org.w3c.dom.UserDataHandler"] }
+ ]
+},
+{
+ "name":"org.w3c.dom.UserDataHandler"
+},
+{
+ "name":"sun.misc.Unsafe",
+ "fields":[{"name":"theUnsafe"}],
+ "methods":[
+ {"name":"copyMemory","parameterTypes":["java.lang.Object","long","java.lang.Object","long","long"] },
+ {"name":"getAndAddLong","parameterTypes":["java.lang.Object","long","long"] },
+ {"name":"getAndSetObject","parameterTypes":["java.lang.Object","long","java.lang.Object"] },
+ {"name":"invokeCleaner","parameterTypes":["java.nio.ByteBuffer"] }
+ ]
+},
+{
+ "name":"sun.nio.ch.SelectorImpl",
+ "fields":[
+ {"name":"publicSelectedKeys", "allowUnsafeAccess":true},
+ {"name":"selectedKeys", "allowUnsafeAccess":true}
+ ]
+},
+{
+ "name":"sun.security.provider.DRBG",
+ "methods":[{"name":"<init>","parameterTypes":["java.security.SecureRandomParameters"] }]
+},
+{
+ "name":"sun.security.provider.SHA",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"sun.security.provider.SHA2$SHA256",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+}
+]
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_server/resource-config.json b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_server/resource-config.json
new file mode 100644
index 0000000..4de452a
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_server/resource-config.json
@@ -0,0 +1,56 @@
+{
+ "resources":{
+ "includes":[
+ {"pattern":"\\QMETA-INF/cxf/bus-extensions.txt\\E"},
+ {"pattern":"\\QMETA-INF/io.netty.versions.properties\\E"},
+ {"pattern":"\\QMETA-INF/mailcap.default\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.xml.bind.JAXBContextFactory\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.xml.stream.XMLEventFactory\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.xml.stream.XMLInputFactory\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.xml.stream.XMLOutputFactory\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.xml.ws.spi.Provider\\E"},
+ {"pattern":"\\Qorg/apache/cxf/version/version.properties\\E"},
+ {"pattern":"\\Qorg/slf4j/impl/StaticLoggerBinder.class\\E"},
+ {"pattern":"\\Qschemas/wsdl/ws-addr-wsdl.xsd\\E"},
+ {"pattern":"\\Qschemas/wsdl/ws-addr.xsd\\E"},
+ {"pattern":"\\Qschemas/wsdl/wsrm.xsd\\E"}
+ ]},
+ "bundles":[
+ {"name":"javax.servlet.LocalStrings"},
+ {"name":"org.apache.cxf.Messages"},
+ {"name":"org.apache.cxf.binding.soap.interceptor.Messages"},
+ {"name":"org.apache.cxf.binding.soap.saaj.Messages"},
+ {"name":"org.apache.cxf.bus.extension.Messages"},
+ {"name":"org.apache.cxf.bus.managers.Messages"},
+ {"name":"org.apache.cxf.common.annotation.Messages"},
+ {"name":"org.apache.cxf.common.injection.Messages"},
+ {"name":"org.apache.cxf.common.jaxb.Messages"},
+ {"name":"org.apache.cxf.common.util.Messages"},
+ {"name":"org.apache.cxf.endpoint.Messages"},
+ {"name":"org.apache.cxf.frontend.Messages"},
+ {"name":"org.apache.cxf.interceptor.Messages"},
+ {"name":"org.apache.cxf.jaxb.Messages"},
+ {"name":"org.apache.cxf.jaxb.attachment.Messages"},
+ {"name":"org.apache.cxf.jaxws.Messages"},
+ {"name":"org.apache.cxf.jaxws.binding.soap.Messages"},
+ {"name":"org.apache.cxf.jaxws.context.Messages"},
+ {"name":"org.apache.cxf.jaxws.handler.Messages"},
+ {"name":"org.apache.cxf.jaxws.interceptors.Messages"},
+ {"name":"org.apache.cxf.jaxws.spi.Messages"},
+ {"name":"org.apache.cxf.jaxws.support.Messages"},
+ {"name":"org.apache.cxf.resource.Messages"},
+ {"name":"org.apache.cxf.service.factory.Messages"},
+ {"name":"org.apache.cxf.service.invoker.Messages"},
+ {"name":"org.apache.cxf.service.model.Messages"},
+ {"name":"org.apache.cxf.staxutils.Messages"},
+ {"name":"org.apache.cxf.transport.http.Messages"},
+ {"name":"org.apache.cxf.transport.http.netty.server.Messages"},
+ {"name":"org.apache.cxf.transport.https.Messages"},
+ {"name":"org.apache.cxf.ws.addressing.Messages"},
+ {"name":"org.apache.cxf.ws.policy.Messages"},
+ {"name":"org.apache.cxf.ws.policy.attachment.Messages"},
+ {"name":"org.apache.cxf.wsdl.Messages"},
+ {"name":"org.apache.cxf.wsdl.interceptors.Messages"},
+ {"name":"org.apache.cxf.wsdl.service.factory.Messages"}
+ ]
+}
diff --git a/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/resources/addNumbers.wsdl b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/resources/addNumbers.wsdl
new file mode 100644
index 0000000..415c688
--- /dev/null
+++ b/distribution/src/main/release/samples/jaxws_graalvm_dynamic/server/src/main/resources/addNumbers.wsdl
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<definitions xmlns:tns="http://apache.org/handlers" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:x1="http://apache.org/handlers/types" name="AddNumbers" targetNamespace="http://apache.org/handlers">
+ <types>
+ <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://apache.org/handlers/types" elementFormDefault="qualified">
+ <complexType name="addNumbersResponse">
+ <sequence>
+ <element name="return" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ <element name="addNumbersResponse" type="x1:addNumbersResponse"/>
+ <complexType name="addNumbers">
+ <sequence>
+ <element name="arg0" type="xsd:int"/>
+ <element name="arg1" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ <element name="addNumbers" type="x1:addNumbers"/>
+ <element name="FaultDetail" type="x1:FaultDetail"/>
+ <complexType name="FaultDetail">
+ <sequence>
+ <element name="faultInfo" type="xsd:string"/>
+ <element name="message" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </xsd:schema>
+ </types>
+ <message name="addNumbers">
+ <part name="parameters" element="x1:addNumbers"/>
+ </message>
+ <message name="addNumbersResponse">
+ <part name="result" element="x1:addNumbersResponse"/>
+ </message>
+ <message name="addNumbersFault">
+ <part name="AddNumbersFault" element="x1:FaultDetail"/>
+ </message>
+ <portType name="AddNumbers">
+ <operation name="addNumbers">
+ <input message="tns:addNumbers"/>
+ <output message="tns:addNumbersResponse"/>
+ <fault name="addNumbersFault" message="tns:addNumbersFault"/>
+ </operation>
+ </portType>
+ <binding name="AddNumbersBinding" type="tns:AddNumbers">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+ <operation name="addNumbers">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="addNumbersFault">
+ <soap:fault name="addNumbersFault" use="literal"/>
+ </fault>
+ </operation>
+ </binding>
+ <service name="AddNumbersService">
+ <port name="AddNumbersPort" binding="tns:AddNumbersBinding">
+ <soap:address location="http://localhost:9000/handlers/AddNumbersService/AddNumbersPort"/>
+ </port>
+ </service>
+</definitions>
diff --git a/distribution/src/main/release/samples/pom.xml b/distribution/src/main/release/samples/pom.xml
index 8271f47..40822c7 100644
--- a/distribution/src/main/release/samples/pom.xml
+++ b/distribution/src/main/release/samples/pom.xml
@@ -146,6 +146,9 @@
<module>wsdl_first_soap12</module>
<module>wsdl_first_xml_wrapped</module>
<module>jax_rs/description_openapi_microprofile_spring</module>
+ <module>jaxws_graalvm</module>
+ <module>jaxws_graalvm_dynamic/client</module>
+ <module>jaxws_graalvm_dynamic/server</module>
</modules>
<dependencyManagement>
<dependencies>