├── .all-contributorsrc ├── .gitattributes ├── .github ├── CODEOWNERS ├── actions │ ├── build-and-run-jvm-tests │ │ └── action.yml │ ├── integration-branch-info │ │ └── action.yml │ ├── rebase-integration-branch │ │ └── action.yml │ ├── rebuild-dependency │ │ └── action.yml │ └── run-native-test │ │ └── action.yml ├── dependabot.yml ├── project.yml ├── renovate.json5 └── workflows │ ├── build.yml │ ├── codeql.yml │ ├── pre-release.yml │ ├── quarkus-snapshot.yaml │ ├── rebase-integration-branch.yml │ ├── release-perform.yml │ └── release-prepare.yml ├── .gitignore ├── .mvn ├── maven-build-cache-config.xml └── wrapper │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── .sdkmanrc ├── LICENSE ├── README.md ├── bom-test └── pom.xml ├── bom └── pom.xml ├── docs ├── README.adoc ├── antora-playbook.yml ├── antora.yml ├── modules │ └── ROOT │ │ ├── examples │ │ ├── calculator-client │ │ │ ├── CxfClientRestResource.java │ │ │ ├── DynamicClientConfigRestResource.java │ │ │ ├── application.properties │ │ │ └── pom.xml │ │ ├── client-server │ │ │ ├── BasicAuthHelloServiceImpl.java │ │ │ ├── MockedEndpointTest.java │ │ │ ├── PathAnnotationHelloServiceImpl.java │ │ │ └── application.properties │ │ ├── hc5 │ │ │ ├── application.properties │ │ │ └── async-binding.xml │ │ ├── metrics │ │ │ ├── application.properties │ │ │ └── async-binding.xml │ │ ├── mtls │ │ │ ├── MutualTlsTest.java │ │ │ └── application.properties │ │ ├── soap-service │ │ │ ├── Fruit.java │ │ │ ├── FruitService.java │ │ │ ├── FruitServiceImpl.java │ │ │ ├── HelloService.java │ │ │ ├── HelloServiceIT.java │ │ │ ├── HelloServiceImpl.java │ │ │ ├── HelloServiceTest.java │ │ │ └── application.properties │ │ ├── ws-security-policy │ │ │ ├── EncryptSignPolicyHelloService.java │ │ │ ├── HttpsPolicyHelloService.java │ │ │ ├── UsernameTokenPasswordCallback.java │ │ │ ├── UsernameTokenPolicyHelloService.java │ │ │ ├── UsernameTokenTest.java │ │ │ ├── application.properties │ │ │ ├── encrypt-sign-policy.xml │ │ │ ├── https-policy.xml │ │ │ └── username-token-policy.xml │ │ ├── ws-trust │ │ │ ├── BeanProducers.java │ │ │ ├── Sts.java │ │ │ ├── TrustHelloService.java │ │ │ ├── TrustHelloServiceImpl.java │ │ │ ├── application.properties │ │ │ └── asymmetric-saml2-policy.xml │ │ └── wsdl2java │ │ │ └── global-jaxb-bindings.xml │ │ ├── images │ │ ├── code-quarkus-io.png │ │ ├── release-notes-2-10-0-since.png │ │ └── release-notes-2-7-0-devui-services.png │ │ ├── nav.adoc │ │ └── pages │ │ ├── contributor-guide │ │ ├── index.adoc │ │ └── releasing.adoc │ │ ├── index.adoc │ │ ├── reference │ │ ├── extensions │ │ │ ├── quarkus-cxf-integration-tracing-opentelemetry.adoc │ │ │ ├── quarkus-cxf-jaxb-plugins.adoc │ │ │ ├── quarkus-cxf-rt-features-metrics.adoc │ │ │ ├── quarkus-cxf-rt-ws-rm.adoc │ │ │ ├── quarkus-cxf-rt-ws-security.adoc │ │ │ ├── quarkus-cxf-services-sts.adoc │ │ │ ├── quarkus-cxf-xjc-plugins.adoc │ │ │ └── quarkus-cxf.adoc │ │ └── index.adoc │ │ ├── release-notes │ │ ├── 2.2.0.adoc │ │ ├── 2.2.1.adoc │ │ ├── 2.2.2.adoc │ │ ├── 2.3.0.adoc │ │ ├── 2.3.1.adoc │ │ ├── 2.4.0.adoc │ │ ├── 2.5.0.adoc │ │ ├── 2.6.0.adoc │ │ ├── 2.6.1.adoc │ │ ├── 2.7.0.adoc │ │ ├── 2.7.1.adoc │ │ ├── 3.10.0.adoc │ │ ├── 3.11.0.adoc │ │ ├── 3.11.1.adoc │ │ ├── 3.12.0.adoc │ │ ├── 3.13.0.adoc │ │ ├── 3.13.1.adoc │ │ ├── 3.14.0.adoc │ │ ├── 3.15.0.adoc │ │ ├── 3.15.1.adoc │ │ ├── 3.15.2.adoc │ │ ├── 3.15.3.adoc │ │ ├── 3.16.0.adoc │ │ ├── 3.16.1.adoc │ │ ├── 3.17.0.adoc │ │ ├── 3.17.1.adoc │ │ ├── 3.17.2.adoc │ │ ├── 3.17.3.adoc │ │ ├── 3.18.0.adoc │ │ ├── 3.18.1.adoc │ │ ├── 3.19.0.adoc │ │ ├── 3.20.0.adoc │ │ ├── 3.20.1.adoc │ │ ├── 3.20.2-aggregated.adoc │ │ ├── 3.20.2.adoc │ │ ├── 3.21.0.adoc │ │ ├── 3.21.1.adoc │ │ ├── 3.22.0.adoc │ │ ├── 3.23.0.adoc │ │ ├── 3.23.1.adoc │ │ ├── 3.8.0.adoc │ │ ├── 3.8.1.adoc │ │ ├── 3.8.2.adoc │ │ ├── 3.8.3.adoc │ │ ├── 3.8.4.adoc │ │ ├── 3.8.5.adoc │ │ ├── 3.8.6.adoc │ │ ├── 3.8.7.adoc │ │ ├── 3.9.0.adoc │ │ └── index.adoc │ │ ├── release-planning.adoc │ │ ├── security-guide │ │ ├── index.adoc │ │ └── ws-securitypolicy-authentication-authorization.adoc │ │ └── user-guide │ │ ├── advanced-client-topics │ │ ├── asynchronous-client.adoc │ │ ├── cdi-scope-of-cxfclient.adoc │ │ ├── client-endpoint-url-defaults.adoc │ │ ├── configure-multiple-clients.adoc │ │ ├── dynamic-client-configuration.adoc │ │ ├── prevent-resource-leaks.adoc │ │ ├── programmatic-client-configuration-at-startup.adoc │ │ └── pure-client-applications.adoc │ │ ├── advanced-service-topics.adoc │ │ ├── advanced-service-topics │ │ ├── endpoints-and-paths.adoc │ │ ├── jax-ws-providers.adoc │ │ ├── rest-and-soap-endpoints.adoc │ │ └── running-behind-a-reverse-proxy.adoc │ │ ├── advanced-soap-client-topics.adoc │ │ ├── authentication-authorization.adoc │ │ ├── camel-integration.adoc │ │ ├── configuration.adoc │ │ ├── contract-first-code-first.adoc │ │ ├── contract-first-code-first │ │ ├── generate-java-from-wsdl.adoc │ │ └── generate-wsdl-from-java.adoc │ │ ├── create-project.adoc │ │ ├── examples.adoc │ │ ├── first-soap-client.adoc │ │ ├── first-soap-web-service.adoc │ │ ├── index.adoc │ │ ├── interceptors-features-handlers.adoc │ │ ├── interceptors-features-handlers │ │ ├── cxf-interceptors-and-features.adoc │ │ └── jax-ws-handlers.adoc │ │ ├── package-for-jvm-and-native.adoc │ │ ├── payload-logging.adoc │ │ ├── soap-payloads-with-jaxb.adoc │ │ └── ssl-tls-https.adoc ├── pom.xml └── src │ ├── main │ └── resources │ │ ├── META-INF │ │ └── resources │ │ │ └── workaround-issue-39735 │ │ └── application.properties │ └── test │ └── java │ └── io │ └── quarkiverse │ └── cxf │ └── doc │ └── it │ └── AntoraTest.java ├── extensions ├── core │ ├── axiom-api-stub │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── org │ │ │ └── apache │ │ │ └── axiom │ │ │ └── om │ │ │ └── OMException.java │ ├── deployment │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── io │ │ │ │ │ └── quarkiverse │ │ │ │ │ └── cxf │ │ │ │ │ ├── deployment │ │ │ │ │ ├── AbstractEndpointBuildItem.java │ │ │ │ │ ├── BuildTimeBusBuildItem.java │ │ │ │ │ ├── CXFServletInfosBuildItem.java │ │ │ │ │ ├── ClientSeiBuildItem.java │ │ │ │ │ ├── CxfBuildTimeConfig.java │ │ │ │ │ ├── CxfClientBuildItem.java │ │ │ │ │ ├── CxfClientProcessor.java │ │ │ │ │ ├── CxfDeploymentUtils.java │ │ │ │ │ ├── CxfDotNames.java │ │ │ │ │ ├── CxfEndpointImplementationBuildItem.java │ │ │ │ │ ├── CxfEndpointImplementationProcessor.java │ │ │ │ │ ├── CxfRouteRegistrationRequestorBuildItem.java │ │ │ │ │ ├── JakartaActivationProcessor.java │ │ │ │ │ ├── Java2WsdlProcessor.java │ │ │ │ │ ├── JaxbProcessor.java │ │ │ │ │ ├── NeethiProcessor.java │ │ │ │ │ ├── QuarkusCxfFeature.java │ │ │ │ │ ├── QuarkusCxfProcessor.java │ │ │ │ │ ├── RuntimeBusBuildItem.java │ │ │ │ │ ├── RuntimeBusCustomizerBuildItem.java │ │ │ │ │ ├── ServiceSeiBuildItem.java │ │ │ │ │ ├── WebServiceContextProcessor.java │ │ │ │ │ ├── WsApiProcessor.java │ │ │ │ │ ├── Wsdl4jProcessor.java │ │ │ │ │ ├── codegen │ │ │ │ │ │ ├── Wsdl2JavaCodeGen.java │ │ │ │ │ │ └── Wsdl2JavaParam.java │ │ │ │ │ ├── devui │ │ │ │ │ │ └── DevUIProcessor.java │ │ │ │ │ └── logging │ │ │ │ │ │ └── QuarkusCxfLoggingProcessor.java │ │ │ │ │ └── quarkus │ │ │ │ │ └── vertx │ │ │ │ │ └── http │ │ │ │ │ └── client │ │ │ │ │ └── deployment │ │ │ │ │ └── VertxWebClientProcessor.java │ │ │ └── resources │ │ │ │ ├── META-INF │ │ │ │ └── services │ │ │ │ │ └── io.quarkus.deployment.CodeGenProvider │ │ │ │ └── dev-ui │ │ │ │ ├── qwc-cxf-clients.js │ │ │ │ └── qwc-cxf-services.js │ │ │ └── test │ │ │ ├── java │ │ │ └── io │ │ │ │ └── quarkiverse │ │ │ │ └── cxf │ │ │ │ ├── deployment │ │ │ │ ├── codegen │ │ │ │ │ ├── Wsdl2JavaCodeGenTest.java │ │ │ │ │ └── Wsdl2JavaParamsTest.java │ │ │ │ ├── java2ws │ │ │ │ │ ├── AdditionalParametersJava2WsTest.java │ │ │ │ │ ├── DefaultConfigJava2WsTest.java │ │ │ │ │ ├── DisabledJava2WsTest.java │ │ │ │ │ ├── ExcludesWithoutIncludesJava2WsTest.java │ │ │ │ │ ├── IncludesConflictJava2WsTest.java │ │ │ │ │ ├── IncludesExcludesJava2WsTest.java │ │ │ │ │ └── WsdlNameTemplateJava2WsTest.java │ │ │ │ ├── logging │ │ │ │ │ ├── ConfiguredLoggingFeatureTest.java │ │ │ │ │ ├── DefaultLoggingFeatureTest.java │ │ │ │ │ ├── EnabledPrettyLoggingFeatureTest.java │ │ │ │ │ ├── GlobalClientsLoggingConfigurationTest.java │ │ │ │ │ ├── GlobalLoggingConfigurationTest.java │ │ │ │ │ ├── GlobalLoggingLimitTest.java │ │ │ │ │ ├── GlobalSensitiveTest.java │ │ │ │ │ ├── HelloService.java │ │ │ │ │ ├── HelloServiceImpl.java │ │ │ │ │ ├── NamedLoggingFeatureProducer.java │ │ │ │ │ ├── NamedLoggingFeatureTest.java │ │ │ │ │ ├── PerClientOrServiceLoggingLimitTest.java │ │ │ │ │ ├── PerClientOrServiceSensitiveTest.java │ │ │ │ │ └── UnnamedLoggingFeatureTest.java │ │ │ │ └── test │ │ │ │ │ ├── Add.java │ │ │ │ │ ├── AsmNamingClashTest.java │ │ │ │ │ ├── BadHostnameTest.java │ │ │ │ │ ├── CXFEndpointAnnotationTest.java │ │ │ │ │ ├── CertReloadTest.java │ │ │ │ │ ├── CipherSuitesTest.java │ │ │ │ │ ├── Client3xx4xx5xxTest.java │ │ │ │ │ ├── ClientAuthRedirectTest.java │ │ │ │ │ ├── ClientConduitFactoryTest.java │ │ │ │ │ ├── ClientHttpPolicyDefaultsTest.java │ │ │ │ │ ├── ClientReceiveTimeoutTest.java │ │ │ │ │ ├── ConfiglessServiceTest.java │ │ │ │ │ ├── CxfAnnotationsTest.java │ │ │ │ │ ├── CxfClientConstructorInjectionInstanceTest.java │ │ │ │ │ ├── CxfClientConstructorInjectionTest.java │ │ │ │ │ ├── CxfClientTest.java │ │ │ │ │ ├── CxfSeiOnlyClientInstanceTest.java │ │ │ │ │ ├── CxfSeiOnlyClientTest.java │ │ │ │ │ ├── CxfServiceInInterceptorTest.java │ │ │ │ │ ├── CxfServiceTest.java │ │ │ │ │ ├── Delete.java │ │ │ │ │ ├── Fruit.java │ │ │ │ │ ├── FruitDescriptionAppender.java │ │ │ │ │ ├── FruitWebService.java │ │ │ │ │ ├── FruitWebServiceImpl.java │ │ │ │ │ ├── GlobalConduitFactoryTest.java │ │ │ │ │ ├── GlobalTlsConfigurationTest.java │ │ │ │ │ ├── GreetingWebService.java │ │ │ │ │ ├── GreetingWebServiceImpl.java │ │ │ │ │ ├── HelloWebServiceImpl.java │ │ │ │ │ ├── HostnameVerifierTest.java │ │ │ │ │ ├── InjectTest.java │ │ │ │ │ ├── NamedClientInterceptorBeanTest.java │ │ │ │ │ ├── NamedInterceptorBeanTest.java │ │ │ │ │ ├── ServerDevModeTest.java │ │ │ │ │ ├── SoapBindingTest.java │ │ │ │ │ ├── TlsConfigurationTest.java │ │ │ │ │ ├── UberJarMergedResourcesTest.java │ │ │ │ │ ├── UnremovableInterceptorBeanTest.java │ │ │ │ │ ├── WsdlLocationTest.java │ │ │ │ │ ├── XForwardedTest.java │ │ │ │ │ ├── client │ │ │ │ │ ├── AsyncHandlerTest.java │ │ │ │ │ ├── WorkerDispatchTimeoutTest.java │ │ │ │ │ └── model │ │ │ │ │ │ ├── Hello.java │ │ │ │ │ │ ├── HelloResponse.java │ │ │ │ │ │ ├── HelloService.java │ │ │ │ │ │ ├── HelloService_Service.java │ │ │ │ │ │ ├── ObjectFactory.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── dev │ │ │ │ │ ├── DevUiRemoteStatsImpl.java │ │ │ │ │ ├── DevUiStats.java │ │ │ │ │ ├── DevUiStatsImpl.java │ │ │ │ │ └── DevUiTest.java │ │ │ │ │ └── path │ │ │ │ │ ├── AbstractCxfPathTest.java │ │ │ │ │ ├── CxfPathTest.java │ │ │ │ │ ├── DefaultPathsTest.java │ │ │ │ │ ├── QuarkusRootPathAndCxfPathTest.java │ │ │ │ │ └── QuarkusRootPathTest.java │ │ │ │ └── vertx │ │ │ │ └── http │ │ │ │ └── client │ │ │ │ ├── RequestBodyOutputStreamTest.java │ │ │ │ ├── TempStoreTest.java │ │ │ │ └── deployment │ │ │ │ └── VertxWebClientConduitFactoryTest.java │ │ │ └── resources │ │ │ └── wsdllocation │ │ │ └── HelloService.wsdl │ ├── pom.xml │ └── runtime │ │ ├── pom.xml │ │ └── src │ │ ├── main │ │ ├── doc │ │ │ ├── standards.adoc │ │ │ └── usage.adoc │ │ ├── java │ │ │ └── io │ │ │ │ └── quarkiverse │ │ │ │ └── cxf │ │ │ │ ├── AbstractEnumConverter.java │ │ │ │ ├── CXFClientData.java │ │ │ │ ├── CXFClientInfo.java │ │ │ │ ├── CXFClientInfos.java │ │ │ │ ├── CXFException.java │ │ │ │ ├── CXFRecorder.java │ │ │ │ ├── CXFRuntimeUtils.java │ │ │ │ ├── CXFServletInfo.java │ │ │ │ ├── CXFServletInfos.java │ │ │ │ ├── ClientInjectionPoint.java │ │ │ │ ├── ConnectionTypeConverter.java │ │ │ │ ├── CxfClientConfig.java │ │ │ │ ├── CxfClientInfoProducer.java │ │ │ │ ├── CxfClientProducer.java │ │ │ │ ├── CxfConfig.java │ │ │ │ ├── CxfEndpointConfig.java │ │ │ │ ├── CxfFixedConfig.java │ │ │ │ ├── CxfTlsConfiguration.java │ │ │ │ ├── EnabledFor.java │ │ │ │ ├── HTTPConduitImpl.java │ │ │ │ ├── HTTPConduitSpec.java │ │ │ │ ├── LoggingConfig.java │ │ │ │ ├── PrettyBoolean.java │ │ │ │ ├── QuarkusBusFactory.java │ │ │ │ ├── QuarkusClientFactoryBean.java │ │ │ │ ├── QuarkusCxfUtils.java │ │ │ │ ├── QuarkusHTTPConduitFactory.java │ │ │ │ ├── QuarkusJaxWsProxyFactoryBean.java │ │ │ │ ├── QuarkusJaxWsServerFactoryBean.java │ │ │ │ ├── QuarkusRuntimeJaxWsServiceFactoryBean.java │ │ │ │ ├── QuarkusTLSClientParameters.java │ │ │ │ ├── StacklessRejectedExecutionException.java │ │ │ │ ├── URLConnectionHTTPConduitFactory.java │ │ │ │ ├── WebServiceContextProducer.java │ │ │ │ ├── annotation │ │ │ │ ├── CXFClient.java │ │ │ │ └── CXFEndpoint.java │ │ │ │ ├── auth │ │ │ │ └── AuthFaultOutInterceptor.java │ │ │ │ ├── devui │ │ │ │ ├── CxfJsonRPCService.java │ │ │ │ ├── DevUiClientInfo.java │ │ │ │ ├── DevUiRecorder.java │ │ │ │ └── DevUiServiceInfo.java │ │ │ │ ├── extensibility │ │ │ │ ├── AddressTypeExtensibility.java │ │ │ │ ├── HTTPClientPolicyExtensibility.java │ │ │ │ ├── HTTPServerPolicyExtensibility.java │ │ │ │ ├── UsingAddressingExtensibility.java │ │ │ │ ├── XMLBindingMessageFormatExtensibility.java │ │ │ │ └── XMLFormatBindingExtensibility.java │ │ │ │ ├── graal │ │ │ │ ├── CXFSubstitutions.java │ │ │ │ └── QuarkusCxfFeature.java │ │ │ │ ├── logging │ │ │ │ └── LoggingFactoryCustomizer.java │ │ │ │ ├── mutiny │ │ │ │ ├── CxfMutinyUtils.java │ │ │ │ ├── FailedResponse.java │ │ │ │ └── SucceededResponse.java │ │ │ │ ├── runtime │ │ │ │ └── proxy │ │ │ │ │ └── RuntimeInitializedProxyMarker.java │ │ │ │ ├── transport │ │ │ │ ├── CxfHandler.java │ │ │ │ ├── VertxDestination.java │ │ │ │ ├── VertxDestinationFactory.java │ │ │ │ ├── VertxHttpServletRequest.java │ │ │ │ ├── VertxHttpServletResponse.java │ │ │ │ ├── VertxServletConfig.java │ │ │ │ ├── VertxServletOutputStream.java │ │ │ │ └── servlet │ │ │ │ │ ├── DateUtils.java │ │ │ │ │ └── LocaleUtils.java │ │ │ │ ├── vertx │ │ │ │ └── http │ │ │ │ │ └── client │ │ │ │ │ ├── BodyRecorder.java │ │ │ │ │ ├── ErrorBuffer.java │ │ │ │ │ ├── HttpClientPool.java │ │ │ │ │ ├── TempStore.java │ │ │ │ │ ├── VertxHttpClientHTTPConduit.java │ │ │ │ │ └── VertxHttpException.java │ │ │ │ └── wsdl │ │ │ │ └── QuarkusWSDLManager.java │ │ └── resources │ │ │ └── META-INF │ │ │ ├── cxf │ │ │ └── bus-extensions.txt │ │ │ ├── quarkus-extension.yaml │ │ │ └── services │ │ │ └── org.eclipse.microprofile.config.spi.Converter │ │ └── test │ │ └── java │ │ └── io │ │ └── quarkiverse │ │ └── cxf │ │ ├── logging │ │ └── LoggingFactoryCustomizerTest.java │ │ └── vertx │ │ └── http │ │ └── client │ │ └── InputStreamWriteStreamTest.java ├── features-logging │ ├── deployment │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── io │ │ │ └── quarkiverse │ │ │ └── cxf │ │ │ └── features │ │ │ └── deprecated │ │ │ └── logging │ │ │ └── deployment │ │ │ └── DeprecatedLoggingProcessor.java │ ├── pom.xml │ └── runtime │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── doc │ │ └── intro.adoc │ │ ├── java │ │ └── io │ │ │ └── quarkiverse │ │ │ └── cxf │ │ │ └── features │ │ │ └── deprecated │ │ │ └── logging │ │ │ └── DeprecatedLoggingRecorder.java │ │ └── resources │ │ └── META-INF │ │ └── quarkus-extension.yaml ├── features-metrics │ ├── deployment │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── io │ │ │ └── quarkiverse │ │ │ └── cxf │ │ │ └── metrics │ │ │ └── deployment │ │ │ └── QuarkusCxfMetricsProcessor.java │ ├── pom.xml │ └── runtime │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── doc │ │ ├── intro.adoc │ │ └── usage.adoc │ │ ├── java │ │ ├── io │ │ │ └── quarkiverse │ │ │ │ └── cxf │ │ │ │ └── metrics │ │ │ │ ├── CxfMetricsConfig.java │ │ │ │ ├── MetricsCustomizer.java │ │ │ │ └── QuarkusCxfMetricsFeature.java │ │ └── org │ │ │ └── apache │ │ │ └── cxf │ │ │ └── metrics │ │ │ └── codahale │ │ │ └── CodahaleSubstitutions.java │ │ └── resources │ │ └── META-INF │ │ └── quarkus-extension.yaml ├── integration-tracing-opentelemetry │ ├── deployment │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── io │ │ │ │ └── quarkiverse │ │ │ │ └── cxf │ │ │ │ └── opentelemetry │ │ │ │ └── deployment │ │ │ │ └── QuarkusCxfOpenTelemetryProcessor.java │ │ │ └── test │ │ │ └── java │ │ │ └── io │ │ │ └── quarkiverse │ │ │ └── cxf │ │ │ └── opentelemetry │ │ │ └── deployment │ │ │ ├── OtelDisabledFalseTest.java │ │ │ └── OtelEnabledFalseTest.java │ ├── pom.xml │ └── runtime │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── doc │ │ ├── intro.adoc │ │ └── usage.adoc │ │ ├── java │ │ └── io │ │ │ └── quarkiverse │ │ │ └── cxf │ │ │ └── opentelemetry │ │ │ ├── CxfOpenTelemetryConfig.java │ │ │ └── OpenTelemetryCustomizer.java │ │ └── resources │ │ └── META-INF │ │ └── quarkus-extension.yaml ├── jaxb-plugins │ ├── deployment │ │ └── pom.xml │ ├── pom.xml │ └── runtime │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── doc │ │ ├── intro.adoc │ │ └── usage.adoc │ │ └── resources │ │ └── META-INF │ │ └── quarkus-extension.yaml ├── pom.xml ├── rt-management │ ├── deployment │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── io │ │ │ └── quarkiverse │ │ │ └── cxf │ │ │ └── rt │ │ │ └── management │ │ │ └── deployment │ │ │ └── QuarkusCxfRtManagementProcessor.java │ ├── pom.xml │ └── runtime │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ └── resources │ │ └── META-INF │ │ └── quarkus-extension.yaml ├── saaj │ ├── deployment │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── io │ │ │ └── quarkiverse │ │ │ └── cxf │ │ │ └── saaj │ │ │ └── deployment │ │ │ ├── SaajImplProcessor.java │ │ │ └── SoapApiProcessor.java │ ├── pom.xml │ └── runtime │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ └── resources │ │ └── META-INF │ │ └── quarkus-extension.yaml ├── santuario-xmlsec │ ├── deployment │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── io │ │ │ │ └── quarkiverse │ │ │ │ └── xmlsec │ │ │ │ └── deployment │ │ │ │ └── XmlsecProcessor.java │ │ │ └── test │ │ │ └── java │ │ │ └── io │ │ │ └── quarkiverse │ │ │ └── quarkus │ │ │ └── xmlsec │ │ │ └── test │ │ │ ├── XmlsecDevModeTest.java │ │ │ └── XmlsecTest.java │ ├── pom.xml │ └── runtime │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ └── resources │ │ └── META-INF │ │ └── quarkus-extension.yaml ├── services-sts │ ├── deployment │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── io │ │ │ └── quarkiverse │ │ │ └── cxf │ │ │ └── services │ │ │ └── sts │ │ │ └── deployment │ │ │ └── QuarkusCxfStsProcessor.java │ ├── pom.xml │ └── runtime │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── doc │ │ ├── intro.adoc │ │ ├── standards.adoc │ │ └── usage.adoc │ │ ├── java │ │ └── org │ │ │ └── apache │ │ │ └── cxf │ │ │ └── jaxrs │ │ │ └── ext │ │ │ └── MessageContext.java │ │ └── resources │ │ └── META-INF │ │ └── quarkus-extension.yaml ├── woodstox │ ├── deployment │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── io │ │ │ └── quarkiverse │ │ │ └── cxf │ │ │ └── woodstox │ │ │ └── deployment │ │ │ └── QuarkusCxfWoodstoxProcessor.java │ ├── pom.xml │ └── runtime │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ └── resources │ │ └── META-INF │ │ └── quarkus-extension.yaml ├── ws-rm │ ├── deployment │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── io │ │ │ └── quarkiverse │ │ │ └── cxf │ │ │ └── ws │ │ │ └── rm │ │ │ └── deployment │ │ │ └── WsReliableMessagingProcessor.java │ ├── pom.xml │ └── runtime │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── doc │ │ ├── intro.adoc │ │ ├── standards.adoc │ │ └── usage.adoc │ │ ├── java │ │ └── io │ │ │ └── quarkiverse │ │ │ └── cxf │ │ │ └── ws │ │ │ └── rm │ │ │ ├── CxfWsRmConfig.java │ │ │ ├── DefaultRmFeatureProducer.java │ │ │ └── WsRmFactoryCustomizer.java │ │ └── resources │ │ └── META-INF │ │ └── quarkus-extension.yaml ├── ws-security │ ├── bc-stub │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ ├── io │ │ │ └── quarkiverse │ │ │ │ └── cxf │ │ │ │ └── ws │ │ │ │ └── security │ │ │ │ └── bc │ │ │ │ └── stub │ │ │ │ └── BcStub.java │ │ │ └── org │ │ │ └── bouncycastle │ │ │ ├── asn1 │ │ │ ├── ASN1Encodable.java │ │ │ ├── ASN1InputStream.java │ │ │ ├── ASN1Object.java │ │ │ ├── ASN1ObjectIdentifier.java │ │ │ ├── ASN1OctetString.java │ │ │ ├── ASN1Primitive.java │ │ │ ├── ASN1Set.java │ │ │ ├── ASN1TaggedObject.java │ │ │ ├── DEROctetString.java │ │ │ ├── pkcs │ │ │ │ ├── Attribute.java │ │ │ │ ├── CertificationRequest.java │ │ │ │ └── PKCSObjectIdentifiers.java │ │ │ ├── x500 │ │ │ │ ├── AttributeTypeAndValue.java │ │ │ │ ├── RDN.java │ │ │ │ ├── X500Name.java │ │ │ │ ├── X500NameStyle.java │ │ │ │ └── style │ │ │ │ │ ├── AbstractX500NameStyle.java │ │ │ │ │ └── RFC4519Style.java │ │ │ ├── x509 │ │ │ │ ├── AlgorithmIdentifier.java │ │ │ │ ├── BasicConstraints.java │ │ │ │ ├── Extension.java │ │ │ │ ├── GeneralName.java │ │ │ │ ├── GeneralNames.java │ │ │ │ ├── GeneralNamesBuilder.java │ │ │ │ ├── KeyPurposeId.java │ │ │ │ ├── KeyUsage.java │ │ │ │ ├── PolicyInformation.java │ │ │ │ ├── SubjectKeyIdentifier.java │ │ │ │ └── SubjectPublicKeyInfo.java │ │ │ └── x9 │ │ │ │ └── DomainParameters.java │ │ │ ├── cert │ │ │ ├── CertIOException.java │ │ │ ├── X509v3CertificateBuilder.java │ │ │ └── jcajce │ │ │ │ ├── JcaX509CertificateConverter.java │ │ │ │ ├── JcaX509ExtensionUtils.java │ │ │ │ └── JcaX509v3CertificateBuilder.java │ │ │ ├── jce │ │ │ └── provider │ │ │ │ └── BouncyCastleProvider.java │ │ │ ├── operator │ │ │ ├── ContentSigner.java │ │ │ ├── OperatorCreationException.java │ │ │ ├── OperatorException.java │ │ │ └── jcajce │ │ │ │ └── JcaContentSignerBuilder.java │ │ │ ├── pkcs │ │ │ ├── PKCS10CertificationRequest.java │ │ │ └── PKCS10CertificationRequestBuilder.java │ │ │ └── util │ │ │ ├── Encodable.java │ │ │ └── Iterable.java │ ├── deployment │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── io │ │ │ └── quarkiverse │ │ │ └── cxf │ │ │ └── ws │ │ │ └── security │ │ │ └── deployment │ │ │ ├── EhcacheProcessor.java │ │ │ ├── JodaTimeProcessor.java │ │ │ ├── OpenSamlProcessor.java │ │ │ ├── QuarkusCxfWsSecurityProcessor.java │ │ │ └── Wss4jProcessor.java │ ├── pom.xml │ └── runtime │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── doc │ │ ├── intro.adoc │ │ ├── standards.adoc │ │ └── usage.adoc │ │ ├── java │ │ └── io │ │ │ └── quarkiverse │ │ │ └── cxf │ │ │ └── ws │ │ │ └── security │ │ │ ├── CxfWsSecurityConfig.java │ │ │ ├── WssConfigurationConstant.java │ │ │ ├── WssFactoryCustomizer.java │ │ │ ├── graal │ │ │ └── CxfWsSecuritySubstitutions.java │ │ │ └── sts │ │ │ └── client │ │ │ └── STSClientBean.java │ │ └── resources │ │ └── META-INF │ │ └── quarkus-extension.yaml └── xjc-plugins │ ├── deployment │ └── pom.xml │ ├── pom.xml │ └── runtime │ ├── pom.xml │ └── src │ └── main │ ├── doc │ ├── intro.adoc │ └── usage.adoc │ └── resources │ └── META-INF │ └── quarkus-extension.yaml ├── integration-tests ├── client-server │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── io │ │ │ │ └── quarkiverse │ │ │ │ └── cxf │ │ │ │ ├── deployment │ │ │ │ └── test │ │ │ │ │ ├── Hello.java │ │ │ │ │ ├── HelloResponse.java │ │ │ │ │ ├── HelloService.java │ │ │ │ │ ├── HelloService_Service.java │ │ │ │ │ ├── ObjectFactory.java │ │ │ │ │ └── package-info.java │ │ │ │ └── it │ │ │ │ ├── HelloService.java │ │ │ │ ├── VerboseExceptionMapper.java │ │ │ │ ├── annotation │ │ │ │ └── cxfendpoint │ │ │ │ │ ├── HelloBean.java │ │ │ │ │ ├── PathAnnotationHelloServiceImpl.java │ │ │ │ │ └── PathAnnotationHelloServiceWithBean.java │ │ │ │ ├── auth │ │ │ │ └── basic │ │ │ │ │ ├── BasicAuthHelloServiceImpl.java │ │ │ │ │ ├── BasicAuthResource.java │ │ │ │ │ └── WsdlBasicAuthInterceptor.java │ │ │ │ ├── client │ │ │ │ └── tls │ │ │ │ │ └── JavaNetSslClientRest.java │ │ │ │ ├── large │ │ │ │ └── slow │ │ │ │ │ ├── LargeSlowRest.java │ │ │ │ │ ├── LargeSlowServiceImpl.java │ │ │ │ │ ├── SOAPHandlerLargeSlowServiceImpl.java │ │ │ │ │ └── generated │ │ │ │ │ ├── LargeSlow.java │ │ │ │ │ ├── LargeSlowOutput.java │ │ │ │ │ ├── LargeSlowResponse.java │ │ │ │ │ ├── LargeSlowService.java │ │ │ │ │ ├── LargeSlowService_Service.java │ │ │ │ │ ├── ObjectFactory.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── redirect │ │ │ │ ├── RedirectRest.java │ │ │ │ └── retransmitcache │ │ │ │ │ ├── ObjectFactory.java │ │ │ │ │ ├── RetransmitCache.java │ │ │ │ │ ├── RetransmitCacheOutput.java │ │ │ │ │ ├── RetransmitCacheResponse.java │ │ │ │ │ ├── RetransmitCacheService.java │ │ │ │ │ ├── RetransmitCacheServiceImpl.java │ │ │ │ │ ├── RetransmitCacheService_Service.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── server │ │ │ │ └── xml │ │ │ │ │ └── schema │ │ │ │ │ └── validation │ │ │ │ │ ├── AnnotationSchemaValidatedCalculatorServiceImpl.java │ │ │ │ │ ├── ApplicationPropertiesSchemaValidatedCalculatorServiceImpl.java │ │ │ │ │ └── ValidationResource.java │ │ │ │ ├── soap12 │ │ │ │ ├── Soap12HelloServiceImpl.java │ │ │ │ └── Soap12Rest.java │ │ │ │ ├── vertx │ │ │ │ └── async │ │ │ │ │ ├── RestAsyncWithWsdl.java │ │ │ │ │ ├── RestAsyncWithWsdlWithBlocking.java │ │ │ │ │ ├── RestAsyncWithWsdlWithEagerInit.java │ │ │ │ │ ├── RestAsyncWithoutWsdl.java │ │ │ │ │ ├── RestAsyncWithoutWsdlWithBlocking.java │ │ │ │ │ ├── VerboseExceptionMapper.java │ │ │ │ │ └── service │ │ │ │ │ ├── HelloWithWsdl.java │ │ │ │ │ ├── HelloWithWsdlWithBlocking.java │ │ │ │ │ ├── HelloWithWsdlWithEagerInit.java │ │ │ │ │ ├── HelloWithoutWsdl.java │ │ │ │ │ └── HelloWithoutWsdlWithBlocking.java │ │ │ │ └── ws │ │ │ │ └── addressing │ │ │ │ └── server │ │ │ │ ├── anonymous │ │ │ │ └── AddressingAnonymousImpl.java │ │ │ │ └── decoupled │ │ │ │ ├── WsAddressingImpl.java │ │ │ │ ├── WsAddressingService.java │ │ │ │ └── WsAddressingTargetResource.java │ │ └── resources │ │ │ ├── application.properties │ │ │ └── wsdl │ │ │ ├── LargeSlow-async-binding.xml │ │ │ ├── LargeSlow.wsdl │ │ │ ├── calculator.wsdl │ │ │ └── calculator.xsd │ │ └── test │ │ └── java │ │ └── io │ │ └── quarkiverse │ │ └── cxf │ │ └── it │ │ ├── annotation │ │ └── cxfendpoint │ │ │ ├── CXFEndpointAnnotationIT.java │ │ │ ├── CXFEndpointAnnotationTest.java │ │ │ └── MockedEndpointTest.java │ │ ├── auth │ │ └── basic │ │ │ └── wsdl │ │ │ ├── BasicAuthIT.java │ │ │ └── BasicAuthTest.java │ │ ├── client │ │ └── tls │ │ │ ├── JavaNetSslClientIT.java │ │ │ ├── JavaNetSslClientTest.java │ │ │ └── JavaNetSslClientTestResource.java │ │ ├── large │ │ └── slow │ │ │ ├── LargeSlowIT.java │ │ │ └── LargeSlowTest.java │ │ ├── redirect │ │ ├── RedirectIT.java │ │ ├── RedirectTest.java │ │ └── RedirectTestResource.java │ │ ├── soap │ │ └── handler │ │ │ ├── SOAPHandlerIT.java │ │ │ └── SOAPHandlerTest.java │ │ ├── soap12 │ │ ├── Soap12IT.java │ │ └── Soap12Test.java │ │ ├── validation │ │ ├── XmlSchemaValidationIT.java │ │ └── XmlSchemaValidationTest.java │ │ ├── vertx │ │ └── async │ │ │ ├── AsyncVertxClientIT.java │ │ │ └── AsyncVertxClientTest.java │ │ └── ws │ │ └── addressing │ │ └── server │ │ ├── WsAddressingAnonymousIT.java │ │ ├── WsAddressingAnonymousTest.java │ │ ├── WsAddressingDecoupledIT.java │ │ └── WsAddressingDecoupledTest.java ├── client │ ├── README.adoc │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── io │ │ │ │ └── quarkiverse │ │ │ │ └── cxf │ │ │ │ ├── client │ │ │ │ └── it │ │ │ │ │ ├── BareClientResource.java │ │ │ │ │ ├── BasicAuthClientResource.java │ │ │ │ │ ├── CodeFirstClient.java │ │ │ │ │ ├── CxfClientResource.java │ │ │ │ │ ├── CxfClientRestResource.java │ │ │ │ │ ├── DynamicClientConfigRestResource.java │ │ │ │ │ ├── SOAPExceptionInterceptor.java │ │ │ │ │ └── rtinit │ │ │ │ │ ├── ClientWithRuntimeInitializedPayload.java │ │ │ │ │ ├── Operands.java │ │ │ │ │ └── Result.java │ │ │ │ └── it │ │ │ │ └── logging │ │ │ │ ├── CxfLoggingResource.java │ │ │ │ └── LoggingFeatureProducer.java │ │ └── resources │ │ │ ├── application.properties │ │ │ └── wsdl │ │ │ ├── BareCalculatorService.wsdl │ │ │ ├── BasicAuthCalculatorService.wsdl │ │ │ └── CalculatorService.wsdl │ │ └── test │ │ └── java │ │ └── io │ │ └── quarkiverse │ │ └── cxf │ │ ├── client │ │ └── it │ │ │ ├── CxfClientIT.java │ │ │ ├── CxfClientTest.java │ │ │ └── CxfClientTestResource.java │ │ └── it │ │ └── logging │ │ ├── CxfLoggingIT.java │ │ └── CxfLoggingTest.java ├── fastinfoset │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── io │ │ │ │ └── quarkiverse │ │ │ │ └── cxf │ │ │ │ └── it │ │ │ │ ├── FastInfosetHelloService.java │ │ │ │ ├── FastInfosetHelloServiceImpl.java │ │ │ │ ├── FastInfosetResource.java │ │ │ │ ├── GzipHelloService.java │ │ │ │ └── GzipHelloServiceImpl.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── io │ │ └── quarkiverse │ │ └── cxf │ │ └── it │ │ └── fastinfoset │ │ ├── FastInfosetIT.java │ │ └── FastInfosetTest.java ├── metrics │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── io │ │ │ │ └── quarkiverse │ │ │ │ └── cxf │ │ │ │ └── metrics │ │ │ │ ├── client │ │ │ │ └── it │ │ │ │ │ └── MetricsClientResource.java │ │ │ │ ├── it │ │ │ │ └── async │ │ │ │ │ ├── AsyncClientResource.java │ │ │ │ │ ├── HeaderToMetricsTagRequestFilter.java │ │ │ │ │ ├── HeaderToMetricsTagsCustomizer.java │ │ │ │ │ └── MultiplyingAddInterceptor.java │ │ │ │ └── server │ │ │ │ └── it │ │ │ │ ├── HelloService.java │ │ │ │ └── HelloServiceImpl.java │ │ └── resources │ │ │ ├── application.properties │ │ │ └── wsdl │ │ │ ├── CalculatorService.wsdl │ │ │ └── async-binding.xml │ │ └── test │ │ └── java │ │ └── io │ │ └── quarkiverse │ │ └── cxf │ │ └── metrics │ │ └── it │ │ ├── MetricsIT.java │ │ ├── MetricsTest.java │ │ └── async │ │ ├── AsyncClientContextlessTest.java │ │ ├── AsyncClientIT.java │ │ ├── AsyncClientTest.java │ │ └── AsyncClientTestResource.java ├── mtls │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── io │ │ │ │ └── quarkiverse │ │ │ │ └── cxf │ │ │ │ └── it │ │ │ │ └── auth │ │ │ │ └── mtls │ │ │ │ ├── HelloService.java │ │ │ │ ├── MTlsHelloServiceImpl.java │ │ │ │ └── SecurityPolicyResource.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── io │ │ └── quarkiverse │ │ └── cxf │ │ └── it │ │ └── auth │ │ └── mtls │ │ ├── MutualTlsIT.java │ │ └── MutualTlsTest.java ├── mtom-awt │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── io │ │ │ │ └── quarkiverse │ │ │ │ └── cxf │ │ │ │ └── it │ │ │ │ └── ws │ │ │ │ └── mtom │ │ │ │ └── awt │ │ │ │ └── server │ │ │ │ ├── ImageService.java │ │ │ │ ├── ImageServiceImpl.java │ │ │ │ ├── MtomAwtResource.java │ │ │ │ ├── MtomEnforcer.java │ │ │ │ └── wrappers │ │ │ │ ├── ImageData.java │ │ │ │ ├── ImageResponse.java │ │ │ │ ├── ImageServiceWithWrappers.java │ │ │ │ └── ImageServiceWithWrappersImpl.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── io │ │ │ └── quarkiverse │ │ │ └── cxf │ │ │ └── it │ │ │ └── ws │ │ │ └── mtom │ │ │ └── awt │ │ │ └── server │ │ │ ├── MtomAwtIT.java │ │ │ └── MtomAwtTest.java │ │ └── resources │ │ └── linux-image.png ├── opentelemetry │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── io │ │ │ │ └── quarkiverse │ │ │ │ └── cxf │ │ │ │ └── opentelemetry │ │ │ │ └── it │ │ │ │ ├── HelloService.java │ │ │ │ ├── HelloServiceImpl.java │ │ │ │ ├── OpenTelemetryRouter.java │ │ │ │ └── TracedBean.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── io │ │ └── quarkiverse │ │ └── cxf │ │ └── opentelemetry │ │ └── it │ │ ├── OpenTelemetryIT.java │ │ └── OpenTelemetryTest.java ├── pom.xml ├── saaj │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── io │ │ │ │ └── quarkiverse │ │ │ │ └── saaj │ │ │ │ └── it │ │ │ │ └── SaajResource.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── io │ │ │ └── quarkiverse │ │ │ └── saaj │ │ │ └── it │ │ │ ├── SaajIT.java │ │ │ └── SaajTest.java │ │ └── resources │ │ └── plaintext.xml ├── santuario-xmlsec │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── io │ │ │ │ └── quarkiverse │ │ │ │ └── xmlsec │ │ │ │ └── it │ │ │ │ ├── Encryption.java │ │ │ │ ├── Signing.java │ │ │ │ ├── XmlReaderToWriter.java │ │ │ │ └── XmlsecResource.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── io │ │ │ └── quarkiverse │ │ │ └── xmlsec │ │ │ └── it │ │ │ ├── DSNamespaceContext.java │ │ │ ├── NativeXmlsecResourceIT.java │ │ │ └── XmlsecResourceTest.java │ │ └── resources │ │ └── plaintext.xml ├── server │ ├── README.adoc │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── io │ │ │ │ └── quarkiverse │ │ │ │ └── cxf │ │ │ │ └── it │ │ │ │ ├── server │ │ │ │ ├── DateService.java │ │ │ │ ├── DateServiceImpl.java │ │ │ │ ├── FaultyHelloService.java │ │ │ │ ├── FaultyHelloServiceImpl.java │ │ │ │ ├── Fruit.java │ │ │ │ ├── FruitService.java │ │ │ │ ├── FruitServiceImpl.java │ │ │ │ ├── GreetingException.java │ │ │ │ ├── GreetingSOAPHandler.java │ │ │ │ ├── GreetingWebService.java │ │ │ │ ├── GreetingWebServiceImpl.java │ │ │ │ ├── GreetingWebServiceNoIntf.java │ │ │ │ ├── GreetingWebServiceWithWebServiceContext.java │ │ │ │ ├── HelloBean.java │ │ │ │ ├── HelloService.java │ │ │ │ ├── HelloServiceImpl.java │ │ │ │ ├── LargeEntityService.java │ │ │ │ ├── LargeEntityServiceImpl.java │ │ │ │ ├── Ping.java │ │ │ │ ├── SlowHelloServiceImpl.java │ │ │ │ └── provider │ │ │ │ │ ├── SOAPMessageProvider.java │ │ │ │ │ ├── SourceMessageProvider.java │ │ │ │ │ ├── SourcePayloadProvider.java │ │ │ │ │ └── StreamSourcePayloadProvider.java │ │ │ │ └── ws │ │ │ │ └── mtom │ │ │ │ └── server │ │ │ │ ├── DHRequest.java │ │ │ │ ├── DHResponse.java │ │ │ │ ├── MtomEnforcer.java │ │ │ │ ├── MtomService.java │ │ │ │ ├── MtomServiceImpl.java │ │ │ │ └── RandomBytesDataSource.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── io │ │ └── quarkiverse │ │ └── cxf │ │ └── it │ │ ├── server │ │ ├── AbstractGreetingWebServiceTest.java │ │ ├── ChunkedTest.java │ │ ├── ClientGreetingTest.java │ │ ├── FruitServiceTest.java │ │ ├── GreetingSOAPHandlerIT.java │ │ ├── GreetingSOAPHandlerTest.java │ │ ├── GreetingWebServiceImplIT.java │ │ ├── GreetingWebServiceImplTest.java │ │ ├── GreetingWebServiceNoIntfIT.java │ │ ├── GreetingWebServiceNoIntfTest.java │ │ ├── GreetingWebServiceWithWebServiceContextTest.java │ │ ├── HelloServiceIT.java │ │ ├── HelloServiceTest.java │ │ ├── Java2wsIT.java │ │ ├── Java2wsTest.java │ │ ├── ProviderServiceTest.java │ │ ├── ServerIT.java │ │ ├── ServerTest.java │ │ ├── ServerThreadPoolStressTest.java │ │ ├── XForwardedHeadersIT.java │ │ ├── XForwardedHeadersTest.java │ │ └── XForwardedProfile.java │ │ └── ws │ │ └── mtom │ │ └── server │ │ ├── MtomIT.java │ │ └── MtomTest.java ├── ws-rm-client │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── io │ │ │ │ └── quarkiverse │ │ │ │ └── cxf │ │ │ │ └── it │ │ │ │ └── ws │ │ │ │ └── rm │ │ │ │ ├── client │ │ │ │ ├── ClientBeanProducers.java │ │ │ │ ├── InMessageRecorder.java │ │ │ │ ├── Init.java │ │ │ │ ├── MessageLossSimulator.java │ │ │ │ ├── OutMessageRecorder.java │ │ │ │ └── WsrmResource.java │ │ │ │ └── server │ │ │ │ └── WsrmHelloService.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── io │ │ └── quarkiverse │ │ └── cxf │ │ └── it │ │ └── ws │ │ └── rm │ │ └── client │ │ ├── MessageFlowAssertions.java │ │ ├── WsReliableMessagingIT.java │ │ ├── WsReliableMessagingTest.java │ │ └── WsrmServer.java ├── ws-security-policy │ ├── generate-certs.sh │ ├── pom.xml │ ├── src │ │ ├── main │ │ │ ├── java │ │ │ │ └── io │ │ │ │ │ └── quarkiverse │ │ │ │ │ └── cxf │ │ │ │ │ └── it │ │ │ │ │ └── security │ │ │ │ │ └── policy │ │ │ │ │ ├── AbstractHelloService.java │ │ │ │ │ ├── BeanProducers.java │ │ │ │ │ ├── CryptoProducers.java │ │ │ │ │ ├── CustomEncryptSignPolicyHelloService.java │ │ │ │ │ ├── CustomEncryptSignPolicyHelloServiceImpl.java │ │ │ │ │ ├── CustomEncryptSignWrong1PolicyHelloService.java │ │ │ │ │ ├── CustomEncryptSignWrong1PolicyHelloServiceImpl.java │ │ │ │ │ ├── CustomEncryptSignWrong2PolicyHelloService.java │ │ │ │ │ ├── CustomEncryptSignWrong2PolicyHelloServiceImpl.java │ │ │ │ │ ├── CustomizedEncryptSignPolicyHelloService.java │ │ │ │ │ ├── CustomizedEncryptSignPolicyHelloServiceImpl.java │ │ │ │ │ ├── EncryptSignPolicyHelloService.java │ │ │ │ │ ├── EncryptSignPolicyHelloServiceImpl.java │ │ │ │ │ ├── HelloService.java │ │ │ │ │ ├── HelloServiceImpl.java │ │ │ │ │ ├── HttpsPolicyHelloService.java │ │ │ │ │ ├── HttpsPolicyHelloServiceImpl.java │ │ │ │ │ ├── NoopHostnameVerifier.java │ │ │ │ │ ├── Saml1PolicyHelloService.java │ │ │ │ │ ├── Saml1PolicyHelloServiceImpl.java │ │ │ │ │ ├── Saml2PolicyHelloService.java │ │ │ │ │ ├── Saml2PolicyHelloServiceImpl.java │ │ │ │ │ ├── SamlBeanProducers.java │ │ │ │ │ ├── SecurityPolicyResource.java │ │ │ │ │ ├── UsernameTokenPasswordCallback.java │ │ │ │ │ ├── UsernameTokenPolicyHelloService.java │ │ │ │ │ └── UsernameTokenPolicyHelloServiceImpl.java │ │ │ └── resources │ │ │ │ ├── application.properties │ │ │ │ ├── custom-encrypt-sign-policy.xml │ │ │ │ ├── custom-encrypt-sign-wrong1-policy.xml │ │ │ │ ├── custom-encrypt-sign-wrong2-policy.xml │ │ │ │ ├── customized-encrypt-sign-policy.xml │ │ │ │ ├── encrypt-sign-policy.xml │ │ │ │ ├── https-policy.xml │ │ │ │ ├── saml1-policy.xml │ │ │ │ ├── saml2-policy.xml │ │ │ │ └── username-token-policy.xml │ │ └── test │ │ │ └── java │ │ │ └── io │ │ │ └── quarkiverse │ │ │ └── cxf │ │ │ └── it │ │ │ └── security │ │ │ └── policy │ │ │ ├── AbstractFipsAwareTest.java │ │ │ ├── AbstractUsernameTokenSecurityPolicyTest.java │ │ │ ├── CustomEncryptSignPolicyIT.java │ │ │ ├── CustomEncryptSignPolicyTest.java │ │ │ ├── EncryptSignPolicyIT.java │ │ │ ├── EncryptSignPolicyTest.java │ │ │ ├── PolicyTestUtils.java │ │ │ ├── TransportPolicyIT.java │ │ │ ├── TransportPolicyTest.java │ │ │ ├── UsernameTokenSecurityPolicyIT.java │ │ │ ├── UsernameTokenSecurityPolicyStaxIT.java │ │ │ ├── UsernameTokenSecurityPolicyStaxTest.java │ │ │ ├── UsernameTokenSecurityPolicyTest.java │ │ │ └── UsernameTokenTest.java │ └── v3.ext ├── ws-security │ ├── README.adoc │ ├── generate-certs.sh │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── io │ │ │ │ └── quarkiverse │ │ │ │ └── cxf │ │ │ │ └── it │ │ │ │ └── wss │ │ │ │ ├── client │ │ │ │ ├── CxfWssClientResource.java │ │ │ │ ├── SignatureValidatorResource.java │ │ │ │ └── WSS4JOutInterceptorProducer.java │ │ │ │ └── server │ │ │ │ ├── AnnotatedWssRounderServiceImpl.java │ │ │ │ ├── WSS4JInInterceptorProducer.java │ │ │ │ ├── WssRounderService.java │ │ │ │ ├── WssRounderServiceImpl.java │ │ │ │ └── policy │ │ │ │ ├── PasswordCallbackHandler.java │ │ │ │ ├── WssSecurityPolicyHelloService.java │ │ │ │ └── WssSecurityPolicyHelloServiceImpl.java │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── saml-keystore.jks │ │ │ ├── server │ │ │ ├── alice.properties │ │ │ ├── bob.properties │ │ │ └── encrypt-sign-policy.xml │ │ │ └── wsdl │ │ │ └── dir │ │ │ └── WssCalculatorService.wsdl │ │ └── test │ │ ├── java │ │ └── io │ │ │ └── quarkiverse │ │ │ └── cxf │ │ │ └── it │ │ │ └── wss │ │ │ ├── client │ │ │ ├── CxfWssClientIT.java │ │ │ ├── CxfWssClientTest.java │ │ │ ├── CxfWssClientTestResource.java │ │ │ ├── SignatureValidatorIT.java │ │ │ └── SignatureValidatorTest.java │ │ │ └── server │ │ │ ├── CxfWssServerIT.java │ │ │ ├── CxfWssServerTest.java │ │ │ ├── CxfWssServerTestResource.java │ │ │ └── policy │ │ │ ├── CxfWssSecurityPolicyServerIT.java │ │ │ └── CxfWssSecurityPolicyServerTest.java │ │ └── resources │ │ └── data │ │ ├── saml1-request.xml │ │ └── saml2-request.xml ├── ws-trust │ ├── README.adoc │ ├── generate-certs.sh │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── io │ │ │ │ └── quarkiverse │ │ │ │ └── cxf │ │ │ │ └── it │ │ │ │ └── ws │ │ │ │ └── trust │ │ │ │ ├── client │ │ │ │ ├── BeanProducers.java │ │ │ │ └── WsTrustResource.java │ │ │ │ ├── common │ │ │ │ └── PasswordCallbackHandler.java │ │ │ │ ├── server │ │ │ │ ├── TrustHelloService.java │ │ │ │ └── TrustHelloServiceImpl.java │ │ │ │ └── sts │ │ │ │ ├── Sts.java │ │ │ │ └── StsCallbackHandler.java │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── asymmetric-saml2-policy.xml │ │ │ ├── client.pkcs12 │ │ │ ├── clientKeystore.properties │ │ │ ├── io-policy.xml │ │ │ ├── service.pkcs12 │ │ │ ├── sts.pkcs12 │ │ │ ├── stsKeystore.properties │ │ │ └── ws-trust-1.4-service.wsdl │ │ └── test │ │ └── java │ │ └── io │ │ └── quarkiverse │ │ └── cxf │ │ └── it │ │ └── ws │ │ └── trust │ │ ├── CxfWsTrustIT.java │ │ └── CxfWsTrustTest.java ├── wsdl2java-no-config │ ├── README.adoc │ ├── pom.xml │ └── src │ │ ├── main │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── io │ │ │ └── quarkiverse │ │ │ └── cxf │ │ │ └── wsdl2java │ │ │ └── no │ │ │ └── config │ │ │ └── it │ │ │ └── Wsdl2JavaNoConfigTest.java │ │ └── resources │ │ └── wsdl │ │ └── CalculatorService.wsdl └── wsdl2java │ ├── README.adoc │ ├── pom.xml │ └── src │ ├── main │ └── resources │ │ └── application.properties │ └── test │ ├── java │ └── io │ │ └── quarkiverse │ │ └── cxf │ │ └── wsdl2java │ │ └── it │ │ ├── HelloNameProvider.java │ │ ├── TestInterface.java │ │ ├── Wsdl2JavaJaxb1Test.java │ │ ├── Wsdl2JavaJaxb2Test.java │ │ ├── Wsdl2JavaJaxb3Test.java │ │ └── Wsdl2JavaTest.java │ └── resources │ └── wsdl │ ├── CalculatorService.wsdl │ ├── CalculatorServiceJaxb1.wsdl │ ├── CalculatorServiceJaxb2.wsdl │ ├── HelloService-jaxb-bindings.xml │ ├── HelloService.wsdl │ ├── HelloService.xsd │ ├── global-jaxb-bindings.xml │ └── multiple-package-names.wsdl ├── mvnw ├── mvnw.cmd ├── pom.xml ├── release.sh ├── src └── build │ ├── doc-templates │ └── extension-doc-page.adoc │ ├── enforcer-rules │ ├── quarkus-cxf-banned-bom-dependencies.xml │ └── quarkus-cxf-banned-dependencies.xml │ └── scripts │ └── update-antora-config.groovy └── test-util-parent ├── pom.xml ├── test-list └── pom.xml ├── test-util ├── README.adoc ├── pom.xml └── src │ └── main │ ├── cxf-codegen-resources │ └── wsdl │ │ └── WssCalculatorService.wsdl │ └── java │ └── io │ └── quarkiverse │ └── cxf │ └── test │ ├── QuarkusCxfClientTestUtil.java │ └── VertxTestUtil.java ├── test-ws-rm-server-jvm ├── pom.xml └── src │ └── main │ ├── java │ └── io │ │ └── quarkiverse │ │ └── cxf │ │ └── it │ │ └── ws │ │ └── rm │ │ └── server │ │ ├── Init.java │ │ ├── WsrmHelloService.java │ │ └── WsrmHelloServiceImpl.java │ └── resources │ └── application.properties └── test-ws-rm-server-native ├── pom.xml └── src └── main ├── java └── io │ └── quarkiverse │ └── cxf │ └── it │ └── ws │ └── rm │ └── server │ └── nat │ └── HaveSomeJavaDoc.java └── resources └── application.properties /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | *.cmd text eol=crlf 3 | *.jar binary 4 | *.jks binary 5 | *.png binary 6 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # Lines starting with '#' are comments. 2 | # Each line is a file pattern followed by one or more owners. 3 | 4 | # More details are here: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners 5 | 6 | # The '*' pattern is global owners. 7 | 8 | # Order is important. The last matching pattern has the most precedence. 9 | # The folders are ordered as follows: 10 | 11 | # In each subsection folders are ordered first by depth, then alphabetically. 12 | # This should make it easy to add new rules without breaking existing ones. 13 | 14 | * @quarkiverse/quarkiverse-cxf 15 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # See the documentation for all configuration options: 4 | # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "maven" 9 | directory: "/" 10 | schedule: 11 | interval: "daily" 12 | ignore: 13 | - dependency-name: jakarta.xml.ws:jakarta.xml.ws-api 14 | versions: 15 | - ">= 3.0.0" 16 | # Prevent PRs from opening except for security updates, given Renovate 17 | # is used to manage the regular dependency updates 18 | open-pull-requests-limit: 0 19 | -------------------------------------------------------------------------------- /.github/project.yml: -------------------------------------------------------------------------------- 1 | name: Quarkiverse Extension 2 | release: 3 | current-version: 3.23.1 4 | current-major-minor-version: 3.23 5 | next-version: 3.23.2-SNAPSHOT 6 | -------------------------------------------------------------------------------- /.github/workflows/pre-release.yml: -------------------------------------------------------------------------------- 1 | name: Quarkiverse Pre Release 2 | 3 | on: 4 | pull_request: 5 | paths: 6 | - '.github/project.yml' 7 | 8 | concurrency: 9 | group: ${{ github.workflow }}-${{ github.ref }} 10 | cancel-in-progress: true 11 | 12 | jobs: 13 | pre-release: 14 | name: Pre-Release 15 | uses: quarkiverse/.github/.github/workflows/pre-release.yml@main 16 | secrets: inherit 17 | -------------------------------------------------------------------------------- /.github/workflows/release-prepare.yml: -------------------------------------------------------------------------------- 1 | name: Quarkiverse Prepare Release 2 | 3 | on: 4 | pull_request: 5 | types: [ closed ] 6 | paths: 7 | - '.github/project.yml' 8 | 9 | permissions: 10 | contents: write 11 | 12 | concurrency: 13 | group: ${{ github.workflow }}-${{ github.ref }} 14 | cancel-in-progress: true 15 | 16 | jobs: 17 | prepare-release: 18 | name: Prepare Release 19 | if: ${{ github.event.pull_request.merged == true}} 20 | uses: quarkiverse/.github/.github/workflows/prepare-release.yml@main 21 | secrets: inherit 22 | with: 23 | java_version: 17 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled class file 2 | *.class 3 | 4 | # Log file 5 | *.log 6 | 7 | # BlueJ files 8 | *.ctxt 9 | 10 | # Mobile Tools for Java (J2ME) 11 | .mtj.tmp/ 12 | 13 | # Package Files # 14 | *.war 15 | *.nar 16 | *.ear 17 | *.zip 18 | *.tar.gz 19 | *.rar 20 | 21 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 22 | hs_err_pid* 23 | 24 | # Eclipse 25 | .project 26 | .classpath 27 | .settings/ 28 | bin/ 29 | 30 | # IntelliJ 31 | .idea 32 | *.ipr 33 | *.iml 34 | *.iws 35 | 36 | # NetBeans 37 | nb-configuration.xml 38 | 39 | # Visual Studio Code 40 | .vscode 41 | .factorypath 42 | 43 | # OSX 44 | .DS_Store 45 | 46 | # Vim 47 | *.swp 48 | *.swo 49 | 50 | # patch 51 | *.orig 52 | *.rej 53 | 54 | # Maven 55 | target/ 56 | pom.xml.tag 57 | pom.xml.releaseBackup 58 | pom.xml.versionsBackup 59 | release.properties -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quarkiverse/quarkus-cxf/d0cd3b7bfd9c4d3b6f31f3ac68d7dd23f9cc16a0/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /.sdkmanrc: -------------------------------------------------------------------------------- 1 | # Enable auto-env through the sdkman_auto_env config 2 | # Add key=value pairs of SDKs to use below 3 | java=17.0.10-tem 4 | mvnd=1.0.2 5 | -------------------------------------------------------------------------------- /docs/README.adoc: -------------------------------------------------------------------------------- 1 | = Quarkus CXF (CXF Extensions for Quarkus) 2 | 3 | The generated site is available at https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/dev/ 4 | 5 | == Live-edit locally 6 | 7 | [source,shell] 8 | ---- 9 | $ mvn quarkus:dev 10 | ---- 11 | 12 | When the site is built, hit `w` and the site should open in browser. 13 | -------------------------------------------------------------------------------- /docs/antora-playbook.yml: -------------------------------------------------------------------------------- 1 | site: 2 | title: CXF Extensions for Quarkus 3 | start_page: quarkus-cxf:ROOT:index.adoc 4 | content: 5 | sources: 6 | - url: ./../ 7 | branches: HEAD 8 | start_path: docs 9 | ui: 10 | bundle: 11 | url: https://github.com/quarkiverse/antora-ui-quarkiverse/releases/latest/download/ui-bundle.zip 12 | snapshot: true 13 | 14 | asciidoc: 15 | attributes: 16 | kroki-fetch-diagram: true 17 | 18 | output: 19 | dir: ./target/site 20 | -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/calculator-client/CxfClientRestResource.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.client.it; 2 | 3 | import jakarta.ws.rs.GET; 4 | import jakarta.ws.rs.Path; 5 | import jakarta.ws.rs.Produces; 6 | import jakarta.ws.rs.QueryParam; 7 | import jakarta.ws.rs.core.MediaType; 8 | 9 | import org.jboss.eap.quickstarts.wscalculator.calculator.CalculatorService; 10 | 11 | import io.quarkiverse.cxf.annotation.CXFClient; 12 | 13 | @Path("/cxf/calculator-client") 14 | public class CxfClientRestResource { 15 | 16 | @CXFClient("myCalculator") // <1> 17 | CalculatorService myCalculator; 18 | 19 | @GET 20 | @Path("/add") 21 | @Produces(MediaType.TEXT_PLAIN) 22 | public int add(@QueryParam("a") int a, @QueryParam("b") int b) { 23 | return myCalculator.add(a, b); // <2> 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/client-server/BasicAuthHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.auth.basic; 2 | 3 | import jakarta.annotation.security.RolesAllowed; 4 | import jakarta.jws.WebService; 5 | 6 | import io.quarkiverse.cxf.it.HelloService; 7 | 8 | @WebService(serviceName = "HelloService", targetNamespace = HelloService.NS) 9 | @RolesAllowed("app-user") 10 | public class BasicAuthHelloServiceImpl implements HelloService { 11 | @Override 12 | public String hello(String person) { 13 | return "Hello " + person + "!"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/client-server/PathAnnotationHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.annotation.cxfendpoint; 2 | 3 | import jakarta.jws.WebService; 4 | 5 | import io.quarkiverse.cxf.annotation.CXFEndpoint; 6 | import io.quarkiverse.cxf.it.HelloService; 7 | 8 | @CXFEndpoint("/path-annotation") // <1> 9 | @WebService(serviceName = "HelloService", targetNamespace = HelloService.NS) 10 | public class PathAnnotationHelloServiceImpl implements HelloService { 11 | @Override 12 | public String hello(String person) { 13 | return "Hello " + person + " from PathAnnotationHelloServiceImpl!"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/hc5/async-binding.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | true 9 | 10 | 11 | -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/metrics/async-binding.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | true 9 | 10 | 11 | -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/soap-service/FruitService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import java.util.Set; 4 | 5 | import jakarta.jws.WebMethod; 6 | import jakarta.jws.WebService; 7 | 8 | @WebService 9 | public interface FruitService { 10 | 11 | @WebMethod 12 | Set list(); 13 | 14 | @WebMethod 15 | Set add(Fruit fruit); 16 | 17 | @WebMethod 18 | Set delete(Fruit fruit); 19 | } -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/soap-service/HelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | /** 7 | * The simplest Hello service. 8 | */ 9 | @WebService(name = "HelloService", serviceName = "HelloService") 10 | public interface HelloService { 11 | 12 | @WebMethod 13 | String hello(String text); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/soap-service/HelloServiceIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class HelloServiceIT extends HelloServiceTest { 7 | } 8 | -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/soap-service/HelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | /** 7 | * The simplest Hello service implementation. 8 | */ 9 | @WebService(serviceName = "HelloService") 10 | public class HelloServiceImpl implements HelloService { 11 | 12 | @WebMethod 13 | @Override 14 | public String hello(String text) { 15 | return "Hello " + text + "!"; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/soap-service/HelloServiceTest.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import org.junit.jupiter.api.Assertions; 4 | import org.junit.jupiter.api.Test; 5 | 6 | import io.quarkiverse.cxf.test.QuarkusCxfClientTestUtil; 7 | import io.quarkus.test.junit.QuarkusTest; 8 | 9 | @QuarkusTest 10 | public class HelloServiceTest { 11 | 12 | @Test 13 | public void hello() { 14 | final HelloService client = QuarkusCxfClientTestUtil.getClient(HelloService.class, "/soap/hello"); 15 | Assertions.assertEquals("Hello World!", client.hello("World")); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/ws-security-policy/EncryptSignPolicyHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | import org.apache.cxf.annotations.Policy; 7 | 8 | /** 9 | * A service with a WS-SecurityPolicy attached 10 | */ 11 | // tag::quarkus-cxf-rt-ws-security.adoc[] 12 | @WebService(serviceName = "EncryptSignPolicyHelloService") 13 | @Policy(placement = Policy.Placement.BINDING, uri = "encrypt-sign-policy.xml") 14 | public interface EncryptSignPolicyHelloService extends AbstractHelloService { 15 | // end::quarkus-cxf-rt-ws-security.adoc[] 16 | @WebMethod 17 | @Override 18 | String hello(String text); 19 | } 20 | -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/ws-security-policy/HttpsPolicyHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | import org.apache.cxf.annotations.Policy; 7 | 8 | /** 9 | * A service implementation with a transport policy set 10 | */ 11 | @WebService(serviceName = "HttpsPolicyHelloService") 12 | @Policy(placement = Policy.Placement.BINDING, uri = "https-policy.xml") 13 | public interface HttpsPolicyHelloService extends AbstractHelloService { 14 | 15 | @WebMethod 16 | @Override 17 | public String hello(String text); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/ws-security-policy/UsernameTokenPolicyHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | import org.apache.cxf.annotations.Policy; 7 | 8 | /** 9 | * 10 | */ 11 | // tag::ws-securitypolicy-auth.adoc[] 12 | @WebService(serviceName = "UsernameTokenPolicyHelloService") 13 | @Policy(placement = Policy.Placement.BINDING, uri = "username-token-policy.xml") 14 | public interface UsernameTokenPolicyHelloService extends AbstractHelloService { 15 | // end::ws-securitypolicy-auth.adoc[] 16 | @WebMethod 17 | @Override 18 | String hello(String text); 19 | } 20 | -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/ws-security-policy/UsernameTokenTest.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import org.assertj.core.api.Assertions; 4 | import org.junit.jupiter.api.Test; 5 | 6 | import io.quarkiverse.cxf.annotation.CXFClient; 7 | import io.quarkus.test.junit.QuarkusTest; 8 | 9 | @QuarkusTest 10 | public class UsernameTokenTest { 11 | 12 | @CXFClient("helloUsernameToken") 13 | UsernameTokenPolicyHelloService helloUsernameToken; 14 | 15 | @Test 16 | void helloUsernameToken() { 17 | Assertions.assertThat(helloUsernameToken.hello("CXF")).isEqualTo("Hello CXF from UsernameToken!"); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/ws-trust/TrustHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.trust.server; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | import org.apache.cxf.annotations.Policies; 7 | import org.apache.cxf.annotations.Policy; 8 | 9 | //tag::ws-trust-usage.adoc-service[] 10 | @WebService(targetNamespace = "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/test/ws-trust") 11 | @Policy(placement = Policy.Placement.BINDING, uri = "classpath:/asymmetric-saml2-policy.xml") 12 | public interface TrustHelloService { 13 | @WebMethod 14 | @Policies({ 15 | @Policy(placement = Policy.Placement.BINDING_OPERATION_INPUT, uri = "classpath:/io-policy.xml"), 16 | @Policy(placement = Policy.Placement.BINDING_OPERATION_OUTPUT, uri = "classpath:/io-policy.xml") 17 | }) 18 | String hello(String person); 19 | } 20 | //end::ws-trust-usage.adoc-service[] 21 | -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/ws-trust/TrustHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.trust.server; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | //tag::ws-trust-usage.adoc-service[] 7 | @WebService(portName = "TrustHelloServicePort", serviceName = "TrustHelloService", targetNamespace = "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/test/ws-trust", endpointInterface = "io.quarkiverse.cxf.it.ws.trust.server.TrustHelloService") 8 | public class TrustHelloServiceImpl implements TrustHelloService { 9 | @WebMethod 10 | @Override 11 | public String hello(String person) { 12 | return "Hello " + person + "!"; 13 | } 14 | } 15 | //end::ws-trust-usage.adoc-service[] -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/wsdl2java/global-jaxb-bindings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /docs/modules/ROOT/images/code-quarkus-io.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quarkiverse/quarkus-cxf/d0cd3b7bfd9c4d3b6f31f3ac68d7dd23f9cc16a0/docs/modules/ROOT/images/code-quarkus-io.png -------------------------------------------------------------------------------- /docs/modules/ROOT/images/release-notes-2-10-0-since.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quarkiverse/quarkus-cxf/d0cd3b7bfd9c4d3b6f31f3ac68d7dd23f9cc16a0/docs/modules/ROOT/images/release-notes-2-10-0-since.png -------------------------------------------------------------------------------- /docs/modules/ROOT/images/release-notes-2-7-0-devui-services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quarkiverse/quarkus-cxf/d0cd3b7bfd9c4d3b6f31f3ac68d7dd23f9cc16a0/docs/modules/ROOT/images/release-notes-2-7-0-devui-services.png -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/release-notes/2.2.1.adoc: -------------------------------------------------------------------------------- 1 | [[rn-2-2-1]] 2 | = {quarkus-cxf-project-name} 2.2.1 LTS release notes 3 | 4 | == New and noteworthy in {quarkus-cxf-project-name} 5 | 6 | === HTTP Async Transport extension stable 7 | 8 | The `quarkus-cxf-rt-transports-http-hc5` has got a proper test and its support status was upgraded to `stable`. 9 | 10 | == Fixed bugs 11 | 12 | * https://github.com/quarkiverse/quarkus-cxf/issues/939[`org.apache.wss4j.dom.transform.STRTransform` broken in WSS4j 3.0.0] 13 | 14 | == Full changelog 15 | 16 | https://github.com/quarkiverse/quarkus-cxf/compare/2.2.0+++...+++2.2.1 17 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/release-notes/2.2.2.adoc: -------------------------------------------------------------------------------- 1 | [[rn-2-2-2]] 2 | = {quarkus-cxf-project-name} 2.2.2 LTS release notes 3 | 4 | == Fixed bugs 5 | 6 | * https://github.com/quarkiverse/quarkus-cxf/issues/860[io.quarkus.builder.ChainBuildException: Cycle detected] 7 | 8 | == Full changelog 9 | 10 | https://github.com/quarkiverse/quarkus-cxf/compare/2.2.1+++...+++2.2.2 11 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/release-notes/2.3.0.adoc: -------------------------------------------------------------------------------- 1 | [[rn-2-3-0]] 2 | = {quarkus-cxf-project-name} 2.3.0 release notes 3 | 4 | == Important dependency upgrades: 5 | 6 | * Quarkus 3.2.0 -> 3.3.0 - https://quarkus.io/blog/quarkus-3-3-0-released/[Quarkus 3.3.0 release notes] 7 | 8 | == Full changelog 9 | 10 | https://github.com/quarkiverse/quarkus-cxf/compare/2.2.2+++...+++2.3.0 11 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/release-notes/2.4.0.adoc: -------------------------------------------------------------------------------- 1 | [[rn-2-4-0]] 2 | = {quarkus-cxf-project-name} 2.4.0 release notes 3 | 4 | == Important dependency upgrades: 5 | 6 | * Quarkus 3.3.0 -> 3.4.1 - https://quarkus.io/blog/quarkus-3-4-1-released/[Quarkus 3.4.1 release notes] 7 | 8 | == New and noteworthy in {quarkus-cxf-project-name} 9 | 10 | === More `wsdl2java` options configurable through `application.properties` 11 | 12 | See the updated xref:user-guide/contract-first-code-first/generate-java-from-wsdl.adoc[Generate Java from WSDL] page. 13 | 14 | == Fixed bugs 15 | 16 | * https://github.com/quarkiverse/quarkus-cxf/issues/491[Injected CXFClientInfo does not reflect the wsdl and client-endpoint-url set in application.properties] 17 | 18 | == Full changelog 19 | 20 | https://github.com/quarkiverse/quarkus-cxf/compare/2.3.1+++...+++2.4.0 21 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/release-notes/2.6.1.adoc: -------------------------------------------------------------------------------- 1 | [[rn-2-6-1]] 2 | = {quarkus-cxf-project-name} 2.6.1 release notes 3 | 4 | This maintenance release brings no fixes visible in end user applications. 5 | It is rather fixing some project internal build and testing issues. 6 | 7 | == Full changelog 8 | 9 | https://github.com/quarkiverse/quarkus-cxf/compare/2.6.0+++...+++2.6.1 10 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/release-notes/2.7.1.adoc: -------------------------------------------------------------------------------- 1 | [[rn-2-7-1]] 2 | = {quarkus-cxf-project-name} 2.7.1 release notes 3 | 4 | This maintenance release brings no fixes visible in end user applications. 5 | It is rather fixing some project internal build and testing issues. 6 | 7 | == Full changelog 8 | 9 | https://github.com/quarkiverse/quarkus-cxf/compare/2.7.0+++...+++2.7.1 10 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/release-notes/3.11.1.adoc: -------------------------------------------------------------------------------- 1 | [[rn-3-11-1]] 2 | = {quarkus-cxf-project-name} 3.11.1 release notes 3 | 4 | == New and noteworthy in {quarkus-cxf-project-name} 5 | 6 | === https://github.com/quarkiverse/quarkus-cxf/issues/1399[#1399] Beans not injected into a service impl with `@CXFEndpoint("/my-path")` 7 | 8 | In {quarkus-cxf-project-name} 3.11.0, we added a new feature allowing to specify service endpoint paths through a new annotation `@CXFEndpoint("/myPath")`. 9 | The new code did not work well for service implementation classes having both `@WebService` and `@CXFEndpoint` annotations. 10 | In those cases, if the service had some `@Inject` fields, those fields were left blank and the service call has thrown a `NullPointerException`. 11 | This issue was fixed in In {quarkus-cxf-project-name} 3.11.1. 12 | 13 | == Full changelog 14 | 15 | https://github.com/quarkiverse/quarkus-cxf/compare/3.11.0+++...+++3.11.1 16 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/release-notes/3.12.0.adoc: -------------------------------------------------------------------------------- 1 | [[rn-3-12-0]] 2 | = {quarkus-cxf-project-name} 3.12.0 release notes 3 | 4 | == Important dependency upgrades 5 | 6 | * Quarkus 3.11.x -> 3.12.0 - https://quarkus.io/blog/quarkus-3-12-0-released/[release notes] 7 | 8 | == New and noteworthy in {quarkus-cxf-project-name} 9 | 10 | There are no changes with a direct user impact in this release. We just did some housekeeping. 11 | 12 | == Full changelog 13 | 14 | https://github.com/quarkiverse/quarkus-cxf/compare/3.11.1+++...+++3.12.0 15 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/release-notes/3.16.1.adoc: -------------------------------------------------------------------------------- 1 | = {quarkus-cxf-project-name} 3.16.1 release notes 2 | 3 | Compared to xref:release-notes/3.16.0.adoc[3.16.0], there are no user facing changes in this release. 4 | We had to do it only because on the first attempt, 5 | the https://quarkus.io/blog/quarkiverse-and-smallrye-new-release-process/[new release process] 6 | failed to deploy some testing artifact to Maven Central that was required for validation on 7 | https://github.com/quarkusio/quarkus-platform[Quarkus Platform]. 8 | 9 | == Full changelog 10 | 11 | https://github.com/quarkiverse/quarkus-cxf/compare/3.16.0+++...+++3.16.1 12 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/release-notes/3.17.2.adoc: -------------------------------------------------------------------------------- 1 | = {quarkus-cxf-project-name} 3.17.2 release notes 2 | 3 | == Important dependency upgrades 4 | 5 | * Quarkus 3.17.2 -> 3.17.3 - https://quarkus.io/blog/quarkus-3-17-3-released/[Release notes] 6 | * `org.apache.httpcomponents.client5:httpclient5` 5.2.3 -> 5.4.1 - https://downloads.apache.org/httpcomponents/httpclient/RELEASE_NOTES-5.4.x.txt[Release notes] 7 | * `org.apache.httpcomponents.core5:httpcore5` 5.2.5 -> 5.3.1 - https://downloads.apache.org/httpcomponents/httpcore/RELEASE_NOTES-5.3.x.txt[Release notes] 8 | 9 | == Full changelog 10 | 11 | https://github.com/quarkiverse/quarkus-cxf/compare/3.17.1+++...+++3.17.2 12 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/release-notes/3.20.1.adoc: -------------------------------------------------------------------------------- 1 | = {quarkus-cxf-project-name} 3.20.1 release notes 2 | 3 | == New and noteworthy in {quarkus-cxf-project-name} 4 | 5 | === https://github.com/quarkiverse/quarkus-cxf/issues/1776[#1776] Backport adding `io.quarkiverse.cxf.CxfTlsConfiguration.getName()` 6 | 7 | There was a backwards incompatible change in Quarkus 3.21.1, 8 | because of which we had to release {quarkus-cxf-project-name} 3.21.1. 9 | Quarkus team announced that they plan to backport that change to their 3.20 LTS stream too. 10 | By backporting the fix to our 3.20 stream, we prepare for that incompatibility in advance. 11 | 12 | == Full changelog 13 | 14 | https://github.com/quarkiverse/quarkus-cxf/compare/3.20.0+++...+++3.20.1 15 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/release-notes/3.20.2.adoc: -------------------------------------------------------------------------------- 1 | = {quarkus-cxf-project-name} 3.20.2 release notes 2 | 3 | There are no end user facing changes in this release. We only fixed some testing issues. 4 | 5 | == Full changelog 6 | 7 | https://github.com/quarkiverse/quarkus-cxf/compare/3.20.1+++...+++3.20.2 8 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/release-notes/3.21.0.adoc: -------------------------------------------------------------------------------- 1 | = {quarkus-cxf-project-name} 3.21.0 release notes 2 | 3 | Nothing new compared to xref:release-notes/3.20.0.adoc[3.20.0] except for the Quarkus upgrade. 4 | 5 | == Important dependency upgrades 6 | 7 | * Quarkus 3.20.x -> 3.21.0 - https://quarkus.io/blog/quarkus-3-21-0-released/[release notes] 8 | 9 | == Full changelog 10 | 11 | https://github.com/quarkiverse/quarkus-cxf/compare/3.20.0+++...+++3.21.0 12 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/release-notes/3.21.1.adoc: -------------------------------------------------------------------------------- 1 | = {quarkus-cxf-project-name} 3.21.1 release notes 2 | 3 | == Important dependency upgrades 4 | 5 | * Quarkus 3.21.0 -> 3.21.1 - https://quarkus.io/blog/quarkus-3-21-1-released/[release notes] 6 | 7 | == Fixed issues 8 | 9 | === Incompatibility with Quarkus 3.21.1 10 | 11 | The `getName()` method was added to the `io.quarkus.tls.TlsConfiguration` interface that {quarkus-cxf-project-name} also implements, 12 | thus causing an incompatibility. 13 | Since {quarkus-cxf-project-name} 3.21.1, {quarkus-cxf-project-name} implements that method too. 14 | 15 | == Full changelog 16 | 17 | https://github.com/quarkiverse/quarkus-cxf/compare/3.21.0+++...+++3.21.1 18 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/release-notes/3.23.1.adoc: -------------------------------------------------------------------------------- 1 | = {quarkus-cxf-project-name} 3.23.1 release notes 2 | 3 | == Important dependency upgrades 4 | 5 | * CXF 4.1.1 -> 4.1.2 - https://cxf.apache.org/download.html[release notes], link:https://github.com/apache/cxf/compare/cxf-4.1.1+++...+++cxf-4.1.2[changelog] 6 | 7 | == Full changelog 8 | 9 | https://github.com/quarkiverse/quarkus-cxf/compare/3.23.0+++...+++3.23.1 10 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/release-notes/3.8.3.adoc: -------------------------------------------------------------------------------- 1 | [[rn-3-8-3]] 2 | = {quarkus-cxf-project-name} 3.8.3 (LTS) release notes 3 | 4 | == New and noteworthy in {quarkus-cxf-project-name} 5 | 6 | This release contains just two bug fixes. Check the changelog below for details. 7 | 8 | == Full changelog 9 | 10 | https://github.com/quarkiverse/quarkus-cxf/compare/3.8.2+++...+++3.8.3 11 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/release-notes/3.8.5.adoc: -------------------------------------------------------------------------------- 1 | [[rn-3-8-5]] 2 | = {quarkus-cxf-project-name} 3.8.5 (LTS) release notes 3 | 4 | == Important dependency upgrades: 5 | 6 | * Quarkus 3.8.4 -> 3.8.5 - https://quarkus.io/blog/quarkus-3-8-5-released/[release notes] 7 | 8 | == New and noteworthy in {quarkus-cxf-project-name} 9 | 10 | === Support for `@CXFEndpoint("/myPath")` reverted 11 | 12 | In {quarkus-cxf-project-name} 3.8.4 we mistakenly backported a new feature to the 3.8 maintenance branch. 13 | This change was reverted in 3.8.5. 14 | 15 | == Full changelog 16 | 17 | https://github.com/quarkiverse/quarkus-cxf/compare/3.8.4+++...+++3.8.5 18 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/security-guide/index.adoc: -------------------------------------------------------------------------------- 1 | [[security-guide-index]] 2 | = Security guide 3 | 4 | The security guide documents various security related aspects of {quarkus-cxf-project-name}: 5 | 6 | * xref:user-guide/ssl-tls-https.adoc[SSL, TLS and HTTPS] 7 | * xref:user-guide/authentication-authorization.adoc[Authentication and authorization] 8 | * xref:security-guide/ws-securitypolicy-authentication-authorization.adoc[Authentication enforced by WS-SecurityPolicy] 9 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/user-guide/advanced-client-topics/cdi-scope-of-cxfclient.adoc: -------------------------------------------------------------------------------- 1 | [[cdi-scope-of-cxfclient]] 2 | = CDI scope of clients injected via `@CXFClient` 3 | 4 | {quarkus-cxf-project-name} produces all clients injected via `@io.quarkiverse.cxf.annotation.CXFClient` in the default `@Dependent` scope. 5 | Due to that, the real scope of the injected instance depends on the CDI scope of the bean into which the client is injected. 6 | 7 | Therefore, if the client is injected into an `@ApplicationScoped` bean, then the client instance also becomes `@ApplicationScoped`. 8 | If the client is injected into an `@RequestScoped` bean, then the client instance also becomes `@RequestScoped`. 9 | 10 | This behavior comes in handy if you need to 11 | xref:user-guide/advanced-client-topics/dynamic-client-configuration.adoc[configure clients dynamically] 12 | after the application was started. 13 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/user-guide/advanced-client-topics/client-endpoint-url-defaults.adoc: -------------------------------------------------------------------------------- 1 | [[client-endpoint-url-defaults]] 2 | = `client-endpoint-url` defaults 3 | 4 | If you omit the `client-endpoint-url` property in `application.properties`, 5 | the CXF Quarkus extension will assume that the service is published at `\http://localhost:8080/\{service-path}`, 6 | where `\{service-path}` is derived from 7 | 8 | * Configuration property `quarkus.cxf.path` (if specified); and the 9 | * SEI’s class name in lower case 10 | 11 | Given `quarkus.cxf.path = /ws`, the default effective `client-endpoint-url` of the `CalculatorService` would be 12 | `\http://localhost:8080/ws/org.jboss.eap.quickstarts.wscalculator.calculator.calculatorservice`. 13 | 14 | If `quarkus.cxf.path` is not specified, the `client-endpoint-url` would be just 15 | `\http://localhost:8080/org.jboss.eap.quickstarts.wscalculator.calculator.calculatorservice`. 16 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/user-guide/advanced-client-topics/configure-multiple-clients.adoc: -------------------------------------------------------------------------------- 1 | [[configure-multiple-clients]] 2 | = Configure multiple clients 3 | 4 | In the example above, we configured just a single client called `myCalculator`. 5 | Of course, you can configure multiple clients pointing at different URLs and/or implementing different SEIs using multiple identifiers: 6 | 7 | .application.properties 8 | [source,properties] 9 | ---- 10 | cxf.it.calculator.baseUri = http://localhost:8082 11 | include::example$calculator-client/application.properties[tag=first-soap-client.adoc] 12 | 13 | # another client 14 | quarkus.cxf.client.anotherCalculator.wsdl = https://acme.com/ws/WeatherService?wsdl 15 | quarkus.cxf.client.anotherCalculator.client-endpoint-url = https://acme.com/ws/WeatherService 16 | quarkus.cxf.client.anotherCalculator.service-interface = org.jboss.eap.quickstarts.wscalculator.calculator.CalculatorService 17 | ---- 18 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/user-guide/advanced-client-topics/pure-client-applications.adoc: -------------------------------------------------------------------------------- 1 | [[pure-client-applications]] 2 | = Pure client applications 3 | 4 | Quarkus batch (e.g. periodically scheduled), or command line applications, may do without an HTTP server. 5 | Use the property below to prevent launching the HTTP server at startup: 6 | 7 | [source,properties] 8 | ---- 9 | quarkus.http.host-enabled = false 10 | ---- 11 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/user-guide/advanced-service-topics.adoc: -------------------------------------------------------------------------------- 1 | [[advanced-service-topics]] 2 | = Advanced service topics 3 | 4 | Check the following chapters for more details about implementing SOAP service endpoints: 5 | 6 | * xref:user-guide/advanced-service-topics/endpoints-and-paths.adoc[Endpoints and paths] 7 | * xref:user-guide/advanced-service-topics/jax-ws-providers.adoc[JAX-WS Providers] 8 | * xref:user-guide/advanced-service-topics/rest-and-soap-endpoints.adoc[REST and SOAP Endpoints] 9 | * xref:user-guide/advanced-service-topics/running-behind-a-reverse-proxy.adoc[Running behind a reverse proxy] 10 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/user-guide/camel-integration.adoc: -------------------------------------------------------------------------------- 1 | [[camel-integration]] 2 | = Camel Integration 3 | 4 | {link-camel-quarkus-docs-index}[Camel Quarkus] supports CXF since its version 2.12.0. 5 | Under the hood, the implementation is based on {quarkus-cxf-project-name}. 6 | Therefore, all functionality available in {quarkus-cxf-project-name} is also available in Camel Quarkus. 7 | 8 | Refer to {link-camel-quarkus-docs-cxf-soap}[Camel Quarkus CXF SOAP] extension documentation for further details. 9 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/user-guide/examples.adoc: -------------------------------------------------------------------------------- 1 | [[examples]] 2 | = Examples 3 | 4 | The {link-quarkus-cxf-source-tree-base}/integration-tests[`integration-tests` folder] of the codebase provides various examples 5 | that demonstrate how to use this extension extensively. 6 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/user-guide/index.adoc: -------------------------------------------------------------------------------- 1 | [[user-guide-index]] 2 | = User guide 3 | 4 | This User guide explains typical use cases of {quarkus-cxf-project-name}. 5 | 6 | You may want to start with some of the following topics: 7 | 8 | * xref:user-guide/create-project.adoc[Create a new project] 9 | * xref:user-guide/first-soap-web-service.adoc[Your first SOAP Web service] 10 | * xref:user-guide/first-soap-client.adoc[Your first SOAP Client] 11 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/user-guide/interceptors-features-handlers.adoc: -------------------------------------------------------------------------------- 1 | [[interceptors-features-handlers]] 2 | = CXF Interceptors and Features, JAX-WS Handlers 3 | 4 | Check the following chapters to learn a bout various ways to customize the processing of SOAP requests and responses: 5 | 6 | * xref:user-guide/interceptors-features-handlers/cxf-interceptors-and-features.adoc[CXF Interceptors and Features] 7 | * xref:user-guide/interceptors-features-handlers/jax-ws-handlers.adoc[JAX-WS Handlers] 8 | -------------------------------------------------------------------------------- /docs/src/main/resources/META-INF/resources/workaround-issue-39735: -------------------------------------------------------------------------------- 1 | https://github.com/quarkusio/quarkus/issues/39735 -------------------------------------------------------------------------------- /docs/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | quarkus.vertx.caching = false -------------------------------------------------------------------------------- /extensions/core/axiom-api-stub/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | io.quarkiverse.cxf 6 | quarkus-cxf-core 7 | 3.23.2-SNAPSHOT 8 | ../pom.xml 9 | 10 | 11 | quarkus-cxf-axiom-api-stub 12 | Quarkus CXF - Axiom API Stub 13 | Some dummy stubs of classes from Apache Axion API to make GraalVM happy. Note that CXF excludes those so they are not required for CXF to work properly 14 | 15 | 16 | -------------------------------------------------------------------------------- /extensions/core/axiom-api-stub/src/main/java/org/apache/axiom/om/OMException.java: -------------------------------------------------------------------------------- 1 | package org.apache.axiom.om; 2 | 3 | public class OMException extends RuntimeException { 4 | 5 | /** */ 6 | private static final long serialVersionUID = 1L; 7 | 8 | public OMException() { 9 | } 10 | 11 | public OMException(String message) { 12 | super(message); 13 | } 14 | 15 | public OMException(String message, Throwable cause) { 16 | super(message, cause); 17 | } 18 | 19 | public OMException(Throwable cause) { 20 | super(cause); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/main/java/io/quarkiverse/cxf/deployment/BuildTimeBusBuildItem.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment; 2 | 3 | import org.apache.cxf.Bus; 4 | 5 | import io.quarkus.builder.item.SimpleBuildItem; 6 | 7 | /** 8 | * Holds the build time {@link Bus} instance. 9 | */ 10 | public final class BuildTimeBusBuildItem extends SimpleBuildItem { 11 | private final Bus bus; 12 | 13 | public Bus getBus() { 14 | return bus; 15 | } 16 | 17 | public BuildTimeBusBuildItem(Bus bus) { 18 | super(); 19 | this.bus = bus; 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /extensions/core/deployment/src/main/java/io/quarkiverse/cxf/deployment/CXFServletInfosBuildItem.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment; 2 | 3 | import io.quarkiverse.cxf.CXFServletInfos; 4 | import io.quarkus.builder.item.SimpleBuildItem; 5 | import io.quarkus.runtime.RuntimeValue; 6 | 7 | /** 8 | * Holds the runtime {@link CXFServletInfos} reference. 9 | */ 10 | public final class CXFServletInfosBuildItem extends SimpleBuildItem { 11 | private final RuntimeValue cxfServletInfos; 12 | 13 | public CXFServletInfosBuildItem(RuntimeValue cxfServletInfos) { 14 | super(); 15 | this.cxfServletInfos = cxfServletInfos; 16 | } 17 | 18 | public RuntimeValue getCxfServletInfos() { 19 | return cxfServletInfos; 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /extensions/core/deployment/src/main/java/io/quarkiverse/cxf/deployment/ClientSeiBuildItem.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment; 2 | 3 | import java.util.Objects; 4 | 5 | import io.quarkus.builder.item.MultiBuildItem; 6 | 7 | /** 8 | * Holds a fully qualified class name of a service interface used by a client for purposes of ancillary 9 | * class generation at build time. 10 | */ 11 | public final class ClientSeiBuildItem extends MultiBuildItem { 12 | private final String sei; 13 | 14 | public ClientSeiBuildItem(String sei) { 15 | super(); 16 | this.sei = Objects.requireNonNull(sei, "sei cannot be null"); 17 | } 18 | 19 | public String getSei() { 20 | return sei; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/main/java/io/quarkiverse/cxf/deployment/CxfClientBuildItem.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment; 2 | 3 | /** 4 | * Holds a client endpoint metadata. 5 | */ 6 | public final class CxfClientBuildItem extends AbstractEndpointBuildItem { 7 | private final String sei; 8 | private final boolean proxyClassRuntimeInitialized; 9 | 10 | public CxfClientBuildItem(String sei, String soapBinding, String wsNamespace, 11 | String wsName, boolean runtimeInitialized) { 12 | super(soapBinding, wsNamespace, wsName); 13 | this.sei = sei; 14 | this.proxyClassRuntimeInitialized = runtimeInitialized; 15 | } 16 | 17 | public String getSei() { 18 | return sei; 19 | } 20 | 21 | public boolean isProxyClassRuntimeInitialized() { 22 | return proxyClassRuntimeInitialized; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/main/java/io/quarkiverse/cxf/deployment/QuarkusCxfFeature.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment; 2 | 3 | import io.quarkus.deployment.builditem.FeatureBuildItem; 4 | 5 | public enum QuarkusCxfFeature { 6 | CXF("cxf"); 7 | 8 | private final String key; 9 | 10 | private QuarkusCxfFeature(String key) { 11 | this.key = key; 12 | } 13 | 14 | public String getKey() { 15 | return key; 16 | } 17 | 18 | public FeatureBuildItem asFeature() { 19 | return new FeatureBuildItem(this.key); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/main/java/io/quarkiverse/cxf/deployment/RuntimeBusBuildItem.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment; 2 | 3 | import org.apache.cxf.Bus; 4 | 5 | import io.quarkus.builder.item.SimpleBuildItem; 6 | import io.quarkus.runtime.RuntimeValue; 7 | 8 | /** 9 | * Holds the runtime {@link Bus} reference. 10 | */ 11 | public final class RuntimeBusBuildItem extends SimpleBuildItem { 12 | private final RuntimeValue bus; 13 | 14 | public RuntimeValue getBus() { 15 | return bus; 16 | } 17 | 18 | public RuntimeBusBuildItem(RuntimeValue bus) { 19 | super(); 20 | this.bus = bus; 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /extensions/core/deployment/src/main/java/io/quarkiverse/cxf/deployment/RuntimeBusCustomizerBuildItem.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment; 2 | 3 | import java.util.function.Consumer; 4 | 5 | import org.apache.cxf.Bus; 6 | 7 | import io.quarkus.builder.item.MultiBuildItem; 8 | import io.quarkus.runtime.RuntimeValue; 9 | 10 | /** 11 | * Holds a {@link Consumer} that will be used to customize the runtime {@link Bus} right after its creation. 12 | */ 13 | public final class RuntimeBusCustomizerBuildItem extends MultiBuildItem { 14 | private final RuntimeValue> customizer; 15 | 16 | public RuntimeBusCustomizerBuildItem(RuntimeValue> customizer) { 17 | super(); 18 | this.customizer = customizer; 19 | } 20 | 21 | public RuntimeValue> getCustomizer() { 22 | return customizer; 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /extensions/core/deployment/src/main/java/io/quarkiverse/cxf/deployment/ServiceSeiBuildItem.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment; 2 | 3 | import java.util.Objects; 4 | 5 | import io.quarkus.builder.item.MultiBuildItem; 6 | 7 | /** 8 | * Holds a fully qualified class name of a service implementation or of a service interface for purposes of ancillary 9 | * class generation at build time. 10 | */ 11 | public final class ServiceSeiBuildItem extends MultiBuildItem { 12 | private final String sei; 13 | 14 | public ServiceSeiBuildItem(String sei) { 15 | super(); 16 | this.sei = Objects.requireNonNull(sei, "sei cannot be null"); 17 | } 18 | 19 | public String getSei() { 20 | return sei; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/main/java/io/quarkiverse/cxf/quarkus/vertx/http/client/deployment/VertxWebClientProcessor.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.quarkus.vertx.http.client.deployment; 2 | 3 | import io.quarkiverse.cxf.vertx.http.client.HttpClientPool; 4 | import io.quarkus.arc.deployment.AdditionalBeanBuildItem; 5 | import io.quarkus.deployment.annotations.BuildProducer; 6 | import io.quarkus.deployment.annotations.BuildStep; 7 | 8 | public class VertxWebClientProcessor { 9 | 10 | @BuildStep 11 | void additionalBeans(BuildProducer additionalBeans) { 12 | additionalBeans.produce(AdditionalBeanBuildItem.unremovableOf(HttpClientPool.class)); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/main/resources/META-INF/services/io.quarkus.deployment.CodeGenProvider: -------------------------------------------------------------------------------- 1 | io.quarkiverse.cxf.deployment.codegen.Wsdl2JavaCodeGen 2 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/test/java/io/quarkiverse/cxf/deployment/logging/HelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment.logging; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | /** 7 | * The simplest Hello service. 8 | */ 9 | @WebService(targetNamespace = "http://deployment.logging.features.cxf.quarkiverse.io/") 10 | public interface HelloService { 11 | 12 | @WebMethod 13 | String hello(String text); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/test/java/io/quarkiverse/cxf/deployment/logging/HelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment.logging; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | /** 7 | * The simplest Hello service implementation. 8 | */ 9 | @WebService(serviceName = "HelloService") 10 | public class HelloServiceImpl implements HelloService { 11 | 12 | @WebMethod 13 | @Override 14 | public String hello(String text) { 15 | return "Hello " + text + "!"; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/test/java/io/quarkiverse/cxf/deployment/logging/NamedLoggingFeatureProducer.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment.logging; 2 | 3 | import jakarta.enterprise.context.ApplicationScoped; 4 | import jakarta.enterprise.inject.Produces; 5 | import jakarta.inject.Named; 6 | 7 | import org.apache.cxf.ext.logging.LoggingFeature; 8 | 9 | public class NamedLoggingFeatureProducer { 10 | 11 | @Produces 12 | @ApplicationScoped 13 | @Named("namedLoggingFeature") 14 | // no @Unremovable annotation here 15 | LoggingFeature namedLoggingFeature() { 16 | LoggingFeature loggingFeature = new LoggingFeature(); 17 | loggingFeature.setPrettyLogging(true); 18 | return loggingFeature; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/test/java/io/quarkiverse/cxf/deployment/test/Add.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment.test; 2 | 3 | import jakarta.xml.bind.annotation.XmlAccessType; 4 | import jakarta.xml.bind.annotation.XmlAccessorType; 5 | import jakarta.xml.bind.annotation.XmlElement; 6 | import jakarta.xml.bind.annotation.XmlType; 7 | 8 | @XmlAccessorType(XmlAccessType.FIELD) 9 | @XmlType(name = "Add", propOrder = { 10 | "fruit" 11 | }) 12 | public class Add { 13 | 14 | @XmlElement(name = "fruit") 15 | protected Fruit fruit; 16 | 17 | /** 18 | * Obtient la valeur de la propriété addResult. 19 | * 20 | */ 21 | public Fruit getFruit() { 22 | return fruit; 23 | } 24 | 25 | /** 26 | * Définit la valeur de la propriété addResult. 27 | * 28 | */ 29 | public void setFruit(Fruit value) { 30 | this.fruit = value; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/test/java/io/quarkiverse/cxf/deployment/test/Delete.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment.test; 2 | 3 | import jakarta.xml.bind.annotation.XmlAccessType; 4 | import jakarta.xml.bind.annotation.XmlAccessorType; 5 | import jakarta.xml.bind.annotation.XmlElement; 6 | import jakarta.xml.bind.annotation.XmlType; 7 | 8 | @XmlAccessorType(XmlAccessType.FIELD) 9 | @XmlType(name = "Delete", propOrder = { 10 | "fruit" 11 | }) 12 | public class Delete { 13 | 14 | @XmlElement(name = "fruit") 15 | protected Fruit fruit; 16 | 17 | /** 18 | * Obtient la valeur de la propriété addResult. 19 | * 20 | */ 21 | public Fruit getFruit() { 22 | return fruit; 23 | } 24 | 25 | /** 26 | * Définit la valeur de la propriété addResult. 27 | * 28 | */ 29 | public void setFruit(Fruit value) { 30 | this.fruit = value; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/test/java/io/quarkiverse/cxf/deployment/test/GreetingWebService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment.test; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebResult; 5 | import jakarta.jws.WebService; 6 | 7 | @WebService 8 | public interface GreetingWebService { 9 | 10 | @WebMethod 11 | @WebResult(name = "hello", targetNamespace = "http://test.deployment.cxf.quarkiverse.io/", partName = "parameters") 12 | String hello(); 13 | 14 | @WebMethod 15 | @WebResult(name = "ping", targetNamespace = "http://test.deployment.cxf.quarkiverse.io/", partName = "parameters") 16 | void ping(); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/test/java/io/quarkiverse/cxf/deployment/test/GreetingWebServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment.test; 2 | 3 | import jakarta.jws.WebService; 4 | 5 | @WebService(endpointInterface = "io.quarkiverse.cxf.deployment.test.GreetingWebService", serviceName = "GreetingWebService") 6 | public class GreetingWebServiceImpl implements GreetingWebService { 7 | @Override 8 | public String hello() { 9 | return "hello world"; 10 | } 11 | 12 | @Override 13 | public void ping() { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/test/java/io/quarkiverse/cxf/deployment/test/HelloWebServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment.test; 2 | 3 | import jakarta.jws.WebService; 4 | 5 | @WebService(endpointInterface = "io.quarkiverse.cxf.deployment.test.GreetingWebService", serviceName = "GreetingWebService") 6 | public class HelloWebServiceImpl implements GreetingWebService { 7 | @Override 8 | public String hello() { 9 | return "hello world from HelloWebServiceImpl"; 10 | } 11 | 12 | @Override 13 | public void ping() { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/test/java/io/quarkiverse/cxf/deployment/test/client/model/package-info.java: -------------------------------------------------------------------------------- 1 | @jakarta.xml.bind.annotation.XmlSchema(namespace = "http://test.deployment.cxf.quarkiverse.io/") 2 | package io.quarkiverse.cxf.deployment.test.client.model; 3 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/test/java/io/quarkiverse/cxf/deployment/test/dev/DevUiRemoteStatsImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment.test.dev; 2 | 3 | import jakarta.jws.WebService; 4 | 5 | import io.quarkiverse.cxf.annotation.CXFClient; 6 | 7 | @WebService(name = "DevUiStats", serviceName = "DevUiStats") 8 | public class DevUiRemoteStatsImpl implements DevUiStats { 9 | 10 | @CXFClient("stats") 11 | DevUiStats stats; 12 | 13 | @CXFClient 14 | DevUiStats keyLessStats; 15 | 16 | @Override 17 | public int getClientCount() { 18 | return stats.getClientCount(); 19 | } 20 | 21 | @Override 22 | public String getClient(int index) { 23 | return stats.getClient(index); 24 | } 25 | 26 | @Override 27 | public int getServiceCount() { 28 | return stats.getServiceCount(); 29 | } 30 | 31 | @Override 32 | public String getService(int index) { 33 | return stats.getService(index); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/test/java/io/quarkiverse/cxf/deployment/test/dev/DevUiStats.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment.test.dev; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | @WebService(serviceName = "DevUiStats") 7 | public interface DevUiStats { 8 | 9 | @WebMethod 10 | int getClientCount(); 11 | 12 | @WebMethod 13 | String getClient(int index); 14 | 15 | @WebMethod 16 | int getServiceCount(); 17 | 18 | @WebMethod 19 | String getService(int index); 20 | 21 | } -------------------------------------------------------------------------------- /extensions/core/deployment/src/test/java/io/quarkiverse/cxf/deployment/test/path/CxfPathTest.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment.test.path; 2 | 3 | import org.junit.jupiter.api.extension.RegisterExtension; 4 | 5 | import io.quarkus.test.QuarkusUnitTest; 6 | 7 | public class CxfPathTest extends AbstractCxfPathTest { 8 | 9 | @RegisterExtension 10 | public static final QuarkusUnitTest test = createDeployment(null, "/CxfPathTest"); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/test/java/io/quarkiverse/cxf/deployment/test/path/DefaultPathsTest.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment.test.path; 2 | 3 | import org.junit.jupiter.api.extension.RegisterExtension; 4 | 5 | import io.quarkus.test.QuarkusUnitTest; 6 | 7 | public class DefaultPathsTest extends AbstractCxfPathTest { 8 | 9 | @RegisterExtension 10 | public static final QuarkusUnitTest test = createDeployment(null, null); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/test/java/io/quarkiverse/cxf/deployment/test/path/QuarkusRootPathAndCxfPathTest.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment.test.path; 2 | 3 | import org.junit.jupiter.api.extension.RegisterExtension; 4 | 5 | import io.quarkus.test.QuarkusUnitTest; 6 | 7 | public class QuarkusRootPathAndCxfPathTest extends AbstractCxfPathTest { 8 | 9 | @RegisterExtension 10 | public static final QuarkusUnitTest test = createDeployment("/quarkus-root-path", "/cxf-endpoints"); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /extensions/core/deployment/src/test/java/io/quarkiverse/cxf/deployment/test/path/QuarkusRootPathTest.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.deployment.test.path; 2 | 3 | import org.junit.jupiter.api.extension.RegisterExtension; 4 | 5 | import io.quarkus.test.QuarkusUnitTest; 6 | 7 | public class QuarkusRootPathTest extends AbstractCxfPathTest { 8 | 9 | @RegisterExtension 10 | public static final QuarkusUnitTest test = createDeployment("/quarkus-root-path", null); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /extensions/core/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | io.quarkiverse.cxf 6 | quarkus-cxf-extensions 7 | 3.23.2-SNAPSHOT 8 | ../pom.xml 9 | 10 | 11 | quarkus-cxf-core 12 | Quarkus CXF - Core - Parent 13 | pom 14 | 15 | 16 | axiom-api-stub 17 | runtime 18 | deployment 19 | 20 | 21 | -------------------------------------------------------------------------------- /extensions/core/runtime/src/main/doc/standards.adoc: -------------------------------------------------------------------------------- 1 | * https://cxf.apache.org/docs/jax-ws.html[JAX-WS] 2 | * https://cxf.apache.org/docs/jaxb.html[JAXB] 3 | * https://cxf.apache.org/docs/ws-addressing.html[WS-Addressing] 4 | * https://cxf.apache.org/docs/ws-policy.html[WS-Policy] 5 | * https://cxf.apache.org/docs/mtom.html[MTOM] 6 | -------------------------------------------------------------------------------- /extensions/core/runtime/src/main/java/io/quarkiverse/cxf/CXFException.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf; 2 | 3 | public final class CXFException extends Exception { 4 | 5 | private final Object faultInfo; 6 | 7 | public CXFException(String message, Object fault) { 8 | super(message); 9 | this.faultInfo = fault; 10 | } 11 | 12 | public Object getFaultInfo() { 13 | return faultInfo; 14 | } 15 | } -------------------------------------------------------------------------------- /extensions/core/runtime/src/main/java/io/quarkiverse/cxf/ConnectionTypeConverter.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf; 2 | 3 | import org.apache.cxf.transports.http.configuration.ConnectionType; 4 | import org.eclipse.microprofile.config.spi.Converter; 5 | 6 | public class ConnectionTypeConverter extends AbstractEnumConverter implements Converter { 7 | 8 | private static final long serialVersionUID = 1L; 9 | 10 | public ConnectionTypeConverter() { 11 | super(ConnectionType.class, ConnectionType::value); 12 | } 13 | 14 | @Override 15 | public ConnectionType convert(String value) { 16 | return super.convert(value); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /extensions/core/runtime/src/main/java/io/quarkiverse/cxf/QuarkusCxfUtils.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf; 2 | 3 | import io.smallrye.config.NameIterator; 4 | 5 | public class QuarkusCxfUtils { 6 | private QuarkusCxfUtils() { 7 | } 8 | 9 | /** 10 | * Keys occurring in free form configuration maps may need quoting with double quotes, if they contain periods. 11 | * 12 | * @param key a key occurring in a free form configuration map, such as {@code "client-name"} in 13 | * {@code quarkus.cxf.client."client-name".logging.enabled}. 14 | * @return a possibly quoted key 15 | */ 16 | public static String quoteCongurationKeyIfNeeded(String key) { 17 | final NameIterator keyIterator = new NameIterator(key); 18 | keyIterator.next(); 19 | return keyIterator.hasNext() ? "\"" + key + "\"" : key; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /extensions/core/runtime/src/main/java/io/quarkiverse/cxf/QuarkusRuntimeJaxWsServiceFactoryBean.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf; 2 | 3 | import org.apache.cxf.jaxws.support.JaxWsImplementorInfo; 4 | import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean; 5 | 6 | public class QuarkusRuntimeJaxWsServiceFactoryBean extends JaxWsServiceFactoryBean { 7 | 8 | public QuarkusRuntimeJaxWsServiceFactoryBean(JaxWsImplementorInfo jaxWsImplementorInfo) { 9 | super(jaxWsImplementorInfo); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /extensions/core/runtime/src/main/java/io/quarkiverse/cxf/URLConnectionHTTPConduitFactory.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf; 2 | 3 | import java.io.IOException; 4 | 5 | import org.apache.cxf.Bus; 6 | import org.apache.cxf.service.model.EndpointInfo; 7 | import org.apache.cxf.transport.http.HTTPConduit; 8 | import org.apache.cxf.transport.http.HTTPConduitFactory; 9 | import org.apache.cxf.transport.http.HTTPTransportFactory; 10 | import org.apache.cxf.transport.http.URLConnectionHTTPConduit; 11 | import org.apache.cxf.ws.addressing.EndpointReferenceType; 12 | 13 | public class URLConnectionHTTPConduitFactory implements HTTPConduitFactory { 14 | @Override 15 | public HTTPConduit createConduit(HTTPTransportFactory f, Bus bus, EndpointInfo endpointInfo, EndpointReferenceType target) 16 | throws IOException { 17 | return new URLConnectionHTTPConduit(bus, endpointInfo, target); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /extensions/core/runtime/src/main/java/io/quarkiverse/cxf/WebServiceContextProducer.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf; 2 | 3 | import jakarta.annotation.Resource; 4 | import jakarta.annotation.Resources; 5 | import jakarta.enterprise.context.RequestScoped; 6 | import jakarta.enterprise.inject.Produces; 7 | import jakarta.xml.ws.WebServiceContext; 8 | 9 | import org.apache.cxf.jaxws.context.WebServiceContextImpl; 10 | 11 | /** 12 | * Produces {@link WebServiceContext} beans to be injected to fieds and methods annotated with {@link Resource} or 13 | * {@link Resources}. See also io.quarkiverse.cxf.deployment.WebServiceContextProcessor#addInjectForResource(). 14 | */ 15 | public class WebServiceContextProducer { 16 | 17 | @Produces 18 | @RequestScoped 19 | public WebServiceContext newWebServiceContext() { 20 | return new WebServiceContextImpl(); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /extensions/core/runtime/src/main/java/io/quarkiverse/cxf/devui/DevUiRecorder.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.devui; 2 | 3 | import java.util.List; 4 | 5 | import io.quarkiverse.cxf.CXFServletInfos; 6 | import io.quarkiverse.cxf.ClientInjectionPoint; 7 | import io.quarkus.runtime.RuntimeValue; 8 | import io.quarkus.runtime.ShutdownContext; 9 | import io.quarkus.runtime.annotations.Recorder; 10 | 11 | @Recorder 12 | public class DevUiRecorder { 13 | public RuntimeValue> clientInjectionPoints(List injectionPoints) { 14 | return new RuntimeValue<>(injectionPoints); 15 | } 16 | 17 | public void servletInfos(RuntimeValue cxfServletInfos) { 18 | CxfJsonRPCService.setServletInfos(cxfServletInfos.getValue()); 19 | } 20 | 21 | public void shutdown(ShutdownContext context) { 22 | context.addShutdownTask(CxfJsonRPCService::shutdown); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /extensions/core/runtime/src/main/java/io/quarkiverse/cxf/devui/DevUiServiceInfo.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.devui; 2 | 3 | import io.quarkiverse.cxf.CXFServletInfo; 4 | 5 | public class DevUiServiceInfo { 6 | 7 | public static DevUiServiceInfo of(CXFServletInfo info) { 8 | return new DevUiServiceInfo(info.getPath() + info.getRelativePath(), info.getClassName()); 9 | } 10 | 11 | private final String path; 12 | private final String implementor; 13 | 14 | public DevUiServiceInfo(String path, String implementor) { 15 | super(); 16 | this.path = path; 17 | this.implementor = implementor; 18 | } 19 | 20 | public String getPath() { 21 | return path; 22 | } 23 | 24 | public String getImplementor() { 25 | return implementor; 26 | } 27 | 28 | @Override 29 | public String toString() { 30 | return "DevUiServiceInfo [path=" + path + ", implementor=" + implementor + "]"; 31 | } 32 | 33 | } -------------------------------------------------------------------------------- /extensions/core/runtime/src/main/java/io/quarkiverse/cxf/graal/QuarkusCxfFeature.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.graal; 2 | 3 | import org.graalvm.nativeimage.hosted.Feature; 4 | import org.graalvm.nativeimage.hosted.RuntimeClassInitialization; 5 | 6 | import io.quarkiverse.cxf.CxfClientProducer; 7 | 8 | /** 9 | * 10 | */ 11 | public class QuarkusCxfFeature implements Feature { 12 | @Override 13 | public void afterRegistration(AfterRegistrationAccess access) { 14 | /* 15 | * We cannot do this using a RuntimeInitializedPackageBuildItem because it would cause a dependency cycle in 16 | * io.quarkiverse.cxf.deployment.CxfClientProcessor.collectClients() 17 | */ 18 | RuntimeClassInitialization.initializeAtRunTime(CxfClientProducer.RUNTIME_INITIALIZED_PROXY_MARKER_INTERFACE_PACKAGE); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /extensions/core/runtime/src/main/java/io/quarkiverse/cxf/mutiny/FailedResponse.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.mutiny; 2 | 3 | import java.util.Map; 4 | 5 | /** 6 | * A combination of an {@link Exception} (via superclass) and of a response context map via {@link #getContext()}. 7 | * 8 | * @since 3.19.0 9 | */ 10 | public class FailedResponse extends Exception { 11 | 12 | private static final long serialVersionUID = 1L; 13 | private final Map context; 14 | 15 | FailedResponse(Throwable cause, Map context) { 16 | super(cause); 17 | this.context = context; 18 | } 19 | 20 | public Map getContext() { 21 | return context; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /extensions/core/runtime/src/main/java/io/quarkiverse/cxf/mutiny/SucceededResponse.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.mutiny; 2 | 3 | import java.util.Map; 4 | 5 | /** 6 | * A combination of a response object via {@link #payload} and of a response context map via {@link #getContext()}. 7 | * 8 | * @param 9 | * @since 3.19.0 10 | */ 11 | public class SucceededResponse { 12 | private final Map context; 13 | private final T payload; 14 | 15 | SucceededResponse(T payload, Map context) { 16 | super(); 17 | this.payload = payload; 18 | this.context = context; 19 | } 20 | 21 | public Map getContext() { 22 | return context; 23 | } 24 | 25 | public T getPayload() { 26 | return payload; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /extensions/core/runtime/src/main/java/io/quarkiverse/cxf/runtime/proxy/RuntimeInitializedProxyMarker.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.runtime.proxy; 2 | 3 | interface RuntimeInitializedProxyMarker { 4 | } -------------------------------------------------------------------------------- /extensions/core/runtime/src/main/java/io/quarkiverse/cxf/transport/VertxServletConfig.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.transport; 2 | 3 | import java.util.Collections; 4 | import java.util.Enumeration; 5 | 6 | import jakarta.servlet.ServletConfig; 7 | import jakarta.servlet.ServletContext; 8 | 9 | public class VertxServletConfig implements ServletConfig { 10 | @Override 11 | public String getServletName() { 12 | return null; 13 | } 14 | 15 | @Override 16 | public ServletContext getServletContext() { 17 | return null; 18 | } 19 | 20 | @Override 21 | public String getInitParameter(String name) { 22 | return null; 23 | } 24 | 25 | @Override 26 | public Enumeration getInitParameterNames() { 27 | return Collections.emptyEnumeration(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /extensions/core/runtime/src/main/java/io/quarkiverse/cxf/vertx/http/client/VertxHttpException.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.vertx.http.client; 2 | 3 | public class VertxHttpException extends RuntimeException { 4 | private static final long serialVersionUID = 1L; 5 | 6 | public VertxHttpException(String message, Throwable cause) { 7 | super(message, cause); 8 | } 9 | 10 | public VertxHttpException(String message) { 11 | super(message); 12 | } 13 | 14 | public VertxHttpException(Throwable cause) { 15 | super(cause); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /extensions/core/runtime/src/main/resources/META-INF/cxf/bus-extensions.txt: -------------------------------------------------------------------------------- 1 | io.quarkiverse.cxf.transport.VertxDestinationFactory::true 2 | -------------------------------------------------------------------------------- /extensions/core/runtime/src/main/resources/META-INF/quarkus-extension.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | artifact: ${project.groupId}:${project.artifactId}:${project.version} 3 | name: "Quarkus CXF" 4 | description: "Core capabilities for implementing SOAP clients and JAX-WS services" 5 | metadata: 6 | keywords: 7 | - "cxf" 8 | - "jaxws" 9 | - "jax-ws" 10 | - "services" 11 | - "soap" 12 | categories: 13 | - "integration" 14 | guide: "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/dev/reference/extensions/quarkus-cxf.html" 15 | status: "stable" 16 | -------------------------------------------------------------------------------- /extensions/core/runtime/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.Converter: -------------------------------------------------------------------------------- 1 | io.quarkiverse.cxf.ConnectionTypeConverter 2 | io.quarkiverse.cxf.EnabledFor$EnabledForConverter 3 | -------------------------------------------------------------------------------- /extensions/features-logging/deployment/src/main/java/io/quarkiverse/cxf/features/deprecated/logging/deployment/DeprecatedLoggingProcessor.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.features.deprecated.logging.deployment; 2 | 3 | import io.quarkiverse.cxf.features.deprecated.logging.DeprecatedLoggingRecorder; 4 | import io.quarkus.deployment.annotations.BuildStep; 5 | import io.quarkus.deployment.annotations.ExecutionTime; 6 | import io.quarkus.deployment.annotations.Record; 7 | 8 | public class DeprecatedLoggingProcessor { 9 | 10 | @BuildStep 11 | @Record(ExecutionTime.RUNTIME_INIT) 12 | void warnAboutDeprecation(DeprecatedLoggingRecorder recorder) { 13 | /* Warn at build time */ 14 | new DeprecatedLoggingRecorder().warnAboutDeprecation(); 15 | /* Warn when starting the application */ 16 | recorder.warnAboutDeprecation(); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /extensions/features-logging/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | io.quarkiverse.cxf 6 | quarkus-cxf-extensions 7 | 3.23.2-SNAPSHOT 8 | ../pom.xml 9 | 10 | 11 | quarkus-cxf-rt-features-logging-parent 12 | Quarkus CXF - Logging Feature - Parent 13 | pom 14 | 15 | 16 | deployment 17 | runtime 18 | 19 | 20 | -------------------------------------------------------------------------------- /extensions/features-logging/runtime/src/main/doc/intro.adoc: -------------------------------------------------------------------------------- 1 | [WARNING] 2 | ==== 3 | This extension is deprecated since {quarkus-cxf-project-name} 2.6.0 4 | and will be removed in the next major version of {quarkus-cxf-project-name}. 5 | 6 | All functionality was moved to `xref:reference/extensions/quarkus-cxf.adoc[quarkus-cxf]` extension. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/features-logging/runtime/src/main/java/io/quarkiverse/cxf/features/deprecated/logging/DeprecatedLoggingRecorder.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.features.deprecated.logging; 2 | 3 | import org.jboss.logging.Logger; 4 | 5 | import io.quarkus.runtime.annotations.Recorder; 6 | 7 | @Recorder 8 | public class DeprecatedLoggingRecorder { 9 | private static final Logger log = Logger.getLogger(DeprecatedLoggingRecorder.class); 10 | 11 | public void warnAboutDeprecation() { 12 | log.warn( 13 | "io.quarkiverse.cxf:quarkus-cxf-rt-features-logging is deprecated and will be removed in the future. Use io.quarkiverse.cxf:quarkus-cxf instead."); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /extensions/features-logging/runtime/src/main/resources/META-INF/quarkus-extension.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | artifact: ${project.groupId}:${project.artifactId}:${project.version} 3 | name: "Quarkus CXF Logging (deprecated)" 4 | description: "Deprecated, use io.quarkiverse.cxf:quarkus-cxf instead" 5 | metadata: 6 | unlisted: true 7 | keywords: 8 | - "cxf" 9 | - "jaxws" 10 | - "jax-ws" 11 | - "services" 12 | - "soap" 13 | categories: 14 | - "integration" 15 | status: 16 | - "stable" 17 | - "deprecated" 18 | -------------------------------------------------------------------------------- /extensions/features-metrics/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | io.quarkiverse.cxf 6 | quarkus-cxf-extensions 7 | 3.23.2-SNAPSHOT 8 | ../pom.xml 9 | 10 | 11 | quarkus-cxf-rt-features-metrics-parent 12 | Quarkus CXF - Metrics Feature - Parent 13 | pom 14 | 15 | 16 | deployment 17 | runtime 18 | 19 | 20 | -------------------------------------------------------------------------------- /extensions/features-metrics/runtime/src/main/doc/intro.adoc: -------------------------------------------------------------------------------- 1 | Collect metrics using https://micrometer.io/[Micrometer]. 2 | 3 | [IMPORTANT] 4 | ==== 5 | Unlike https://cxf.apache.org/docs/metrics.html[CXF Metrics feature], 6 | this {quarkus-cxf-project-name} extension does not support https://cxf.apache.org/docs/dropwizard-metrics.html[Dropwizard Metrics]. 7 | Only Micrometer is supported. 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/features-metrics/runtime/src/main/java/org/apache/cxf/metrics/codahale/CodahaleSubstitutions.java: -------------------------------------------------------------------------------- 1 | package org.apache.cxf.metrics.codahale; 2 | 3 | import com.oracle.svm.core.annotate.Delete; 4 | import com.oracle.svm.core.annotate.TargetClass; 5 | 6 | /** 7 | * We do not support Dropwizard Metrics. 8 | */ 9 | public class CodahaleSubstitutions { 10 | 11 | @TargetClass(ConfigProviderResolver.class) 12 | @Delete 13 | static final class ConfigProviderResolver { 14 | } 15 | 16 | @TargetClass(CodahaleMetricsContext.class) 17 | @Delete 18 | static final class CodahaleMetricsContext { 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /extensions/features-metrics/runtime/src/main/resources/META-INF/quarkus-extension.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | artifact: ${project.groupId}:${project.artifactId}:${project.version} 3 | name: "Quarkus CXF Metrics" 4 | metadata: 5 | keywords: 6 | - "soap" 7 | - "cxf" 8 | - "services" 9 | categories: 10 | - "integration" 11 | guide: "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/dev/reference/extensions/quarkus-cxf-rt-features-metrics.html" 12 | -------------------------------------------------------------------------------- /extensions/integration-tracing-opentelemetry/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | io.quarkiverse.cxf 6 | quarkus-cxf-extensions 7 | 3.23.2-SNAPSHOT 8 | ../pom.xml 9 | 10 | 11 | quarkus-cxf-integration-tracing-opentelemetry-parent 12 | Quarkus CXF - OpenTelemetry - Parent 13 | pom 14 | 15 | 16 | deployment 17 | runtime 18 | 19 | 20 | -------------------------------------------------------------------------------- /extensions/integration-tracing-opentelemetry/runtime/src/main/doc/intro.adoc: -------------------------------------------------------------------------------- 1 | Generate https://opentelemetry.io/[OpenTelemetry] https://opentelemetry.io/docs/concepts/signals/traces/[traces]. 2 | 3 | [IMPORTANT] 4 | ==== 5 | OpenTelemetry Metrics and Logging are not supported yet on neither Quarkus nor CXF side, 6 | hence {quarkus-cxf-project-name} cannot support them either. Tracing is thus 7 | the only OpenTelemetry feature supported by this extension. 8 | ==== -------------------------------------------------------------------------------- /extensions/integration-tracing-opentelemetry/runtime/src/main/resources/META-INF/quarkus-extension.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | artifact: ${project.groupId}:${project.artifactId}:${project.version} 3 | name: "Quarkus CXF OpenTelemetry" 4 | metadata: 5 | keywords: 6 | - "soap" 7 | - "cxf" 8 | - "services" 9 | categories: 10 | - "integration" 11 | guide: "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/dev/reference/extensions/quarkus-cxf-integration-tracing-opentelemetry.html" 12 | -------------------------------------------------------------------------------- /extensions/jaxb-plugins/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | io.quarkiverse.cxf 6 | quarkus-cxf-extensions 7 | 3.23.2-SNAPSHOT 8 | ../pom.xml 9 | 10 | 11 | quarkus-cxf-jaxb-plugins-parent 12 | Quarkus CXF - JAXB Plugins for wsdl2java - Parent 13 | pom 14 | 15 | 16 | deployment 17 | runtime 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /extensions/jaxb-plugins/runtime/src/main/doc/intro.adoc: -------------------------------------------------------------------------------- 1 | Embeds XJC plugins from `https://github.com/highsource/jaxb-tools/wiki/JAXB2-Basics-Plugins-List[org.jvnet.jaxb:jaxb-plugins]` 2 | for xref:user-guide/contract-first-code-first/generate-java-from-wsdl.adoc[wsdl2java] code generation. 3 | -------------------------------------------------------------------------------- /extensions/jaxb-plugins/runtime/src/main/resources/META-INF/quarkus-extension.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | artifact: ${project.groupId}:${project.artifactId}:${project.version} 3 | name: "JAXB Plugins for wsdl2java" 4 | description: "Embeds XJC plugins from org.jvnet.jaxb:jaxb-plugins for wsdl2java code generation" 5 | metadata: 6 | keywords: 7 | - "soap" 8 | - "xml" 9 | - "xjc" 10 | categories: 11 | - "xml" 12 | guide: "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/dev/reference/extensions/quarkus-cxf-jaxb-plugins.html" 13 | status: "experimental" 14 | -------------------------------------------------------------------------------- /extensions/rt-management/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | io.quarkiverse.cxf 6 | quarkus-cxf-extensions 7 | 3.23.2-SNAPSHOT 8 | ../pom.xml 9 | 10 | 11 | quarkus-cxf-rt-management-parent 12 | Quarkus CXF - Runtime Management - Parent 13 | pom 14 | 15 | 16 | deployment 17 | runtime 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /extensions/rt-management/runtime/src/main/resources/META-INF/quarkus-extension.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | artifact: ${project.groupId}:${project.artifactId}:${project.version} 3 | name: "Quarkus CXF Runtime Management" 4 | description: "Native support for CXf Runtime Management" 5 | metadata: 6 | unlisted: true 7 | keywords: 8 | - "jmx" 9 | categories: 10 | - "jmx" 11 | guide: "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/dev/index.html" 12 | status: "stable" 13 | -------------------------------------------------------------------------------- /extensions/saaj/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | io.quarkiverse.cxf 6 | quarkus-cxf-extensions 7 | 3.23.2-SNAPSHOT 8 | ../pom.xml 9 | 10 | 11 | quarkus-cxf-saaj-parent 12 | Quarkus CXF - SAAJ - Parent 13 | pom 14 | 15 | 16 | deployment 17 | runtime 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /extensions/saaj/runtime/src/main/resources/META-INF/quarkus-extension.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | artifact: ${project.groupId}:${project.artifactId}:${project.version} 3 | name: "Quarkus CXF SAAJ" 4 | description: "Native support for SOAP with Attachments API for Java (SAAJ)" 5 | metadata: 6 | unlisted: true 7 | keywords: 8 | - "attachments" 9 | - "saaj" 10 | - "soap" 11 | - "xml" 12 | categories: 13 | - "xml" 14 | guide: "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/dev/index.html" 15 | status: "stable" 16 | -------------------------------------------------------------------------------- /extensions/santuario-xmlsec/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | io.quarkiverse.cxf 6 | quarkus-cxf-extensions 7 | 3.23.2-SNAPSHOT 8 | ../pom.xml 9 | 10 | 11 | quarkus-cxf-santuario-xmlsec-parent 12 | Quarkus CXF - Santuario XML Security - Parent 13 | pom 14 | 15 | 16 | deployment 17 | runtime 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /extensions/santuario-xmlsec/runtime/src/main/resources/META-INF/quarkus-extension.yaml: -------------------------------------------------------------------------------- 1 | artifact: ${project.groupId}:${project.artifactId}:${project.version} 2 | name: Santuario XML Security 3 | description: "Native support for Apache Santuario XML Security" 4 | metadata: 5 | keywords: 6 | - santuario 7 | - security 8 | - xml 9 | - xmlsec 10 | # guide: ... 11 | categories: 12 | - "miscellaneous" 13 | status: "stable" 14 | -------------------------------------------------------------------------------- /extensions/services-sts/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | io.quarkiverse.cxf 6 | quarkus-cxf-extensions 7 | 3.23.2-SNAPSHOT 8 | ../pom.xml 9 | 10 | 11 | quarkus-cxf-services-sts-parent 12 | Quarkus CXF - Security Token Service (STS) - Parent 13 | pom 14 | 15 | 16 | deployment 17 | runtime 18 | 19 | 20 | -------------------------------------------------------------------------------- /extensions/services-sts/runtime/src/main/doc/intro.adoc: -------------------------------------------------------------------------------- 1 | Issue, renew and validate security tokens in context of https://cxf.apache.org/docs/ws-trust.html[WS-Trust]. -------------------------------------------------------------------------------- /extensions/services-sts/runtime/src/main/doc/standards.adoc: -------------------------------------------------------------------------------- 1 | * https://cxf.apache.org/docs/ws-trust.html[WS-Trust] 2 | -------------------------------------------------------------------------------- /extensions/services-sts/runtime/src/main/java/org/apache/cxf/jaxrs/ext/MessageContext.java: -------------------------------------------------------------------------------- 1 | package org.apache.cxf.jaxrs.ext; 2 | 3 | /** 4 | * A stub to make GraalVm compiler happy 5 | */ 6 | public class MessageContext { 7 | } 8 | -------------------------------------------------------------------------------- /extensions/services-sts/runtime/src/main/resources/META-INF/quarkus-extension.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | artifact: ${project.groupId}:${project.artifactId}:${project.version} 3 | name: "Quarkus CXF STS" 4 | description: "The CXF Security Token Service (STS) implementation" 5 | metadata: 6 | keywords: 7 | - "cxf" 8 | - "jaxws" 9 | - "jax-ws" 10 | - "services" 11 | - "soap" 12 | - "ws" 13 | - "sts" 14 | - "trust" 15 | - "ws-trust" 16 | categories: 17 | - "integration" 18 | guide: "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/dev/reference/extensions/quarkus-cxf-services-sts.html" 19 | status: "stable" 20 | -------------------------------------------------------------------------------- /extensions/woodstox/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | io.quarkiverse.cxf 6 | quarkus-cxf-extensions 7 | 3.23.2-SNAPSHOT 8 | ../pom.xml 9 | 10 | 11 | quarkus-cxf-woodstox-parent 12 | Quarkus CXF - Woodstox - Parent 13 | pom 14 | 15 | 16 | deployment 17 | runtime 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /extensions/woodstox/runtime/src/main/resources/META-INF/quarkus-extension.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | artifact: ${project.groupId}:${project.artifactId}:${project.version} 3 | name: "Quarkus CXF Woodstox" 4 | description: "Native support for Woodstox StAX and SAX parsers" 5 | metadata: 6 | unlisted: true 7 | keywords: 8 | - "xml" 9 | categories: 10 | - "xml" 11 | guide: "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/dev/index.html" 12 | status: "stable" 13 | -------------------------------------------------------------------------------- /extensions/ws-rm/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | io.quarkiverse.cxf 6 | quarkus-cxf-extensions 7 | 3.23.2-SNAPSHOT 8 | ../pom.xml 9 | 10 | 11 | quarkus-cxf-rt-ws-rm-parent 12 | Quarkus CXF - WS-ReliableMessaging - Parent 13 | pom 14 | 15 | 16 | deployment 17 | runtime 18 | 19 | 20 | -------------------------------------------------------------------------------- /extensions/ws-rm/runtime/src/main/doc/intro.adoc: -------------------------------------------------------------------------------- 1 | WS-ReliableMessaging (WS-RM) is a protocol ensuring a reliable delivery of messages in a distributed environment even in presence of software, system, or network failures. 2 | 3 | This extension provides CXF framework's https://cxf.apache.org/docs/ws-reliablemessaging.html[WS-ReliableMessaging] implementation. 4 | 5 | -------------------------------------------------------------------------------- /extensions/ws-rm/runtime/src/main/doc/standards.adoc: -------------------------------------------------------------------------------- 1 | * https://cxf.apache.org/docs/ws-reliablemessaging.html[WS-ReliableMessaging] 2 | -------------------------------------------------------------------------------- /extensions/ws-rm/runtime/src/main/resources/META-INF/quarkus-extension.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | artifact: ${project.groupId}:${project.artifactId}:${project.version} 3 | name: "Quarkus CXF WS-ReliableMessaging" 4 | description: "Consume and produce web services with Web Services Reliable Messaging (WS-ReliableMessaging, WSRM)" 5 | metadata: 6 | keywords: 7 | - "cxf" 8 | - "jaxws" 9 | - "jax-ws" 10 | - "services" 11 | - "soap" 12 | - "ws" 13 | - "wsrm" 14 | - "reliable" 15 | - "messaging" 16 | - "ws-reliablemessaging" 17 | categories: 18 | - "integration" 19 | guide: "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/dev/reference/extensions/quarkus-cxf-rt-ws-rm.html" 20 | status: "stable" 21 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/io/quarkiverse/cxf/ws/security/bc/stub/BcStub.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.ws.security.bc.stub; 2 | 3 | /** 4 | * A marker class to be able to keep this stub artifact apart from the real org.bouncycastle:bcprov-jdk18on 5 | */ 6 | public class BcStub { 7 | } 8 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/ASN1Encodable.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1; 2 | 3 | public interface ASN1Encodable { 4 | ASN1Primitive toASN1Primitive(); 5 | } 6 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/ASN1InputStream.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1; 2 | 3 | import java.io.IOException; 4 | 5 | public class ASN1InputStream extends java.io.FilterInputStream { 6 | public ASN1InputStream(byte[] input) { 7 | super(null); 8 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 9 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 10 | } 11 | 12 | public ASN1Primitive readObject() throws IOException { 13 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 14 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/ASN1Object.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1; 2 | 3 | import org.bouncycastle.util.Encodable; 4 | 5 | public abstract class ASN1Object 6 | implements ASN1Encodable, Encodable { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/ASN1ObjectIdentifier.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1; 2 | 3 | public class ASN1ObjectIdentifier extends ASN1Primitive { 4 | public String getId() { 5 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 6 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 7 | 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/ASN1OctetString.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1; 2 | 3 | public class ASN1OctetString extends ASN1Primitive { 4 | public byte[] getOctets() { 5 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 6 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 7 | 8 | } 9 | 10 | public static ASN1OctetString getInstance(Object obj) { 11 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 12 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/ASN1Primitive.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1; 2 | 3 | import java.io.IOException; 4 | 5 | public class ASN1Primitive { 6 | public static ASN1Primitive fromByteArray(byte[] data) throws IOException { 7 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 8 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/ASN1Set.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1; 2 | 3 | public abstract class ASN1Set 4 | extends ASN1Primitive 5 | implements org.bouncycastle.util.Iterable { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/ASN1TaggedObject.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1; 2 | 3 | public class ASN1TaggedObject extends ASN1Primitive { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/DEROctetString.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1; 2 | 3 | public class DEROctetString extends ASN1OctetString { 4 | 5 | @Override 6 | public byte[] getOctets() { 7 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 8 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 9 | 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/pkcs/Attribute.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1.pkcs; 2 | 3 | import org.bouncycastle.asn1.ASN1Object; 4 | import org.bouncycastle.asn1.ASN1Primitive; 5 | 6 | public class Attribute 7 | extends ASN1Object { 8 | 9 | @Override 10 | public ASN1Primitive toASN1Primitive() { 11 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 12 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/pkcs/CertificationRequest.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1.pkcs; 2 | 3 | import org.bouncycastle.asn1.ASN1Object; 4 | import org.bouncycastle.asn1.ASN1Primitive; 5 | 6 | public class CertificationRequest 7 | extends ASN1Object { 8 | 9 | @Override 10 | public ASN1Primitive toASN1Primitive() { 11 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 12 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/pkcs/PKCSObjectIdentifiers.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1.pkcs; 2 | 3 | public interface PKCSObjectIdentifiers { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/x500/AttributeTypeAndValue.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1.x500; 2 | 3 | import org.bouncycastle.asn1.ASN1Encodable; 4 | import org.bouncycastle.asn1.ASN1ObjectIdentifier; 5 | 6 | public class AttributeTypeAndValue { 7 | public ASN1Encodable getValue() { 8 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 9 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 10 | 11 | } 12 | 13 | public ASN1ObjectIdentifier getType() { 14 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 15 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/x500/RDN.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1.x500; 2 | 3 | public class RDN { 4 | public AttributeTypeAndValue[] getTypesAndValues() { 5 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 6 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 7 | 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/x500/X500NameStyle.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1.x500; 2 | 3 | public interface X500NameStyle { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/x500/style/AbstractX500NameStyle.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1.x500.style; 2 | 3 | import org.bouncycastle.asn1.x500.X500NameStyle; 4 | 5 | public abstract class AbstractX500NameStyle 6 | implements X500NameStyle { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/x500/style/RFC4519Style.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1.x500.style; 2 | 3 | public class RFC4519Style 4 | extends AbstractX500NameStyle { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/x509/AlgorithmIdentifier.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1.x509; 2 | 3 | import org.bouncycastle.asn1.ASN1Encodable; 4 | 5 | public class AlgorithmIdentifier { 6 | public ASN1Encodable getParameters() { 7 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 8 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/x509/BasicConstraints.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1.x509; 2 | 3 | import org.bouncycastle.asn1.ASN1Object; 4 | import org.bouncycastle.asn1.ASN1Primitive; 5 | 6 | public class BasicConstraints extends ASN1Object { 7 | 8 | @Override 9 | public ASN1Primitive toASN1Primitive() { 10 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 11 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/x509/Extension.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1.x509; 2 | 3 | import org.bouncycastle.asn1.ASN1Object; 4 | import org.bouncycastle.asn1.ASN1Primitive; 5 | 6 | public class Extension extends ASN1Object { 7 | 8 | @Override 9 | public ASN1Primitive toASN1Primitive() { 10 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 11 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/x509/GeneralName.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1.x509; 2 | 3 | import org.bouncycastle.asn1.ASN1Encodable; 4 | 5 | public class GeneralName { 6 | public int getTagNo() { 7 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 8 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 9 | } 10 | 11 | public ASN1Encodable getName() { 12 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 13 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/x509/GeneralNames.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1.x509; 2 | 3 | public class GeneralNames { 4 | public GeneralName[] getNames() { 5 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 6 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 7 | } 8 | 9 | public static GeneralNames getInstance(Object obj) { 10 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 11 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/x509/KeyPurposeId.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1.x509; 2 | 3 | import org.bouncycastle.asn1.ASN1Object; 4 | import org.bouncycastle.asn1.ASN1Primitive; 5 | 6 | public class KeyPurposeId 7 | extends ASN1Object { 8 | 9 | @Override 10 | public ASN1Primitive toASN1Primitive() { 11 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 12 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/x509/KeyUsage.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1.x509; 2 | 3 | import org.bouncycastle.asn1.ASN1Object; 4 | import org.bouncycastle.asn1.ASN1Primitive; 5 | 6 | public class KeyUsage extends ASN1Object { 7 | 8 | @Override 9 | public ASN1Primitive toASN1Primitive() { 10 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 11 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/x509/PolicyInformation.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1.x509; 2 | 3 | import org.bouncycastle.asn1.ASN1Object; 4 | import org.bouncycastle.asn1.ASN1Primitive; 5 | 6 | public class PolicyInformation extends ASN1Object { 7 | 8 | @Override 9 | public ASN1Primitive toASN1Primitive() { 10 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 11 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.asn1.x509; 2 | 3 | public class SubjectPublicKeyInfo { 4 | public static SubjectPublicKeyInfo getInstance(Object obj) { 5 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 6 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 7 | 8 | } 9 | 10 | public AlgorithmIdentifier getAlgorithm() { 11 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 12 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 13 | 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/cert/CertIOException.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.cert; 2 | 3 | import java.io.IOException; 4 | 5 | public class CertIOException extends IOException { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/cert/X509v3CertificateBuilder.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.cert; 2 | 3 | public class X509v3CertificateBuilder { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/cert/jcajce/JcaX509CertificateConverter.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.cert.jcajce; 2 | 3 | public class JcaX509CertificateConverter { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/cert/jcajce/JcaX509ExtensionUtils.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.cert.jcajce; 2 | 3 | import java.io.IOException; 4 | 5 | import org.bouncycastle.asn1.ASN1Primitive; 6 | 7 | public class JcaX509ExtensionUtils { 8 | public static ASN1Primitive parseExtensionValue(byte[] encExtValue) 9 | throws IOException { 10 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 11 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/cert/jcajce/JcaX509v3CertificateBuilder.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.cert.jcajce; 2 | 3 | import java.math.BigInteger; 4 | import java.util.Date; 5 | 6 | import org.bouncycastle.asn1.x500.X500Name; 7 | import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo; 8 | 9 | public class JcaX509v3CertificateBuilder { 10 | public JcaX509v3CertificateBuilder(X500Name issuer, BigInteger serial, Date notBefore, Date notAfter, X500Name subject, 11 | SubjectPublicKeyInfo publicKey) { 12 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 13 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/jce/provider/BouncyCastleProvider.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.jce.provider; 2 | 3 | import java.security.Provider; 4 | 5 | public class BouncyCastleProvider extends Provider { 6 | public BouncyCastleProvider(String name, String versionStr, String info) { 7 | super(name, versionStr, info); 8 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 9 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/operator/ContentSigner.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.operator; 2 | 3 | public interface ContentSigner { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/operator/OperatorCreationException.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.operator; 2 | 3 | public class OperatorCreationException extends OperatorException { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/operator/OperatorException.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.operator; 2 | 3 | public class OperatorException extends Exception { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/operator/jcajce/JcaContentSignerBuilder.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.operator.jcajce; 2 | 3 | public class JcaContentSignerBuilder { 4 | 5 | public JcaContentSignerBuilder(String signatureAlgorithm) { 6 | throw new UnsupportedOperationException("Exclude io.quarkiverse.cxf:quarkus-cxf-bc-stub from" 7 | + " io.quarkiverse.cxf:quarkus-cxf-rt-ws-security dependencies and add Bouncy Castle instead"); 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/pkcs/PKCS10CertificationRequest.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.pkcs; 2 | 3 | public class PKCS10CertificationRequest { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/pkcs/PKCS10CertificationRequestBuilder.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.pkcs; 2 | 3 | public class PKCS10CertificationRequestBuilder { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/util/Encodable.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.util; 2 | 3 | public interface Encodable { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /extensions/ws-security/bc-stub/src/main/java/org/bouncycastle/util/Iterable.java: -------------------------------------------------------------------------------- 1 | package org.bouncycastle.util; 2 | 3 | public interface Iterable 4 | extends java.lang.Iterable { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /extensions/ws-security/deployment/src/main/java/io/quarkiverse/cxf/ws/security/deployment/JodaTimeProcessor.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.ws.security.deployment; 2 | 3 | import io.quarkus.deployment.annotations.BuildStep; 4 | import io.quarkus.deployment.builditem.nativeimage.NativeImageResourcePatternsBuildItem; 5 | 6 | /** 7 | * {@link BuildStep}s related to {@code joda-time:joda-time}. 8 | */ 9 | public class JodaTimeProcessor { 10 | 11 | @BuildStep 12 | NativeImageResourcePatternsBuildItem nativeImageResource() { 13 | return NativeImageResourcePatternsBuildItem.builder() 14 | .includeGlob("org/joda/time/tz/data/**") 15 | .build(); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /extensions/ws-security/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | io.quarkiverse.cxf 6 | quarkus-cxf-extensions 7 | 3.23.2-SNAPSHOT 8 | ../pom.xml 9 | 10 | 11 | quarkus-cxf-rt-ws-security-parent 12 | Quarkus CXF - WS-Security - Parent 13 | pom 14 | 15 | 16 | deployment 17 | runtime 18 | bc-stub 19 | 20 | 21 | -------------------------------------------------------------------------------- /extensions/ws-security/runtime/src/main/doc/intro.adoc: -------------------------------------------------------------------------------- 1 | Provides CXF framework's https://cxf.apache.org/docs/ws-security.html[WS-Security] implementation allowing you to: 2 | 3 | * Pass authentication tokens between services 4 | * Encrypt messages or parts of messages 5 | * Sign messages 6 | * Timestamp messages 7 | -------------------------------------------------------------------------------- /extensions/ws-security/runtime/src/main/doc/standards.adoc: -------------------------------------------------------------------------------- 1 | * https://cxf.apache.org/docs/ws-security.html[WS-Security] 2 | * https://cxf.apache.org/docs/ws-securitypolicy.html[WS-SecurityPolicy] 3 | -------------------------------------------------------------------------------- /extensions/ws-security/runtime/src/main/resources/META-INF/quarkus-extension.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | artifact: ${project.groupId}:${project.artifactId}:${project.version} 3 | name: "Quarkus CXF WS-Security" 4 | description: "Consume and produce web services with Web Services Security (WS-Security, WSS)" 5 | metadata: 6 | keywords: 7 | - "cxf" 8 | - "jaxws" 9 | - "jax-ws" 10 | - "services" 11 | - "soap" 12 | - "ws" 13 | - "wss" 14 | - "ws-security" 15 | categories: 16 | - "integration" 17 | guide: "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/dev/reference/extensions/quarkus-cxf-rt-ws-security.html" 18 | status: "stable" 19 | -------------------------------------------------------------------------------- /extensions/xjc-plugins/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | io.quarkiverse.cxf 6 | quarkus-cxf-extensions 7 | 3.23.2-SNAPSHOT 8 | ../pom.xml 9 | 10 | 11 | quarkus-cxf-xjc-plugins-parent 12 | Quarkus CXF - XJC Plugins - Parent 13 | pom 14 | 15 | 16 | deployment 17 | runtime 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /extensions/xjc-plugins/runtime/src/main/doc/intro.adoc: -------------------------------------------------------------------------------- 1 | CXF XJC plugins for xref:user-guide/contract-first-code-first/generate-java-from-wsdl.adoc[wsdl2java] code generation. -------------------------------------------------------------------------------- /extensions/xjc-plugins/runtime/src/main/resources/META-INF/quarkus-extension.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | artifact: ${project.groupId}:${project.artifactId}:${project.version} 3 | name: "CXF XJC Plugins" 4 | description: "CXF XJC plugins for wsdl2java code generation" 5 | metadata: 6 | keywords: 7 | - "soap" 8 | - "xml" 9 | - "xjc" 10 | categories: 11 | - "xml" 12 | guide: "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/dev/reference/extensions/quarkus-cxf-xjc-plugins.html" 13 | status: "stable" 14 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/main/java/io/quarkiverse/cxf/deployment/test/package-info.java: -------------------------------------------------------------------------------- 1 | @jakarta.xml.bind.annotation.XmlSchema(namespace = "http://test.deployment.cxf.quarkiverse.io/") 2 | package io.quarkiverse.cxf.deployment.test; 3 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/main/java/io/quarkiverse/cxf/it/HelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | @WebService(serviceName = "HelloService", targetNamespace = HelloService.NS) 7 | public interface HelloService { 8 | public static final String NS = "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/test"; 9 | 10 | @WebMethod(operationName = "hello", action = "helloAction") 11 | public String hello(String person); 12 | } 13 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/main/java/io/quarkiverse/cxf/it/annotation/cxfendpoint/HelloBean.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.annotation.cxfendpoint; 2 | 3 | import jakarta.enterprise.context.ApplicationScoped; 4 | 5 | @ApplicationScoped 6 | public class HelloBean { 7 | public String hello(String person) { 8 | return "Hello " + person + " from HelloBean!"; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/main/java/io/quarkiverse/cxf/it/annotation/cxfendpoint/PathAnnotationHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.annotation.cxfendpoint; 2 | 3 | import jakarta.jws.WebService; 4 | 5 | import io.quarkiverse.cxf.annotation.CXFEndpoint; 6 | import io.quarkiverse.cxf.it.HelloService; 7 | 8 | @CXFEndpoint("/path-annotation") // <1> 9 | @WebService(serviceName = "HelloService", targetNamespace = HelloService.NS) 10 | public class PathAnnotationHelloServiceImpl implements HelloService { 11 | @Override 12 | public String hello(String person) { 13 | return "Hello " + person + " from PathAnnotationHelloServiceImpl!"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/main/java/io/quarkiverse/cxf/it/annotation/cxfendpoint/PathAnnotationHelloServiceWithBean.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.annotation.cxfendpoint; 2 | 3 | import jakarta.inject.Inject; 4 | import jakarta.jws.WebService; 5 | 6 | import io.quarkiverse.cxf.annotation.CXFEndpoint; 7 | import io.quarkiverse.cxf.it.HelloService; 8 | 9 | @CXFEndpoint("/path-annotation-with-bean") 10 | @WebService(serviceName = "HelloService", targetNamespace = HelloService.NS) 11 | public class PathAnnotationHelloServiceWithBean implements HelloService { 12 | 13 | @Inject 14 | HelloBean helloBean; 15 | 16 | @Override 17 | public String hello(String person) { 18 | return helloBean.hello(person); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/main/java/io/quarkiverse/cxf/it/auth/basic/BasicAuthHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.auth.basic; 2 | 3 | import jakarta.annotation.security.RolesAllowed; 4 | import jakarta.jws.WebService; 5 | 6 | import io.quarkiverse.cxf.it.HelloService; 7 | 8 | @WebService(serviceName = "HelloService", targetNamespace = HelloService.NS) 9 | @RolesAllowed("app-user") 10 | public class BasicAuthHelloServiceImpl implements HelloService { 11 | @Override 12 | public String hello(String person) { 13 | return "Hello " + person + "!"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/main/java/io/quarkiverse/cxf/it/large/slow/generated/package-info.java: -------------------------------------------------------------------------------- 1 | @jakarta.xml.bind.annotation.XmlSchema(namespace = "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/test") 2 | package io.quarkiverse.cxf.it.large.slow.generated; 3 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/main/java/io/quarkiverse/cxf/it/redirect/retransmitcache/package-info.java: -------------------------------------------------------------------------------- 1 | @jakarta.xml.bind.annotation.XmlSchema(namespace = "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/test") 2 | package io.quarkiverse.cxf.it.redirect.retransmitcache; 3 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/main/java/io/quarkiverse/cxf/it/server/xml/schema/validation/ApplicationPropertiesSchemaValidatedCalculatorServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server.xml.schema.validation; 2 | 3 | import jakarta.jws.WebService; 4 | 5 | import io.quarkiverse.cxf.it.server.xml.schema.validation.model.CalculatorService; 6 | 7 | @WebService(serviceName = "CalculatorService", targetNamespace = "http://www.jboss.org/eap/quickstarts/wscalculator/Calculator", wsdlLocation = "wsdl/calculator.wsdl") 8 | public class ApplicationPropertiesSchemaValidatedCalculatorServiceImpl implements CalculatorService { 9 | 10 | @Override 11 | public int addCheckResult(int a, int b) { 12 | return a + b; 13 | } 14 | 15 | @Override 16 | public int addCheckParameters(int a, int b) { 17 | return a + b; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/main/java/io/quarkiverse/cxf/it/soap12/Soap12HelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.soap12; 2 | 3 | import jakarta.annotation.Resource; 4 | import jakarta.jws.WebService; 5 | import jakarta.servlet.http.HttpServletRequest; 6 | import jakarta.xml.ws.WebServiceContext; 7 | import jakarta.xml.ws.handler.MessageContext; 8 | 9 | import io.quarkiverse.cxf.it.HelloService; 10 | 11 | @WebService(serviceName = "HelloService", targetNamespace = HelloService.NS) 12 | public class Soap12HelloServiceImpl implements HelloService { 13 | 14 | @Resource 15 | WebServiceContext wsContext; 16 | 17 | @Override 18 | public String hello(String person) { 19 | final HttpServletRequest req = (HttpServletRequest) wsContext.getMessageContext().get(MessageContext.SERVLET_REQUEST); 20 | return "Hello " + person + ", Content-Type: " + req.getHeader("Content-Type"); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/main/java/io/quarkiverse/cxf/it/ws/addressing/server/anonymous/AddressingAnonymousImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.addressing.server.anonymous; 2 | 3 | import jakarta.jws.WebParam; 4 | import jakarta.jws.WebService; 5 | import jakarta.xml.ws.BindingType; 6 | import jakarta.xml.ws.soap.Addressing; 7 | import jakarta.xml.ws.soap.SOAPBinding; 8 | 9 | @WebService(serviceName = "AddressingAnonymousImpl") 10 | @BindingType(SOAPBinding.SOAP12HTTP_BINDING) 11 | @Addressing(required = true) 12 | public class AddressingAnonymousImpl { 13 | 14 | public String reply(@WebParam(name = "text") String text) { 15 | return "Hello " + text; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/main/java/io/quarkiverse/cxf/it/ws/addressing/server/decoupled/WsAddressingImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.addressing.server.decoupled; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | @WebService(name = "WsAddressingService", serviceName = "WsAddressingService", endpointInterface = "io.quarkiverse.cxf.it.ws.addressing.server.decoupled.WsAddressingService") 7 | public class WsAddressingImpl implements WsAddressingService { 8 | 9 | @WebMethod 10 | @Override 11 | public String echo(String message) { 12 | return message + " from WsAddressingService"; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/main/java/io/quarkiverse/cxf/it/ws/addressing/server/decoupled/WsAddressingService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.addressing.server.decoupled; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | import jakarta.xml.ws.soap.Addressing; 6 | 7 | @WebService 8 | @Addressing(required = true) 9 | public interface WsAddressingService { 10 | 11 | @WebMethod 12 | public String echo(String message); 13 | } 14 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/main/resources/wsdl/LargeSlow-async-binding.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | true 9 | 10 | 11 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/test/java/io/quarkiverse/cxf/it/annotation/cxfendpoint/CXFEndpointAnnotationIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.annotation.cxfendpoint; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class CXFEndpointAnnotationIT extends CXFEndpointAnnotationTest { 7 | 8 | } -------------------------------------------------------------------------------- /integration-tests/client-server/src/test/java/io/quarkiverse/cxf/it/auth/basic/wsdl/BasicAuthIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.auth.basic.wsdl; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class BasicAuthIT extends BasicAuthTest { 7 | 8 | } -------------------------------------------------------------------------------- /integration-tests/client-server/src/test/java/io/quarkiverse/cxf/it/client/tls/JavaNetSslClientIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.client.tls; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | class JavaNetSslClientIT extends JavaNetSslClientTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/test/java/io/quarkiverse/cxf/it/client/tls/JavaNetSslClientTest.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.client.tls; 2 | 3 | import org.hamcrest.Matchers; 4 | import org.junit.jupiter.api.Test; 5 | 6 | import io.quarkus.test.common.QuarkusTestResource; 7 | import io.quarkus.test.junit.QuarkusTest; 8 | import io.restassured.RestAssured; 9 | 10 | @QuarkusTest 11 | @QuarkusTestResource(JavaNetSslClientTestResource.class) 12 | class JavaNetSslClientTest { 13 | @Test 14 | void javaNetSslClient() { 15 | RestAssured 16 | .given() 17 | .body("Jane") 18 | .post("/JavaNetSslClient/sync/javaNetSslClient") 19 | .then() 20 | .statusCode(200) 21 | .body(Matchers.is("Hello Jane, Content-Type: text/xml; charset=UTF-8")); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/test/java/io/quarkiverse/cxf/it/large/slow/LargeSlowIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.large.slow; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | class LargeSlowIT extends LargeSlowTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/test/java/io/quarkiverse/cxf/it/redirect/RedirectIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.redirect; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | class RedirectIT extends RedirectTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/test/java/io/quarkiverse/cxf/it/soap/handler/SOAPHandlerIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.soap.handler; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | class SOAPHandlerIT extends SOAPHandlerTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/test/java/io/quarkiverse/cxf/it/soap12/Soap12IT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.soap12; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | class Soap12IT extends Soap12Test { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/test/java/io/quarkiverse/cxf/it/validation/XmlSchemaValidationIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.validation; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class XmlSchemaValidationIT extends XmlSchemaValidationTest { 7 | 8 | } -------------------------------------------------------------------------------- /integration-tests/client-server/src/test/java/io/quarkiverse/cxf/it/vertx/async/AsyncVertxClientIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.vertx.async; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | class AsyncVertxClientIT extends AsyncVertxClientTest { 7 | } 8 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/test/java/io/quarkiverse/cxf/it/ws/addressing/server/WsAddressingAnonymousIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.addressing.server; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class WsAddressingAnonymousIT extends WsAddressingAnonymousTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /integration-tests/client-server/src/test/java/io/quarkiverse/cxf/it/ws/addressing/server/WsAddressingDecoupledIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.addressing.server; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class WsAddressingDecoupledIT extends WsAddressingDecoupledTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /integration-tests/client/src/main/java/io/quarkiverse/cxf/client/it/CxfClientRestResource.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.client.it; 2 | 3 | import jakarta.ws.rs.GET; 4 | import jakarta.ws.rs.Path; 5 | import jakarta.ws.rs.Produces; 6 | import jakarta.ws.rs.QueryParam; 7 | import jakarta.ws.rs.core.MediaType; 8 | 9 | import org.jboss.eap.quickstarts.wscalculator.calculator.CalculatorService; 10 | 11 | import io.quarkiverse.cxf.annotation.CXFClient; 12 | 13 | @Path("/cxf/calculator-client") 14 | public class CxfClientRestResource { 15 | 16 | @CXFClient("myCalculator") // <1> 17 | CalculatorService myCalculator; 18 | 19 | @GET 20 | @Path("/add") 21 | @Produces(MediaType.TEXT_PLAIN) 22 | public int add(@QueryParam("a") int a, @QueryParam("b") int b) { 23 | return myCalculator.add(a, b); // <2> 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /integration-tests/client/src/main/java/io/quarkiverse/cxf/it/logging/LoggingFeatureProducer.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.logging; 2 | 3 | import jakarta.enterprise.context.ApplicationScoped; 4 | import jakarta.enterprise.inject.Produces; 5 | 6 | import org.apache.cxf.ext.logging.LoggingFeature; 7 | 8 | public class LoggingFeatureProducer { 9 | 10 | @Produces 11 | @ApplicationScoped 12 | LoggingFeature loggingFeature() { 13 | LoggingFeature loggingFeature = new LoggingFeature(); 14 | loggingFeature.setPrettyLogging(true); // <1> 15 | return loggingFeature; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /integration-tests/client/src/test/java/io/quarkiverse/cxf/client/it/CxfClientIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.client.it; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class CxfClientIT extends CxfClientTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /integration-tests/client/src/test/java/io/quarkiverse/cxf/it/logging/CxfLoggingIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.logging; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class CxfLoggingIT extends CxfLoggingTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /integration-tests/fastinfoset/src/main/java/io/quarkiverse/cxf/it/FastInfosetHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | import org.apache.cxf.annotations.FastInfoset; 7 | 8 | @WebService(serviceName = "HelloService", targetNamespace = FastInfosetHelloService.NS) 9 | @FastInfoset(force = true) 10 | public interface FastInfosetHelloService { 11 | public static final String NS = "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/test"; 12 | 13 | @WebMethod 14 | public String hello(String person); 15 | } 16 | -------------------------------------------------------------------------------- /integration-tests/fastinfoset/src/main/java/io/quarkiverse/cxf/it/FastInfosetHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it; 2 | 3 | import jakarta.jws.WebService; 4 | 5 | @WebService(serviceName = "HelloService", targetNamespace = FastInfosetHelloService.NS) 6 | public class FastInfosetHelloServiceImpl implements FastInfosetHelloService { 7 | @Override 8 | public String hello(String person) { 9 | return "Hello " + person + "!"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /integration-tests/fastinfoset/src/main/java/io/quarkiverse/cxf/it/GzipHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | import org.apache.cxf.annotations.GZIP; 7 | 8 | @WebService(serviceName = "HelloService", targetNamespace = GzipHelloService.NS) 9 | @GZIP(force = true, threshold = 0) 10 | public interface GzipHelloService { 11 | public static final String NS = "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/test"; 12 | 13 | @WebMethod 14 | public String hello(String person); 15 | } 16 | -------------------------------------------------------------------------------- /integration-tests/fastinfoset/src/main/java/io/quarkiverse/cxf/it/GzipHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it; 2 | 3 | import jakarta.jws.WebService; 4 | 5 | import org.apache.cxf.annotations.GZIP; 6 | import org.apache.cxf.ext.logging.Logging; 7 | 8 | @WebService(serviceName = "HelloService", targetNamespace = FastInfosetHelloService.NS) 9 | @GZIP(force = true, threshold = 0) 10 | @Logging(logBinary = true) 11 | public class GzipHelloServiceImpl implements GzipHelloService { 12 | @Override 13 | public String hello(String person) { 14 | return "Hello " + person + "!"; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /integration-tests/fastinfoset/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # Global Quarkus CXF configuration 2 | quarkus.cxf.path = /soap 3 | 4 | # @GZIP test 5 | quarkus.cxf.endpoint."/gzip".implementor = io.quarkiverse.cxf.it.GzipHelloServiceImpl 6 | quarkus.cxf.client.gzip.client-endpoint-url = http://localhost:8081/soap/gzip 7 | quarkus.cxf.client.gzip.service-interface = io.quarkiverse.cxf.it.GzipHelloService 8 | 9 | # @FastInfoset test 10 | quarkus.cxf.endpoint."/fastinfoset".implementor = io.quarkiverse.cxf.it.FastInfosetHelloServiceImpl 11 | quarkus.cxf.client.fastinfoset.client-endpoint-url = http://localhost:8081/soap/fastinfoset 12 | quarkus.cxf.client.fastinfoset.service-interface = io.quarkiverse.cxf.it.FastInfosetHelloService 13 | 14 | quarkus.log.min-level = TRACE 15 | quarkus.log.category."io.quarkiverse.cxf.vertx.http.client".level = TRACE 16 | -------------------------------------------------------------------------------- /integration-tests/fastinfoset/src/test/java/io/quarkiverse/cxf/it/fastinfoset/FastInfosetIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.fastinfoset; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class FastInfosetIT extends FastInfosetTest { 7 | 8 | } -------------------------------------------------------------------------------- /integration-tests/metrics/src/main/java/io/quarkiverse/cxf/metrics/client/it/MetricsClientResource.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.metrics.client.it; 2 | 3 | import java.io.IOException; 4 | 5 | import jakarta.inject.Inject; 6 | import jakarta.ws.rs.POST; 7 | import jakarta.ws.rs.Path; 8 | import jakarta.ws.rs.Produces; 9 | import jakarta.ws.rs.core.MediaType; 10 | 11 | import io.quarkiverse.cxf.annotation.CXFClient; 12 | import io.quarkiverse.cxf.metrics.server.it.HelloService; 13 | 14 | @Path("/metrics/client") 15 | public class MetricsClientResource { 16 | 17 | @Inject 18 | @CXFClient("hello") 19 | HelloService helloClient; 20 | 21 | @POST 22 | @Path("/hello") 23 | @Produces(MediaType.TEXT_PLAIN) 24 | public String createEscapeHandler(String body) throws IOException { 25 | return helloClient.hello(body); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /integration-tests/metrics/src/main/java/io/quarkiverse/cxf/metrics/server/it/HelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.metrics.server.it; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebParam; 5 | import jakarta.jws.WebService; 6 | 7 | /** 8 | * The simplest Hello service. 9 | */ 10 | @WebService(name = "HelloService", serviceName = "HelloService") 11 | public interface HelloService { 12 | 13 | @WebMethod 14 | String hello(@WebParam(name = "text") String text); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /integration-tests/metrics/src/main/java/io/quarkiverse/cxf/metrics/server/it/HelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.metrics.server.it; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebParam; 5 | import jakarta.jws.WebService; 6 | 7 | /** 8 | * The simplest Hello service implementation. 9 | */ 10 | @WebService(serviceName = "HelloService") 11 | public class HelloServiceImpl implements HelloService { 12 | 13 | @WebMethod 14 | @Override 15 | public String hello(@WebParam(name = "text") String text) { 16 | try { 17 | /* We have to slow down a bit so that the native test is able to see some elapsedTime */ 18 | Thread.sleep(20); 19 | } catch (InterruptedException e) { 20 | Thread.currentThread().interrupt(); 21 | } 22 | return "Hello " + text + "!"; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /integration-tests/metrics/src/main/resources/wsdl/async-binding.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | true 9 | 10 | 11 | -------------------------------------------------------------------------------- /integration-tests/metrics/src/test/java/io/quarkiverse/cxf/metrics/it/MetricsIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.metrics.it; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class MetricsIT extends MetricsTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /integration-tests/metrics/src/test/java/io/quarkiverse/cxf/metrics/it/async/AsyncClientIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.metrics.it.async; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | class AsyncClientIT extends AsyncClientTest { 7 | } 8 | -------------------------------------------------------------------------------- /integration-tests/mtls/src/main/java/io/quarkiverse/cxf/it/auth/mtls/HelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.auth.mtls; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | /** 7 | * The simplest Hello service. 8 | */ 9 | @WebService(serviceName = "HelloService") 10 | public interface HelloService { 11 | 12 | @WebMethod 13 | String hello(String text); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /integration-tests/mtls/src/main/java/io/quarkiverse/cxf/it/auth/mtls/MTlsHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.auth.mtls; 2 | 3 | import jakarta.jws.WebService; 4 | 5 | @WebService 6 | public class MTlsHelloServiceImpl implements HelloService { 7 | @Override 8 | public String hello(String person) { 9 | return "Hello " + person + " authenticated by mTLS!"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /integration-tests/mtls/src/test/java/io/quarkiverse/cxf/it/auth/mtls/MutualTlsIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.auth.mtls; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class MutualTlsIT extends MutualTlsTest { 7 | } 8 | -------------------------------------------------------------------------------- /integration-tests/mtom-awt/src/main/java/io/quarkiverse/cxf/it/ws/mtom/awt/server/ImageService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.mtom.awt.server; 2 | 3 | import java.awt.Image; 4 | 5 | import jakarta.jws.WebMethod; 6 | import jakarta.jws.WebParam; 7 | import jakarta.jws.WebService; 8 | import jakarta.xml.ws.soap.MTOM; 9 | 10 | @WebService(name = "ImageService", targetNamespace = ImageService.NS) 11 | @MTOM 12 | public interface ImageService { 13 | 14 | public static final String NS = "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/test/mtom-awt"; 15 | 16 | @WebMethod 17 | Image downloadImage( 18 | @WebParam(name = "name", targetNamespace = NS) String name); 19 | 20 | @WebMethod 21 | String uploadImage( 22 | @WebParam(name = "data", targetNamespace = NS) Image data, 23 | @WebParam(name = "name", targetNamespace = NS) String name); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /integration-tests/mtom-awt/src/test/java/io/quarkiverse/cxf/it/ws/mtom/awt/server/MtomAwtIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.mtom.awt.server; 2 | 3 | import org.junit.jupiter.api.condition.DisabledOnOs; 4 | import org.junit.jupiter.api.condition.OS; 5 | 6 | import io.quarkus.test.junit.QuarkusIntegrationTest; 7 | 8 | @QuarkusIntegrationTest 9 | 10 | // Native test fails on Mac OS with: 11 | // java.lang.UnsatisfiedLinkError: no awt in java.library.path 12 | // https://github.com/oracle/graal/issues/4124 13 | @DisabledOnOs({ OS.MAC }) 14 | class MtomAwtIT extends MtomAwtTest { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /integration-tests/mtom-awt/src/test/resources/linux-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quarkiverse/quarkus-cxf/d0cd3b7bfd9c4d3b6f31f3ac68d7dd23f9cc16a0/integration-tests/mtom-awt/src/test/resources/linux-image.png -------------------------------------------------------------------------------- /integration-tests/opentelemetry/src/main/java/io/quarkiverse/cxf/opentelemetry/it/HelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.opentelemetry.it; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebParam; 5 | import jakarta.jws.WebService; 6 | 7 | /** 8 | * The simplest Hello service. 9 | */ 10 | @WebService(name = "HelloService", serviceName = "HelloService") 11 | public interface HelloService { 12 | 13 | @WebMethod 14 | String hello(@WebParam(name = "text") String text); 15 | 16 | @WebMethod 17 | String helloTraced(@WebParam(name = "text") String text); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /integration-tests/opentelemetry/src/main/java/io/quarkiverse/cxf/opentelemetry/it/TracedBean.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.opentelemetry.it; 2 | 3 | import jakarta.enterprise.context.ApplicationScoped; 4 | 5 | import io.opentelemetry.instrumentation.annotations.WithSpan; 6 | 7 | @ApplicationScoped 8 | public class TracedBean { 9 | 10 | @WithSpan("TracedBean.helloTracedSpan") 11 | public String helloTraced(String person) { 12 | try { 13 | /* We have to slow down a bit so that the native test is able to see some elapsedTime */ 14 | Thread.sleep(20); 15 | } catch (InterruptedException e) { 16 | Thread.currentThread().interrupt(); 17 | } 18 | return "Hello traced " + person; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /integration-tests/opentelemetry/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | quarkus.otel.bsp.schedule.delay=100 2 | quarkus.otel.bsp.export.timeout=5s 3 | 4 | quarkus.cxf.path = /soap 5 | quarkus.cxf.endpoint."/hello".implementor = io.quarkiverse.cxf.opentelemetry.it.HelloServiceImpl 6 | 7 | quarkus.cxf.client.hello.client-endpoint-url = http://localhost:${quarkus.http.test-port}/soap/hello 8 | quarkus.cxf.client.hello.service-interface = io.quarkiverse.cxf.opentelemetry.it.HelloService 9 | -------------------------------------------------------------------------------- /integration-tests/opentelemetry/src/test/java/io/quarkiverse/cxf/opentelemetry/it/OpenTelemetryIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.opentelemetry.it; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class OpenTelemetryIT extends OpenTelemetryTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /integration-tests/saaj/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quarkiverse/quarkus-cxf/d0cd3b7bfd9c4d3b6f31f3ac68d7dd23f9cc16a0/integration-tests/saaj/src/main/resources/application.properties -------------------------------------------------------------------------------- /integration-tests/saaj/src/test/java/io/quarkiverse/saaj/it/SaajIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.saaj.it; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class SaajIT extends SaajTest { 7 | } 8 | -------------------------------------------------------------------------------- /integration-tests/saaj/src/test/java/io/quarkiverse/saaj/it/SaajTest.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.saaj.it; 2 | 3 | import static io.quarkiverse.cxf.test.QuarkusCxfClientTestUtil.anyNs; 4 | import static io.restassured.RestAssured.given; 5 | 6 | import org.hamcrest.CoreMatchers; 7 | import org.hamcrest.Matchers; 8 | import org.junit.jupiter.api.Test; 9 | 10 | import io.quarkus.test.junit.QuarkusTest; 11 | 12 | @QuarkusTest 13 | public class SaajTest { 14 | 15 | @Test 16 | public void ping() { 17 | given() 18 | .when() 19 | .post("/saaj/hello/Joe") 20 | .then() 21 | .statusCode(200) 22 | .body( 23 | Matchers.hasXPath( 24 | anyNs("Envelope", "Body", "hello", "person") 25 | + "/text()", 26 | CoreMatchers.is("Joe"))); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /integration-tests/saaj/src/test/resources/plaintext.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | spade 6 | 7 | 8 | shovel 9 | 10 | 11 | 12 | Dig PLC, 1 First Ave, Dublin 1, Ireland 13 | 14 | 15 | 16 | Dig PLC, 1 First Ave, Dublin 1, Ireland 17 | 18 | 19 | Foo B Baz 20 | 1234 567890 12345 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /integration-tests/santuario-xmlsec/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | quarkus.native.resources.includes = localhost-client-keystore.p12,localhost-keystore.p12 -------------------------------------------------------------------------------- /integration-tests/santuario-xmlsec/src/test/java/io/quarkiverse/xmlsec/it/NativeXmlsecResourceIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.xmlsec.it; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class NativeXmlsecResourceIT extends XmlsecResourceTest { 7 | } 8 | -------------------------------------------------------------------------------- /integration-tests/santuario-xmlsec/src/test/resources/plaintext.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | spade 6 | 7 | 8 | shovel 9 | 10 | 11 | 12 | Dig PLC, 1 First Ave, Dublin 1, Ireland 13 | 14 | 15 | 16 | Dig PLC, 1 First Ave, Dublin 1, Ireland 17 | 18 | 19 | Foo B Baz 20 | 1234 567890 12345 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /integration-tests/server/src/main/java/io/quarkiverse/cxf/it/server/FaultyHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | @WebService(name = "FaultyHelloService", serviceName = "FaultyHelloService") 7 | public interface FaultyHelloService { 8 | 9 | @WebMethod 10 | String faultyHello(String text) throws GreetingException; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /integration-tests/server/src/main/java/io/quarkiverse/cxf/it/server/FaultyHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | /** 7 | * A Web service always throwing an exception. 8 | */ 9 | @WebService(serviceName = "FaultyHelloService") 10 | public class FaultyHelloServiceImpl implements FaultyHelloService { 11 | 12 | @WebMethod 13 | @Override 14 | public String faultyHello(String text) throws GreetingException { 15 | throw new GreetingException("foo", "bar"); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /integration-tests/server/src/main/java/io/quarkiverse/cxf/it/server/FruitService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import java.util.Set; 4 | 5 | import jakarta.jws.WebMethod; 6 | import jakarta.jws.WebService; 7 | 8 | @WebService 9 | public interface FruitService { 10 | 11 | @WebMethod 12 | Set list(); 13 | 14 | @WebMethod 15 | Set add(Fruit fruit); 16 | 17 | @WebMethod 18 | Set delete(Fruit fruit); 19 | } -------------------------------------------------------------------------------- /integration-tests/server/src/main/java/io/quarkiverse/cxf/it/server/GreetingException.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import jakarta.xml.ws.WebFault; 4 | 5 | @WebFault(name = "GreetingFault") 6 | public class GreetingException extends Exception { 7 | 8 | private String faultInfo; 9 | 10 | public GreetingException(String message) { 11 | super(message); 12 | } 13 | 14 | public GreetingException(String message, String faultInfo) { 15 | super(message); 16 | this.faultInfo = faultInfo; 17 | } 18 | 19 | public String getFaultInfo() { 20 | return this.faultInfo; 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /integration-tests/server/src/main/java/io/quarkiverse/cxf/it/server/GreetingWebService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebParam; 5 | import jakarta.jws.WebService; 6 | 7 | @WebService 8 | public interface GreetingWebService { 9 | 10 | @WebMethod 11 | String reply(@WebParam(name = "text") String text); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /integration-tests/server/src/main/java/io/quarkiverse/cxf/it/server/GreetingWebServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import jakarta.inject.Inject; 4 | import jakarta.jws.WebParam; 5 | import jakarta.jws.WebService; 6 | import jakarta.xml.ws.BindingType; 7 | import jakarta.xml.ws.soap.SOAPBinding; 8 | 9 | @WebService(endpointInterface = "io.quarkiverse.cxf.it.server.GreetingWebService", serviceName = "GreetingWebService") 10 | @BindingType(SOAPBinding.SOAP12HTTP_BINDING) 11 | public class GreetingWebServiceImpl implements GreetingWebService { 12 | 13 | @Inject 14 | HelloBean helloResource; 15 | 16 | @Override 17 | public String reply(@WebParam(name = "text") String text) { 18 | return helloResource.getHello() + text; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /integration-tests/server/src/main/java/io/quarkiverse/cxf/it/server/GreetingWebServiceWithWebServiceContext.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import jakarta.annotation.Resource; 4 | import jakarta.jws.WebParam; 5 | import jakarta.jws.WebService; 6 | import jakarta.xml.ws.WebServiceContext; 7 | 8 | import io.quarkiverse.cxf.annotation.CXFEndpoint; 9 | 10 | @WebService(serviceName = "GreetingWebService", endpointInterface = "io.quarkiverse.cxf.it.server.GreetingWebService") 11 | @CXFEndpoint("/greeting-with-web-service-context") 12 | public class GreetingWebServiceWithWebServiceContext { 13 | 14 | @Resource 15 | WebServiceContext ctx; 16 | 17 | public String reply(@WebParam(name = "text") String key) { 18 | return String.valueOf(ctx.getMessageContext().get(key)); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /integration-tests/server/src/main/java/io/quarkiverse/cxf/it/server/HelloBean.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import jakarta.inject.Singleton; 4 | 5 | /** 6 | * A simple bean for testing whether injecting into service implementation works. 7 | */ 8 | @Singleton 9 | public class HelloBean { 10 | public String getHello() { 11 | return "Hello "; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /integration-tests/server/src/main/java/io/quarkiverse/cxf/it/server/HelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | /** 7 | * The simplest Hello service. 8 | */ 9 | @WebService(name = "HelloService", serviceName = "HelloService") 10 | public interface HelloService { 11 | 12 | @WebMethod 13 | String hello(String text); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /integration-tests/server/src/main/java/io/quarkiverse/cxf/it/server/HelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | /** 7 | * The simplest Hello service implementation. 8 | */ 9 | @WebService(serviceName = "HelloService") 10 | public class HelloServiceImpl implements HelloService { 11 | 12 | @WebMethod 13 | @Override 14 | public String hello(String text) { 15 | return "Hello " + text + "!"; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /integration-tests/server/src/main/java/io/quarkiverse/cxf/it/server/LargeEntityService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebParam; 5 | import jakarta.jws.WebService; 6 | 7 | @WebService(serviceName = "LargeEntityService", name = "LargeEntityService") 8 | public interface LargeEntityService { 9 | 10 | @WebMethod 11 | int outputBufferSize(); 12 | 13 | @WebMethod 14 | String[] items( 15 | @WebParam(name = "count") int count, 16 | @WebParam(name = "itemLength") int itemLength); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /integration-tests/server/src/main/java/io/quarkiverse/cxf/it/server/Ping.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import jakarta.xml.bind.annotation.XmlElement; 4 | import jakarta.xml.bind.annotation.XmlRootElement; 5 | import jakarta.xml.bind.annotation.XmlType; 6 | 7 | @XmlRootElement(name = "ping", namespace = "http://server.it.cxf.quarkiverse.io/") 8 | @XmlType(name = "ping", namespace = "http://server.it.cxf.quarkiverse.io/") 9 | public class Ping { 10 | private String text; 11 | 12 | public Ping() { 13 | } 14 | 15 | @XmlElement(name = "text", namespace = "") 16 | public String getText() { 17 | return this.text; 18 | } 19 | 20 | public void setText(String var1) { 21 | this.text = var1; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /integration-tests/server/src/main/java/io/quarkiverse/cxf/it/server/SlowHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | import io.quarkiverse.cxf.annotation.CXFEndpoint; 7 | 8 | @WebService(serviceName = "HelloService") 9 | @CXFEndpoint("/SlowHelloServiceImpl") 10 | public class SlowHelloServiceImpl implements HelloService { 11 | 12 | @WebMethod 13 | @Override 14 | public String hello(String text) { 15 | try { 16 | Thread.sleep(1000); 17 | } catch (InterruptedException e) { 18 | Thread.currentThread().interrupt(); 19 | throw new RuntimeException(e); 20 | } 21 | return "Hello Slow " + text + "!"; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /integration-tests/server/src/main/java/io/quarkiverse/cxf/it/server/provider/StreamSourcePayloadProvider.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server.provider; 2 | 3 | import java.io.StringReader; 4 | 5 | import javax.xml.transform.stream.StreamSource; 6 | 7 | import jakarta.xml.ws.*; 8 | 9 | import org.apache.cxf.staxutils.StaxUtils; 10 | 11 | @WebServiceProvider 12 | @ServiceMode(value = Service.Mode.PAYLOAD) 13 | @BindingType(value = "http://cxf.apache.org/bindings/xformat") 14 | public class StreamSourcePayloadProvider implements Provider { 15 | 16 | public StreamSourcePayloadProvider() { 17 | } 18 | 19 | @Override 20 | public StreamSource invoke(StreamSource request) { 21 | String payload = StaxUtils.toString(request); 22 | payload = payload.replace("Hello", "Hello from StreamSourcePayloadProvider"); 23 | return new StreamSource(new StringReader(payload)); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /integration-tests/server/src/main/java/io/quarkiverse/cxf/it/ws/mtom/server/DHRequest.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.mtom.server; 2 | 3 | import jakarta.activation.DataHandler; 4 | import jakarta.xml.bind.annotation.XmlMimeType; 5 | import jakarta.xml.bind.annotation.XmlType; 6 | 7 | @XmlType(name = "dataRequest", namespace = "http://org.jboss.ws/xop/doclit") 8 | public class DHRequest { 9 | private DataHandler dataHandler; 10 | 11 | public DHRequest() { 12 | } 13 | 14 | public DHRequest(DataHandler dataHandler) { 15 | this.dataHandler = dataHandler; 16 | } 17 | 18 | @XmlMimeType("application/octet-stream") 19 | public DataHandler getDataHandler() { 20 | return dataHandler; 21 | } 22 | 23 | public void setDataHandler(DataHandler dataHandler) { 24 | this.dataHandler = dataHandler; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /integration-tests/server/src/main/java/io/quarkiverse/cxf/it/ws/mtom/server/DHResponse.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.mtom.server; 2 | 3 | import jakarta.activation.DataHandler; 4 | import jakarta.xml.bind.annotation.XmlMimeType; 5 | import jakarta.xml.bind.annotation.XmlType; 6 | 7 | @XmlType(name = "dataResponse", namespace = "http://org.jboss.ws/xop/doclit") 8 | public class DHResponse { 9 | 10 | private DataHandler dataHandler; 11 | 12 | public DHResponse() { 13 | } 14 | 15 | public DHResponse(DataHandler dataHandler) { 16 | this.dataHandler = dataHandler; 17 | } 18 | 19 | @XmlMimeType("application/octet-stream") 20 | public DataHandler getDataHandler() { 21 | return dataHandler; 22 | } 23 | 24 | public void setDataHandler(DataHandler dataHandler) { 25 | this.dataHandler = dataHandler; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /integration-tests/server/src/main/java/io/quarkiverse/cxf/it/ws/mtom/server/MtomService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.mtom.server; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | import jakarta.jws.soap.SOAPBinding; 6 | import jakarta.xml.ws.soap.MTOM; 7 | 8 | @WebService(targetNamespace = "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/test/mtom") 9 | @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, parameterStyle = SOAPBinding.ParameterStyle.BARE) 10 | @MTOM 11 | public interface MtomService { 12 | @WebMethod 13 | public DHResponse echoDataHandler(DHRequest request); 14 | } 15 | -------------------------------------------------------------------------------- /integration-tests/server/src/test/java/io/quarkiverse/cxf/it/server/GreetingSOAPHandlerIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class GreetingSOAPHandlerIT extends GreetingSOAPHandlerTest { 7 | } 8 | -------------------------------------------------------------------------------- /integration-tests/server/src/test/java/io/quarkiverse/cxf/it/server/GreetingWebServiceImplIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | class GreetingWebServiceImplIT extends GreetingWebServiceImplTest { 7 | } 8 | -------------------------------------------------------------------------------- /integration-tests/server/src/test/java/io/quarkiverse/cxf/it/server/GreetingWebServiceImplTest.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import org.assertj.core.api.Assertions; 4 | import org.junit.jupiter.api.BeforeAll; 5 | import org.junit.jupiter.api.Test; 6 | 7 | import io.quarkiverse.cxf.test.QuarkusCxfClientTestUtil; 8 | import io.quarkus.test.junit.QuarkusTest; 9 | 10 | @QuarkusTest 11 | public class GreetingWebServiceImplTest extends AbstractGreetingWebServiceTest { 12 | 13 | @BeforeAll 14 | static void setup() { 15 | greetingWS = QuarkusCxfClientTestUtil.getClient(GreetingWebService.class, "/soap/greeting"); 16 | } 17 | 18 | @Test 19 | void endpointUrl() { 20 | Assertions.assertThat(QuarkusCxfClientTestUtil.getEndpointUrl(greetingWS)).endsWith("/soap/greeting"); 21 | } 22 | 23 | @Override 24 | protected String getServiceInterface() { 25 | return "GreetingWebService"; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /integration-tests/server/src/test/java/io/quarkiverse/cxf/it/server/GreetingWebServiceNoIntfIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | class GreetingWebServiceNoIntfIT extends GreetingWebServiceNoIntfTest { 7 | } 8 | -------------------------------------------------------------------------------- /integration-tests/server/src/test/java/io/quarkiverse/cxf/it/server/GreetingWebServiceWithWebServiceContextTest.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import org.assertj.core.api.Assertions; 4 | import org.junit.jupiter.api.Test; 5 | 6 | import io.quarkiverse.cxf.test.QuarkusCxfClientTestUtil; 7 | import io.quarkus.test.junit.QuarkusTest; 8 | 9 | @QuarkusTest 10 | public class GreetingWebServiceWithWebServiceContextTest { 11 | @Test 12 | void context() { 13 | GreetingWebService client = QuarkusCxfClientTestUtil.getClient(GreetingWebService.class, 14 | "/soap/greeting-with-web-service-context"); 15 | Assertions.assertThat(client.reply("org.apache.cxf.message.Message.BASE_PATH")) 16 | .isEqualTo("//soap/greeting-with-web-service-context"); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /integration-tests/server/src/test/java/io/quarkiverse/cxf/it/server/HelloServiceIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class HelloServiceIT extends HelloServiceTest { 7 | } 8 | -------------------------------------------------------------------------------- /integration-tests/server/src/test/java/io/quarkiverse/cxf/it/server/HelloServiceTest.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import org.junit.jupiter.api.Assertions; 4 | import org.junit.jupiter.api.Test; 5 | 6 | import io.quarkiverse.cxf.test.QuarkusCxfClientTestUtil; 7 | import io.quarkus.test.junit.QuarkusTest; 8 | 9 | @QuarkusTest 10 | public class HelloServiceTest { 11 | 12 | @Test 13 | public void hello() { 14 | final HelloService client = QuarkusCxfClientTestUtil.getClient(HelloService.class, "/soap/hello"); 15 | Assertions.assertEquals("Hello World!", client.hello("World")); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /integration-tests/server/src/test/java/io/quarkiverse/cxf/it/server/Java2wsIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class Java2wsIT extends Java2wsTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /integration-tests/server/src/test/java/io/quarkiverse/cxf/it/server/ServerIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class ServerIT extends ServerTest { 7 | } 8 | -------------------------------------------------------------------------------- /integration-tests/server/src/test/java/io/quarkiverse/cxf/it/server/XForwardedHeadersIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class XForwardedHeadersIT extends XForwardedHeadersTest { 7 | 8 | } -------------------------------------------------------------------------------- /integration-tests/server/src/test/java/io/quarkiverse/cxf/it/server/XForwardedProfile.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.server; 2 | 3 | import java.util.Collections; 4 | import java.util.List; 5 | import java.util.Map; 6 | 7 | import io.quarkus.test.junit.QuarkusTestProfile; 8 | 9 | public class XForwardedProfile implements QuarkusTestProfile { 10 | 11 | @Override 12 | public Map getConfigOverrides() { 13 | return Map.of( 14 | "quarkus.http.proxy.enable-forwarded-host", "true", 15 | "quarkus.http.proxy.enable-forwarded-prefix", "true", 16 | "quarkus.http.proxy.proxy-address-forwarding", "true"); 17 | } 18 | 19 | @Override 20 | public List testResources() { 21 | return Collections.emptyList(); 22 | } 23 | 24 | @Override 25 | public boolean disableGlobalTestResources() { 26 | return true; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /integration-tests/server/src/test/java/io/quarkiverse/cxf/it/ws/mtom/server/MtomIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.mtom.server; 2 | 3 | import org.apache.cxf.BusFactory; 4 | import org.apache.cxf.transport.http.HTTPConduitFactory; 5 | 6 | import io.quarkiverse.cxf.URLConnectionHTTPConduitFactory; 7 | import io.quarkus.test.junit.QuarkusIntegrationTest; 8 | 9 | @QuarkusIntegrationTest 10 | public class MtomIT extends MtomTest { 11 | 12 | public MtomIT() { 13 | /* 14 | * quarkus.cxf.http-conduit-factory = URLConnectionHTTPConduitFactory is not effective for the JVM 15 | * running the native tests. Thus we have to set the ConduitFactory manually. 16 | */ 17 | BusFactory.getDefaultBus().setExtension(new URLConnectionHTTPConduitFactory(), HTTPConduitFactory.class); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /integration-tests/ws-rm-client/src/main/java/io/quarkiverse/cxf/it/ws/rm/client/ClientBeanProducers.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.rm.client; 2 | 3 | import jakarta.enterprise.context.ApplicationScoped; 4 | import jakarta.enterprise.inject.Produces; 5 | import jakarta.inject.Named; 6 | 7 | public class ClientBeanProducers { 8 | 9 | @Produces 10 | @ApplicationScoped 11 | @Named 12 | MessageLossSimulator messageLossSimulator() { 13 | return new MessageLossSimulator(); 14 | } 15 | 16 | @Produces 17 | @ApplicationScoped 18 | @Named 19 | InMessageRecorder inMessageRecorder() { 20 | return new InMessageRecorder(); 21 | } 22 | 23 | @Produces 24 | @ApplicationScoped 25 | @Named 26 | OutMessageRecorder outMessageRecorder() { 27 | return new OutMessageRecorder(); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /integration-tests/ws-rm-client/src/main/java/io/quarkiverse/cxf/it/ws/rm/server/WsrmHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.rm.server; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | import jakarta.xml.ws.soap.Addressing; 6 | 7 | @WebService(name = "WsrmHelloService", serviceName = "WsrmHelloService", targetNamespace = "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/test/ws-rm") 8 | @Addressing(required = true) 9 | public interface WsrmHelloService { 10 | @WebMethod 11 | String hello(String name); 12 | } 13 | -------------------------------------------------------------------------------- /integration-tests/ws-rm-client/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # Global settings 2 | quarkus.cxf.decoupled-endpoint-base = http://localhost:${quarkus.http.test-port}${quarkus.cxf.path} 3 | 4 | # Global WS-RM settings 5 | quarkus.cxf.rm.namespace = http://docs.oasis-open.org/ws-rx/wsrm/200702 6 | quarkus.cxf.rm.retransmission-interval = 1000 7 | quarkus.cxf.rm.acknowledgement-interval = 500 8 | 9 | quarkus.cxf.client.wsrm.wsdl = http://localhost:8080/services/wsrm?wsdl 10 | quarkus.cxf.client.wsrm.client-endpoint-url = http://localhost:8080/services/wsrm 11 | quarkus.cxf.client.wsrm.service-interface = io.quarkiverse.cxf.it.ws.rm.server.WsrmHelloService 12 | quarkus.cxf.client.wsrm.out-interceptors = #messageLossSimulator 13 | quarkus.cxf.client.wsrm.in-interceptors = #inMessageRecorder 14 | quarkus.cxf.client.wsrm.connection = keep-alive 15 | quarkus.cxf.client.wsrm.decoupled-endpoint = /wsrm/decoupled-endpoint 16 | -------------------------------------------------------------------------------- /integration-tests/ws-rm-client/src/test/java/io/quarkiverse/cxf/it/ws/rm/client/WsReliableMessagingIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.rm.client; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class WsReliableMessagingIT extends WsReliableMessagingTest { 7 | 8 | @Override 9 | protected boolean isNative() { 10 | return true; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/AbstractHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | public interface AbstractHelloService { 4 | String hello(String text); 5 | } 6 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/CustomEncryptSignPolicyHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | import org.apache.cxf.annotations.Policy; 7 | 8 | /** 9 | * A service with a WS-SecurityPolicy attached, security policy is customAlgorithmSuite with default values 10 | */ 11 | @WebService(serviceName = "CustomEncryptSignPolicyHelloService") 12 | @Policy(placement = Policy.Placement.BINDING, uri = "custom-encrypt-sign-policy.xml") 13 | public interface CustomEncryptSignPolicyHelloService extends AbstractHelloService { 14 | @WebMethod 15 | @Override 16 | String hello(String text); 17 | } 18 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/CustomEncryptSignPolicyHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | /** 7 | * A service implementation with an encryption policy set 8 | */ 9 | @WebService 10 | public class CustomEncryptSignPolicyHelloServiceImpl implements CustomEncryptSignPolicyHelloService { 11 | 12 | @WebMethod 13 | @Override 14 | public String hello(String text) { 15 | return "Hello " + text + " from CustomEncryptSign!"; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/CustomEncryptSignWrong1PolicyHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | import org.apache.cxf.annotations.Policy; 7 | 8 | /** 9 | * A service with a WS-SecurityPolicy attached, security policy is customAlgorithmSuite with default values 10 | */ 11 | @WebService(serviceName = "CustomEncryptSignWrong1PolicyHelloService") 12 | @Policy(placement = Policy.Placement.BINDING, uri = "custom-encrypt-sign-wrong1-policy.xml") 13 | public interface CustomEncryptSignWrong1PolicyHelloService extends AbstractHelloService { 14 | @WebMethod 15 | @Override 16 | String hello(String text); 17 | } 18 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/CustomEncryptSignWrong1PolicyHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | /** 7 | * A service implementation with an encryption policy set 8 | */ 9 | @WebService 10 | public class CustomEncryptSignWrong1PolicyHelloServiceImpl implements CustomEncryptSignWrong1PolicyHelloService { 11 | 12 | @WebMethod 13 | @Override 14 | public String hello(String text) { 15 | return "Hello " + text + " from CustomEncryptSign!"; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/CustomEncryptSignWrong2PolicyHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | import org.apache.cxf.annotations.Policy; 7 | 8 | /** 9 | * A service with a WS-SecurityPolicy attached, security policy is customAlgorithmSuite with default values 10 | */ 11 | @WebService(serviceName = "CustomEncryptSignWrong2PolicyHelloService") 12 | @Policy(placement = Policy.Placement.BINDING, uri = "custom-encrypt-sign-wrong2-policy.xml") 13 | public interface CustomEncryptSignWrong2PolicyHelloService extends AbstractHelloService { 14 | @WebMethod 15 | @Override 16 | String hello(String text); 17 | } 18 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/CustomEncryptSignWrong2PolicyHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | /** 7 | * A service implementation with an encryption policy set 8 | */ 9 | @WebService 10 | public class CustomEncryptSignWrong2PolicyHelloServiceImpl implements CustomEncryptSignWrong2PolicyHelloService { 11 | 12 | @WebMethod 13 | @Override 14 | public String hello(String text) { 15 | return "Hello " + text + " from CustomEncryptSign!"; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/CustomizedEncryptSignPolicyHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | import org.apache.cxf.annotations.Policy; 7 | 8 | /** 9 | * A service with a WS-SecurityPolicy attached, security policy is customAlgorithmSuite with default values 10 | */ 11 | @WebService(serviceName = "CustomizedEncryptSignPolicyHelloService") 12 | @Policy(placement = Policy.Placement.BINDING, uri = "customized-encrypt-sign-policy.xml") 13 | public interface CustomizedEncryptSignPolicyHelloService extends AbstractHelloService { 14 | @WebMethod 15 | @Override 16 | String hello(String text); 17 | } 18 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/CustomizedEncryptSignPolicyHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | /** 7 | * A service implementation with an encryption policy set 8 | */ 9 | @WebService 10 | public class CustomizedEncryptSignPolicyHelloServiceImpl implements CustomEncryptSignPolicyHelloService { 11 | 12 | @WebMethod 13 | @Override 14 | public String hello(String text) { 15 | return "Hello " + text + " from CustomEncryptSign!"; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/EncryptSignPolicyHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | import org.apache.cxf.annotations.Policy; 7 | 8 | /** 9 | * A service with a WS-SecurityPolicy attached 10 | */ 11 | // tag::quarkus-cxf-rt-ws-security.adoc[] 12 | @WebService(serviceName = "EncryptSignPolicyHelloService") 13 | @Policy(placement = Policy.Placement.BINDING, uri = "encrypt-sign-policy.xml") 14 | public interface EncryptSignPolicyHelloService extends AbstractHelloService { 15 | // end::quarkus-cxf-rt-ws-security.adoc[] 16 | @WebMethod 17 | @Override 18 | String hello(String text); 19 | } 20 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/EncryptSignPolicyHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | /** 7 | * A service implementation with an encryption policy set 8 | */ 9 | @WebService 10 | public class EncryptSignPolicyHelloServiceImpl implements EncryptSignPolicyHelloService { 11 | 12 | @WebMethod 13 | @Override 14 | public String hello(String text) { 15 | return "Hello " + text + " from EncryptSign!"; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/HelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | /** 7 | * The simplest Hello service. 8 | */ 9 | @WebService(serviceName = "HelloService") 10 | public interface HelloService extends AbstractHelloService { 11 | 12 | @WebMethod 13 | @Override 14 | String hello(String text); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/HelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | /** 7 | * The simplest Hello service implementation. 8 | */ 9 | @WebService 10 | public class HelloServiceImpl implements HelloService { 11 | 12 | @WebMethod 13 | @Override 14 | public String hello(String text) { 15 | return "Hello " + text + "!"; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/HttpsPolicyHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | import org.apache.cxf.annotations.Policy; 7 | 8 | /** 9 | * A service implementation with a transport policy set 10 | */ 11 | @WebService(serviceName = "HttpsPolicyHelloService") 12 | @Policy(placement = Policy.Placement.BINDING, uri = "https-policy.xml") 13 | public interface HttpsPolicyHelloService extends AbstractHelloService { 14 | 15 | @WebMethod 16 | @Override 17 | public String hello(String text); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/HttpsPolicyHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | /** 7 | * A service implementation with a transport policy set 8 | */ 9 | @WebService 10 | public class HttpsPolicyHelloServiceImpl implements HttpsPolicyHelloService { 11 | 12 | @WebMethod 13 | @Override 14 | public String hello(String text) { 15 | return "Hello " + text + " from HTTPS!"; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/NoopHostnameVerifier.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import javax.net.ssl.HostnameVerifier; 4 | import javax.net.ssl.SSLSession; 5 | 6 | public class NoopHostnameVerifier implements HostnameVerifier { 7 | 8 | @Override 9 | public boolean verify(final String s, final SSLSession sslSession) { 10 | return true; 11 | } 12 | 13 | @Override 14 | public final String toString() { 15 | return "NoopHostnameVerifier"; 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/Saml1PolicyHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | import org.apache.cxf.annotations.Policy; 7 | 8 | /** 9 | */ 10 | @WebService(serviceName = "Saml1PolicyHelloService") 11 | @Policy(placement = Policy.Placement.BINDING, uri = "saml1-policy.xml") 12 | public interface Saml1PolicyHelloService extends AbstractHelloService { 13 | @WebMethod 14 | @Override 15 | String hello(String text); 16 | } 17 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/Saml1PolicyHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | @WebService 7 | public class Saml1PolicyHelloServiceImpl implements Saml1PolicyHelloService { 8 | 9 | @WebMethod 10 | @Override 11 | public String hello(String text) { 12 | return "Hello " + text + " from helloSaml1!"; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/Saml2PolicyHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | import org.apache.cxf.annotations.Policy; 7 | 8 | /** 9 | */ 10 | @WebService(serviceName = "Saml2PolicyHelloService") 11 | @Policy(placement = Policy.Placement.BINDING, uri = "saml2-policy.xml") 12 | public interface Saml2PolicyHelloService extends AbstractHelloService { 13 | @WebMethod 14 | @Override 15 | String hello(String text); 16 | } 17 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/Saml2PolicyHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | @WebService 7 | public class Saml2PolicyHelloServiceImpl implements Saml2PolicyHelloService { 8 | 9 | @WebMethod 10 | @Override 11 | public String hello(String text) { 12 | return "Hello " + text + " from helloSaml2!"; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/UsernameTokenPolicyHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | import org.apache.cxf.annotations.Policy; 7 | 8 | /** 9 | * 10 | */ 11 | // tag::ws-securitypolicy-auth.adoc[] 12 | @WebService(serviceName = "UsernameTokenPolicyHelloService") 13 | @Policy(placement = Policy.Placement.BINDING, uri = "username-token-policy.xml") 14 | public interface UsernameTokenPolicyHelloService extends AbstractHelloService { 15 | // end::ws-securitypolicy-auth.adoc[] 16 | @WebMethod 17 | @Override 18 | String hello(String text); 19 | } 20 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/main/java/io/quarkiverse/cxf/it/security/policy/UsernameTokenPolicyHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | /** 7 | * A service implementation with a transport policy set 8 | */ 9 | @WebService 10 | public class UsernameTokenPolicyHelloServiceImpl implements UsernameTokenPolicyHelloService { 11 | 12 | @WebMethod 13 | @Override 14 | public String hello(String text) { 15 | return "Hello " + text + " from UsernameToken!"; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/test/java/io/quarkiverse/cxf/it/security/policy/CustomEncryptSignPolicyIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class CustomEncryptSignPolicyIT extends CustomEncryptSignPolicyTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/test/java/io/quarkiverse/cxf/it/security/policy/EncryptSignPolicyIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class EncryptSignPolicyIT extends EncryptSignPolicyTest { 7 | } 8 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/test/java/io/quarkiverse/cxf/it/security/policy/TransportPolicyIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class TransportPolicyIT extends TransportPolicyTest { 7 | 8 | @Override 9 | protected int getPort() { 10 | // final Config config = ConfigProvider.getConfig(); 11 | // does not seem to work return config.getValue("quarkus.http.test-ssl-port", Integer.class); 12 | return 8444; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/test/java/io/quarkiverse/cxf/it/security/policy/UsernameTokenSecurityPolicyIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class UsernameTokenSecurityPolicyIT extends UsernameTokenSecurityPolicyTest { 7 | 8 | @Override 9 | protected int getPort() { 10 | // final Config config = ConfigProvider.getConfig(); 11 | // does not seem to work return config.getValue("quarkus.http.test-ssl-port", Integer.class); 12 | return 8444; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/test/java/io/quarkiverse/cxf/it/security/policy/UsernameTokenSecurityPolicyStaxIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class UsernameTokenSecurityPolicyStaxIT extends UsernameTokenSecurityPolicyStaxTest { 7 | 8 | @Override 9 | protected int getPort() { 10 | // final Config config = ConfigProvider.getConfig(); 11 | // does not seem to work return config.getValue("quarkus.http.test-ssl-port", Integer.class); 12 | return 8444; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/src/test/java/io/quarkiverse/cxf/it/security/policy/UsernameTokenTest.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.security.policy; 2 | 3 | import org.assertj.core.api.Assertions; 4 | import org.junit.jupiter.api.Test; 5 | 6 | import io.quarkiverse.cxf.annotation.CXFClient; 7 | import io.quarkus.test.junit.QuarkusTest; 8 | 9 | @QuarkusTest 10 | public class UsernameTokenTest { 11 | 12 | @CXFClient("helloUsernameToken") 13 | UsernameTokenPolicyHelloService helloUsernameToken; 14 | 15 | @Test 16 | void helloUsernameToken() { 17 | Assertions.assertThat(helloUsernameToken.hello("CXF")).isEqualTo("Hello CXF from UsernameToken!"); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /integration-tests/ws-security-policy/v3.ext: -------------------------------------------------------------------------------- 1 | authorityKeyIdentifier = keyid, issuer 2 | basicConstraints = CA:FALSE 3 | keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment -------------------------------------------------------------------------------- /integration-tests/ws-security/src/main/java/io/quarkiverse/cxf/it/wss/client/CxfWssClientResource.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.wss.client; 2 | 3 | import jakarta.inject.Inject; 4 | import jakarta.ws.rs.GET; 5 | import jakarta.ws.rs.Path; 6 | import jakarta.ws.rs.Produces; 7 | import jakarta.ws.rs.QueryParam; 8 | import jakarta.ws.rs.core.MediaType; 9 | 10 | import org.jboss.eap.quickstarts.wscalculator.wsscalculator.WssCalculatorService; 11 | 12 | import io.quarkiverse.cxf.annotation.CXFClient; 13 | 14 | @Path("/cxf/wss-client") 15 | public class CxfWssClientResource { 16 | 17 | @Inject 18 | @CXFClient("wss-client") // name used in application.properties 19 | WssCalculatorService calculator; 20 | 21 | @GET 22 | @Path("/calculator/modulo") 23 | @Produces(MediaType.TEXT_PLAIN) 24 | public int modulo(@QueryParam("a") int a, @QueryParam("b") int b) { 25 | return calculator.modulo(a, b); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /integration-tests/ws-security/src/main/java/io/quarkiverse/cxf/it/wss/server/policy/WssSecurityPolicyHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.wss.server.policy; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | @WebService(targetNamespace = "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/ws-securitypolicy") 7 | public interface WssSecurityPolicyHelloService { 8 | 9 | @WebMethod 10 | String sayHello(String name); 11 | } 12 | -------------------------------------------------------------------------------- /integration-tests/ws-security/src/main/resources/saml-keystore.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quarkiverse/quarkus-cxf/d0cd3b7bfd9c4d3b6f31f3ac68d7dd23f9cc16a0/integration-tests/ws-security/src/main/resources/saml-keystore.jks -------------------------------------------------------------------------------- /integration-tests/ws-security/src/main/resources/server/alice.properties: -------------------------------------------------------------------------------- 1 | org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin 2 | org.apache.ws.security.crypto.merlin.keystore.type=${keystore.type} 3 | org.apache.ws.security.crypto.merlin.keystore.password=password 4 | org.apache.ws.security.crypto.merlin.keystore.alias=alice 5 | org.apache.ws.security.crypto.merlin.file=server/alice.${keystore.type} 6 | -------------------------------------------------------------------------------- /integration-tests/ws-security/src/main/resources/server/bob.properties: -------------------------------------------------------------------------------- 1 | org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin 2 | org.apache.ws.security.crypto.merlin.keystore.type=${keystore.type} 3 | org.apache.ws.security.crypto.merlin.keystore.password=password 4 | org.apache.ws.security.crypto.merlin.keystore.alias=bob 5 | org.apache.ws.security.crypto.merlin.file=server/bob.${keystore.type} 6 | 7 | -------------------------------------------------------------------------------- /integration-tests/ws-security/src/test/java/io/quarkiverse/cxf/it/wss/client/CxfWssClientIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.wss.client; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class CxfWssClientIT extends CxfWssClientTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /integration-tests/ws-security/src/test/java/io/quarkiverse/cxf/it/wss/client/SignatureValidatorIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.wss.client; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class SignatureValidatorIT extends SignatureValidatorTest { 7 | } 8 | -------------------------------------------------------------------------------- /integration-tests/ws-security/src/test/java/io/quarkiverse/cxf/it/wss/server/CxfWssServerIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.wss.server; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class CxfWssServerIT extends CxfWssServerTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /integration-tests/ws-security/src/test/java/io/quarkiverse/cxf/it/wss/server/CxfWssServerTestResource.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.wss.server; 2 | 3 | import java.util.Map; 4 | 5 | import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; 6 | 7 | public class CxfWssServerTestResource implements QuarkusTestResourceLifecycleManager { 8 | 9 | @Override 10 | public Map start() { 11 | 12 | final String user = "cxf-user"; 13 | final String password = "secret-password"; 14 | return Map.of( 15 | "wss.username", user, 16 | "wss.password", password); 17 | } 18 | 19 | @Override 20 | public void stop() { 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /integration-tests/ws-security/src/test/java/io/quarkiverse/cxf/it/wss/server/policy/CxfWssSecurityPolicyServerIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.wss.server.policy; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class CxfWssSecurityPolicyServerIT extends CxfWssSecurityPolicyServerTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /integration-tests/ws-trust/README.adoc: -------------------------------------------------------------------------------- 1 | = Regenerate keystores 2 | 3 | Run the script `generate_certs.sh` and copy all generated files (not the content of tme `tmp` folder) into `src/main/resources`. 4 | 5 | Content of the script file: 6 | 7 | [source,bash] 8 | ---- 9 | mvn generate-sources -Pgenerate-certs.sh 10 | ---- 11 | -------------------------------------------------------------------------------- /integration-tests/ws-trust/src/main/java/io/quarkiverse/cxf/it/ws/trust/server/TrustHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.trust.server; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | import org.apache.cxf.annotations.Policies; 7 | import org.apache.cxf.annotations.Policy; 8 | 9 | //tag::ws-trust-usage.adoc-service[] 10 | @WebService(targetNamespace = "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/test/ws-trust") 11 | @Policy(placement = Policy.Placement.BINDING, uri = "classpath:/asymmetric-saml2-policy.xml") 12 | public interface TrustHelloService { 13 | @WebMethod 14 | @Policies({ 15 | @Policy(placement = Policy.Placement.BINDING_OPERATION_INPUT, uri = "classpath:/io-policy.xml"), 16 | @Policy(placement = Policy.Placement.BINDING_OPERATION_OUTPUT, uri = "classpath:/io-policy.xml") 17 | }) 18 | String hello(String person); 19 | } 20 | //end::ws-trust-usage.adoc-service[] 21 | -------------------------------------------------------------------------------- /integration-tests/ws-trust/src/main/java/io/quarkiverse/cxf/it/ws/trust/server/TrustHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.trust.server; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | 6 | //tag::ws-trust-usage.adoc-service[] 7 | @WebService(portName = "TrustHelloServicePort", serviceName = "TrustHelloService", targetNamespace = "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/test/ws-trust", endpointInterface = "io.quarkiverse.cxf.it.ws.trust.server.TrustHelloService") 8 | public class TrustHelloServiceImpl implements TrustHelloService { 9 | @WebMethod 10 | @Override 11 | public String hello(String person) { 12 | return "Hello " + person + "!"; 13 | } 14 | } 15 | //end::ws-trust-usage.adoc-service[] -------------------------------------------------------------------------------- /integration-tests/ws-trust/src/main/java/io/quarkiverse/cxf/it/ws/trust/sts/StsCallbackHandler.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.trust.sts; 2 | 3 | import java.util.Map; 4 | 5 | import io.quarkiverse.cxf.it.ws.trust.common.PasswordCallbackHandler; 6 | import io.quarkus.runtime.annotations.RegisterForReflection; 7 | 8 | @RegisterForReflection(methods = false, fields = false) 9 | public class StsCallbackHandler extends PasswordCallbackHandler { 10 | 11 | public StsCallbackHandler() { 12 | super(Map.of( 13 | "sts", "password")); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /integration-tests/ws-trust/src/main/resources/client.pkcs12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quarkiverse/quarkus-cxf/d0cd3b7bfd9c4d3b6f31f3ac68d7dd23f9cc16a0/integration-tests/ws-trust/src/main/resources/client.pkcs12 -------------------------------------------------------------------------------- /integration-tests/ws-trust/src/main/resources/service.pkcs12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quarkiverse/quarkus-cxf/d0cd3b7bfd9c4d3b6f31f3ac68d7dd23f9cc16a0/integration-tests/ws-trust/src/main/resources/service.pkcs12 -------------------------------------------------------------------------------- /integration-tests/ws-trust/src/main/resources/sts.pkcs12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quarkiverse/quarkus-cxf/d0cd3b7bfd9c4d3b6f31f3ac68d7dd23f9cc16a0/integration-tests/ws-trust/src/main/resources/sts.pkcs12 -------------------------------------------------------------------------------- /integration-tests/ws-trust/src/test/java/io/quarkiverse/cxf/it/ws/trust/CxfWsTrustIT.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.trust; 2 | 3 | import io.quarkus.test.junit.QuarkusIntegrationTest; 4 | 5 | @QuarkusIntegrationTest 6 | public class CxfWsTrustIT extends CxfWsTrustTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /integration-tests/wsdl2java-no-config/README.adoc: -------------------------------------------------------------------------------- 1 | = `wsdl2java` code generation test 2 | 3 | The main focus of the current test module is to make sure that the `generate-code` mojo of 4 | `quarkus-maven-plugin` works well with `Wsdl2JavaCodeGen` even if there is no `wsdl2java` configuration 5 | in `application.properties`. 6 | -------------------------------------------------------------------------------- /integration-tests/wsdl2java-no-config/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # Intentionally left empty - see README.adoc -------------------------------------------------------------------------------- /integration-tests/wsdl2java-no-config/src/test/java/io/quarkiverse/cxf/wsdl2java/no/config/it/Wsdl2JavaNoConfigTest.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.wsdl2java.no.config.it; 2 | 3 | import java.io.IOException; 4 | import java.nio.file.Path; 5 | import java.nio.file.Paths; 6 | 7 | import org.assertj.core.api.Assertions; 8 | import org.junit.jupiter.api.Test; 9 | 10 | public class Wsdl2JavaNoConfigTest { 11 | 12 | @Test 13 | void codegenTests() throws IOException { 14 | 15 | /* Make sure that no java files were generated */ 16 | final Path wsdl2java = Paths.get( 17 | "target/generated-test-sources/wsdl2java"); 18 | Assertions.assertThat(wsdl2java).doesNotExist(); 19 | 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /integration-tests/wsdl2java/README.adoc: -------------------------------------------------------------------------------- 1 | = `wsdl2java` code generation test 2 | 3 | The main focus of the current test module is to make sure that the `generate-code-tests` mojo of 4 | `quarkus-maven-plugin` works well with `Wsdl2JavaCodeGen`. 5 | 6 | Note that we test `generate-code` mojo of `quarkus-maven-plugin` in other modules, like 7 | `quarkus-cxf-integration-test-client`. 8 | -------------------------------------------------------------------------------- /integration-tests/wsdl2java/src/test/java/io/quarkiverse/cxf/wsdl2java/it/HelloNameProvider.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.wsdl2java.it; 2 | 3 | public interface HelloNameProvider { 4 | String getHelloName(); 5 | } 6 | -------------------------------------------------------------------------------- /integration-tests/wsdl2java/src/test/java/io/quarkiverse/cxf/wsdl2java/it/TestInterface.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.wsdl2java.it; 2 | 3 | public interface TestInterface { 4 | default String hello() { 5 | return "Hello!"; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /integration-tests/wsdl2java/src/test/resources/wsdl/global-jaxb-bindings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /src/build/enforcer-rules/quarkus-cxf-banned-bom-dependencies.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | org.ow2.asm:asm 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /test-util-parent/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | io.quarkiverse.cxf 6 | quarkus-cxf-parent 7 | 3.23.2-SNAPSHOT 8 | ../pom.xml 9 | 10 | 11 | quarkus-cxf-test-util-parent 12 | pom 13 | 14 | Quarkus CXF - Test Utilities - Parent 15 | 16 | 17 | test-util 18 | test-ws-rm-server-jvm 19 | test-ws-rm-server-native 20 | test-list 21 | 22 | 23 | -------------------------------------------------------------------------------- /test-util-parent/test-util/src/main/java/io/quarkiverse/cxf/test/VertxTestUtil.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.test; 2 | 3 | import org.assertj.core.api.Assertions; 4 | 5 | import io.vertx.core.AsyncResult; 6 | 7 | public class VertxTestUtil { 8 | 9 | private VertxTestUtil() { 10 | } 11 | 12 | public static T assertSuccess(AsyncResult result) { 13 | Assertions.assertThat(result).satisfiesAnyOf( 14 | i -> Assertions.assertThat(i.succeeded()).isTrue(), 15 | i -> { 16 | throw i.cause(); 17 | }); 18 | return result.result(); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /test-util-parent/test-ws-rm-server-jvm/src/main/java/io/quarkiverse/cxf/it/ws/rm/server/Init.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.rm.server; 2 | 3 | import jakarta.enterprise.event.Observes; 4 | 5 | import org.apache.cxf.Bus; 6 | import org.apache.cxf.BusFactory; 7 | import org.apache.cxf.interceptor.LoggingInInterceptor; 8 | import org.apache.cxf.interceptor.LoggingOutInterceptor; 9 | 10 | import io.quarkus.runtime.StartupEvent; 11 | 12 | public class Init { 13 | 14 | void init(@Observes StartupEvent start) { 15 | Bus bus = BusFactory.getDefaultBus(); 16 | LoggingOutInterceptor loggingOut = new LoggingOutInterceptor(); 17 | loggingOut.setPrettyLogging(true); 18 | LoggingInInterceptor loggingIn = new LoggingInInterceptor(); 19 | loggingIn.setPrettyLogging(true); 20 | bus.getOutInterceptors().add(loggingOut); 21 | bus.getInInterceptors().add(loggingIn); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /test-util-parent/test-ws-rm-server-jvm/src/main/java/io/quarkiverse/cxf/it/ws/rm/server/WsrmHelloService.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.rm.server; 2 | 3 | import jakarta.jws.WebMethod; 4 | import jakarta.jws.WebService; 5 | import jakarta.xml.ws.soap.Addressing; 6 | 7 | @WebService(name = "WsrmHelloService", serviceName = "WsrmHelloService", targetNamespace = "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/test/ws-rm") 8 | @Addressing(required = true) 9 | public interface WsrmHelloService { 10 | @WebMethod 11 | String hello(String name); 12 | } 13 | -------------------------------------------------------------------------------- /test-util-parent/test-ws-rm-server-jvm/src/main/java/io/quarkiverse/cxf/it/ws/rm/server/WsrmHelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.rm.server; 2 | 3 | import java.util.concurrent.atomic.AtomicInteger; 4 | 5 | import jakarta.jws.WebMethod; 6 | import jakarta.jws.WebService; 7 | 8 | @WebService(serviceName = "WsrmHelloService", targetNamespace = "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/test/ws-rm") 9 | public class WsrmHelloServiceImpl implements WsrmHelloService { 10 | 11 | private AtomicInteger invocationCounter = new AtomicInteger(0); 12 | 13 | @WebMethod 14 | @Override 15 | public String hello(String name) { 16 | return "WS-ReliableMessaging Hello " + name + "! counter: " + invocationCounter.incrementAndGet(); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /test-util-parent/test-ws-rm-server-jvm/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | quarkus.package.type = uber-jar 2 | 3 | # Global WS-RM settings 4 | quarkus.cxf.rm.namespace = http://docs.oasis-open.org/ws-rx/wsrm/200702 5 | quarkus.cxf.rm.retransmission-interval = 6000 6 | quarkus.cxf.rm.acknowledgement-interval = 2000 7 | 8 | quarkus.cxf.endpoint."/wsrm".implementor = io.quarkiverse.cxf.it.ws.rm.server.WsrmHelloServiceImpl 9 | -------------------------------------------------------------------------------- /test-util-parent/test-ws-rm-server-native/src/main/java/io/quarkiverse/cxf/it/ws/rm/server/nat/HaveSomeJavaDoc.java: -------------------------------------------------------------------------------- 1 | package io.quarkiverse.cxf.it.ws.rm.server.nat; 2 | 3 | /** 4 | * Otherwise the Sonatype OSS repo is unhappy. 5 | */ 6 | public class HaveSomeJavaDoc { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /test-util-parent/test-ws-rm-server-native/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | quarkus.native.compression.level = 5 2 | 3 | # Global WS-RM settings 4 | quarkus.cxf.rm.namespace = http://docs.oasis-open.org/ws-rx/wsrm/200702 5 | quarkus.cxf.rm.retransmission-interval = 6000 6 | quarkus.cxf.rm.acknowledgement-interval = 2000 7 | 8 | quarkus.cxf.endpoint."/wsrm".implementor = io.quarkiverse.cxf.it.ws.rm.server.WsrmHelloServiceImpl 9 | quarkus.cxf.endpoint."/wsrm".logging.enabled = true 10 | quarkus.cxf.endpoint."/wsrm".logging.pretty = true 11 | --------------------------------------------------------------------------------