diff --git a/spring-integration-ws/src/main/java/org/springframework/integration/ws/AbstractWebServiceOutboundGateway.java b/spring-integration-ws/src/main/java/org/springframework/integration/ws/AbstractWebServiceOutboundGateway.java index f053ad65bd7..9cb3d73776b 100644 --- a/spring-integration-ws/src/main/java/org/springframework/integration/ws/AbstractWebServiceOutboundGateway.java +++ b/spring-integration-ws/src/main/java/org/springframework/integration/ws/AbstractWebServiceOutboundGateway.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2024 the original author or authors. + * Copyright 2002-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,6 +25,8 @@ import javax.xml.transform.TransformerException; +import org.jspecify.annotations.Nullable; + import org.springframework.expression.Expression; import org.springframework.expression.spel.support.StandardEvaluationContext; import org.springframework.integration.expression.ExpressionEvalMap; @@ -59,6 +61,7 @@ * @author Artem Bilan * @author Christian Tzolov * @author Ngoc Nhan + * @author Jooyoung Pyoung */ public abstract class AbstractWebServiceOutboundGateway extends AbstractReplyProducingMessageHandler { @@ -66,15 +69,16 @@ public abstract class AbstractWebServiceOutboundGateway extends AbstractReplyPro protected final DefaultUriBuilderFactory uriFactory = new DefaultUriBuilderFactory(); // NOSONAR - final - private final String uri; + private final @Nullable String uri; - private final DestinationProvider destinationProvider; + private final @Nullable DestinationProvider destinationProvider; private final Map uriVariableExpressions = new HashMap<>(); + @SuppressWarnings("NullAway.Init") private StandardEvaluationContext evaluationContext; - private WebServiceMessageCallback requestCallback; + private @Nullable WebServiceMessageCallback requestCallback; private WebServiceTemplate webServiceTemplate; @@ -84,18 +88,20 @@ public abstract class AbstractWebServiceOutboundGateway extends AbstractReplyPro private boolean webServiceTemplateExplicitlySet; - public AbstractWebServiceOutboundGateway(final String uri, WebServiceMessageFactory messageFactory) { + public AbstractWebServiceOutboundGateway(@Nullable final String uri, @Nullable WebServiceMessageFactory messageFactory) { Assert.hasText(uri, "URI must not be empty"); - this.webServiceTemplate = new WebServiceTemplate(messageFactory); + this.webServiceTemplate = messageFactory != null ? + new WebServiceTemplate(messageFactory) : new WebServiceTemplate(); this.destinationProvider = null; this.uri = uri; } public AbstractWebServiceOutboundGateway(DestinationProvider destinationProvider, - WebServiceMessageFactory messageFactory) { + @Nullable WebServiceMessageFactory messageFactory) { Assert.notNull(destinationProvider, "DestinationProvider must not be null"); - this.webServiceTemplate = new WebServiceTemplate(messageFactory); + this.webServiceTemplate = messageFactory != null ? + new WebServiceTemplate(messageFactory) : new WebServiceTemplate(); this.destinationProvider = destinationProvider; // we always call WebServiceTemplate methods with an explicit URI argument, // but in case the WebServiceTemplate is accessed directly we'll set this: @@ -165,7 +171,7 @@ public void setMessageFactory(WebServiceMessageFactory messageFactory) { this.webServiceTemplate.setMessageFactory(messageFactory); } - public void setRequestCallback(WebServiceMessageCallback requestCallback) { + public void setRequestCallback(@Nullable WebServiceMessageCallback requestCallback) { this.requestCallback = requestCallback; } @@ -199,7 +205,7 @@ protected WebServiceTemplate getWebServiceTemplate() { } @Override - public final Object handleRequestMessage(Message requestMessage) { + public final @Nullable Object handleRequestMessage(Message requestMessage) { URI uriWithVariables = prepareUri(requestMessage); if (uriWithVariables == null) { throw new MessageDeliveryException(requestMessage, "Failed to determine URI for " + @@ -215,7 +221,7 @@ public final Object handleRequestMessage(Message requestMessage) { return null; } - private URI prepareUri(Message requestMessage) { + private @Nullable URI prepareUri(Message requestMessage) { if (this.destinationProvider != null) { return this.destinationProvider.getDestination(); } @@ -226,20 +232,21 @@ private URI prepareUri(Message requestMessage) { .withRoot(requestMessage) .build(); + Assert.notNull(this.uri, "'uri' must not be null"); return this.uriFactory.expand(this.uri, uriVariables); } - protected abstract Object doHandle(String theUri, Message requestMessage, - WebServiceMessageCallback reqCallback); + protected abstract @Nullable Object doHandle(String theUri, Message requestMessage, + @Nullable WebServiceMessageCallback reqCallback); protected abstract class RequestMessageCallback extends TransformerObjectSupport implements WebServiceMessageCallback { - private final WebServiceMessageCallback reqCallback; + private final @Nullable WebServiceMessageCallback reqCallback; private final Message requestMessage; - public RequestMessageCallback(WebServiceMessageCallback requestCallback, Message requestMessage) { + public RequestMessageCallback(@Nullable WebServiceMessageCallback requestCallback, Message requestMessage) { this.reqCallback = requestCallback; this.requestMessage = requestMessage; } @@ -266,7 +273,7 @@ protected abstract class ResponseMessageExtractor extends TransformerObjectSuppo implements WebServiceMessageExtractor { @Override - public Object extractData(WebServiceMessage message) + public @Nullable Object extractData(WebServiceMessage message) throws IOException, TransformerException { Object resultObject = this.doExtractData(message); @@ -284,7 +291,7 @@ public Object extractData(WebServiceMessage message) } } - public abstract Object doExtractData(WebServiceMessage message) throws IOException, TransformerException; + public abstract @Nullable Object doExtractData(WebServiceMessage message) throws IOException, TransformerException; } diff --git a/spring-integration-ws/src/main/java/org/springframework/integration/ws/DefaultSoapHeaderMapper.java b/spring-integration-ws/src/main/java/org/springframework/integration/ws/DefaultSoapHeaderMapper.java index 39544c5c948..fa87c8f3590 100644 --- a/spring-integration-ws/src/main/java/org/springframework/integration/ws/DefaultSoapHeaderMapper.java +++ b/spring-integration-ws/src/main/java/org/springframework/integration/ws/DefaultSoapHeaderMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -53,6 +53,7 @@ * @author Mauro Molinari * @author Artem Bilan * @author Gary Russell + * @author Jooyoung Pyoung * * @since 2.0 */ @@ -126,6 +127,10 @@ else if (!StringUtils.hasText(target.getSoapAction())) { @Override protected void populateUserDefinedHeader(String headerName, Object headerValue, SoapMessage target) { SoapHeader soapHeader = target.getSoapHeader(); + if (soapHeader == null) { + return; + } + if (headerValue instanceof String) { QName qname = QNameUtils.parseQNameString(headerName); soapHeader.addAttribute(qname, (String) headerValue); diff --git a/spring-integration-ws/src/main/java/org/springframework/integration/ws/MarshallingWebServiceInboundGateway.java b/spring-integration-ws/src/main/java/org/springframework/integration/ws/MarshallingWebServiceInboundGateway.java index d7f6ea52cb8..8800715270d 100644 --- a/spring-integration-ws/src/main/java/org/springframework/integration/ws/MarshallingWebServiceInboundGateway.java +++ b/spring-integration-ws/src/main/java/org/springframework/integration/ws/MarshallingWebServiceInboundGateway.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2024 the original author or authors. + * Copyright 2002-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,8 +35,10 @@ */ public class MarshallingWebServiceInboundGateway extends AbstractWebServiceInboundGateway { + @SuppressWarnings("NullAway.Init") private Marshaller marshaller; + @SuppressWarnings("NullAway.Init") private Unmarshaller unmarshaller; /** diff --git a/spring-integration-ws/src/main/java/org/springframework/integration/ws/MarshallingWebServiceOutboundGateway.java b/spring-integration-ws/src/main/java/org/springframework/integration/ws/MarshallingWebServiceOutboundGateway.java index 6a5329b9e3d..b1d3126a4bc 100644 --- a/spring-integration-ws/src/main/java/org/springframework/integration/ws/MarshallingWebServiceOutboundGateway.java +++ b/spring-integration-ws/src/main/java/org/springframework/integration/ws/MarshallingWebServiceOutboundGateway.java @@ -18,7 +18,8 @@ import java.io.IOException; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.messaging.Message; import org.springframework.oxm.Marshaller; import org.springframework.oxm.Unmarshaller; @@ -45,7 +46,7 @@ public class MarshallingWebServiceOutboundGateway extends AbstractWebServiceOutb @SuppressWarnings("this-escape") public MarshallingWebServiceOutboundGateway(DestinationProvider destinationProvider, Marshaller marshaller, - Unmarshaller unmarshaller, WebServiceMessageFactory messageFactory) { + @Nullable Unmarshaller unmarshaller, @Nullable WebServiceMessageFactory messageFactory) { super(destinationProvider, messageFactory); configureMarshallers(marshaller, unmarshaller); } @@ -56,7 +57,7 @@ public MarshallingWebServiceOutboundGateway(DestinationProvider destinationProvi } public MarshallingWebServiceOutboundGateway(DestinationProvider destinationProvider, Marshaller marshaller, - WebServiceMessageFactory messageFactory) { + @Nullable WebServiceMessageFactory messageFactory) { this(destinationProvider, marshaller, null, messageFactory); } @@ -65,8 +66,8 @@ public MarshallingWebServiceOutboundGateway(DestinationProvider destinationProvi } @SuppressWarnings("this-escape") - public MarshallingWebServiceOutboundGateway(String uri, Marshaller marshaller, Unmarshaller unmarshaller, - WebServiceMessageFactory messageFactory) { + public MarshallingWebServiceOutboundGateway(@Nullable String uri, Marshaller marshaller, @Nullable Unmarshaller unmarshaller, + @Nullable WebServiceMessageFactory messageFactory) { super(uri, messageFactory); configureMarshallers(marshaller, unmarshaller); } @@ -76,7 +77,7 @@ public MarshallingWebServiceOutboundGateway(String uri, Marshaller marshaller, U } public MarshallingWebServiceOutboundGateway(String uri, Marshaller marshaller, - WebServiceMessageFactory messageFactory) { + @Nullable WebServiceMessageFactory messageFactory) { this(uri, marshaller, null, messageFactory); } @@ -91,7 +92,7 @@ public MarshallingWebServiceOutboundGateway(String uri, Marshaller marshaller) { * @since 5.0 */ @SuppressWarnings("this-escape") - public MarshallingWebServiceOutboundGateway(String uri, WebServiceTemplate webServiceTemplate) { + public MarshallingWebServiceOutboundGateway(@Nullable String uri, WebServiceTemplate webServiceTemplate) { super(uri, null); doSetWebServiceTemplate(webServiceTemplate); } @@ -139,7 +140,7 @@ public String getComponentType() { } @Override - protected Object doHandle(String uri, Message requestMessage, WebServiceMessageCallback requestCallback) { + protected @Nullable Object doHandle(String uri, Message requestMessage, @Nullable WebServiceMessageCallback requestCallback) { return getWebServiceTemplate() .marshalSendAndReceive(uri, requestMessage.getPayload(), new PassThroughRequestMessageCallback(requestCallback, requestMessage)); @@ -147,7 +148,7 @@ protected Object doHandle(String uri, Message requestMessage, WebServiceMessa private final class PassThroughRequestMessageCallback extends RequestMessageCallback { - PassThroughRequestMessageCallback(WebServiceMessageCallback requestCallback, Message requestMessage) { + PassThroughRequestMessageCallback(@Nullable WebServiceMessageCallback requestCallback, Message requestMessage) { super(requestCallback, requestMessage); } diff --git a/spring-integration-ws/src/main/java/org/springframework/integration/ws/SimpleWebServiceOutboundGateway.java b/spring-integration-ws/src/main/java/org/springframework/integration/ws/SimpleWebServiceOutboundGateway.java index d5185e1a023..216820fcbd7 100644 --- a/spring-integration-ws/src/main/java/org/springframework/integration/ws/SimpleWebServiceOutboundGateway.java +++ b/spring-integration-ws/src/main/java/org/springframework/integration/ws/SimpleWebServiceOutboundGateway.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2024 the original author or authors. + * Copyright 2002-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,9 +25,9 @@ import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; +import org.jspecify.annotations.Nullable; import org.w3c.dom.Document; -import org.springframework.lang.Nullable; import org.springframework.messaging.Message; import org.springframework.messaging.MessagingException; import org.springframework.util.Assert; @@ -49,6 +49,7 @@ * @author Oleg Zhurakousky * @author Artem Bilan * @author Gary Russell + * @author Jooyoung Pyoung */ public class SimpleWebServiceOutboundGateway extends AbstractWebServiceOutboundGateway { @@ -68,8 +69,7 @@ public SimpleWebServiceOutboundGateway(DestinationProvider destinationProvider, public SimpleWebServiceOutboundGateway(DestinationProvider destinationProvider, @Nullable SourceExtractor sourceExtractor, - WebServiceMessageFactory messageFactory) { - + @Nullable WebServiceMessageFactory messageFactory) { super(destinationProvider, messageFactory); this.sourceExtractor = (sourceExtractor != null) ? sourceExtractor : new DefaultSourceExtractor(); } @@ -82,8 +82,8 @@ public SimpleWebServiceOutboundGateway(String uri, SourceExtractor sourceExtr this(uri, sourceExtractor, null); } - public SimpleWebServiceOutboundGateway(String uri, @Nullable SourceExtractor sourceExtractor, - WebServiceMessageFactory messageFactory) { + public SimpleWebServiceOutboundGateway(@Nullable String uri, @Nullable SourceExtractor sourceExtractor, + @Nullable WebServiceMessageFactory messageFactory) { super(uri, messageFactory); this.sourceExtractor = (sourceExtractor != null) ? sourceExtractor : new DefaultSourceExtractor(); @@ -107,8 +107,8 @@ public String getComponentType() { } @Override - protected Object doHandle(String uri, final Message requestMessage, - final WebServiceMessageCallback requestCallback) { + protected @Nullable Object doHandle(String uri, final Message requestMessage, + final @Nullable WebServiceMessageCallback requestCallback) { Object requestPayload = requestMessage.getPayload(); Result responseResultInstance = null; @@ -126,7 +126,7 @@ else if (requestPayload instanceof Document) { private final class SimpleRequestMessageCallback extends RequestMessageCallback { - SimpleRequestMessageCallback(WebServiceMessageCallback requestCallback, Message requestMessage) { + SimpleRequestMessageCallback(@Nullable WebServiceMessageCallback requestCallback, Message requestMessage) { super(requestCallback, requestMessage); } @@ -134,13 +134,16 @@ private final class SimpleRequestMessageCallback extends RequestMessageCallback public void doWithMessageInternal(WebServiceMessage message, Object payload) throws IOException, TransformerException { Source source = this.extractSource(payload); + if (source == null) { + source = new DOMSource(); + } transform(source, message.getPayloadResult()); if (message instanceof MimeMessage && payload instanceof MimeMessage) { copyAttachments((MimeMessage) payload, (MimeMessage) message); } } - private Source extractSource(Object requestPayload) throws IOException, TransformerException { + private @Nullable Source extractSource(Object requestPayload) throws IOException, TransformerException { Source source = null; if (requestPayload instanceof Source) { @@ -181,14 +184,14 @@ private void copyAttachments(MimeMessage source, MimeMessage target) { private final class SimpleResponseMessageExtractor extends ResponseMessageExtractor { - private final Result result; + private final @Nullable Result result; - SimpleResponseMessageExtractor(Result result) { + SimpleResponseMessageExtractor(@Nullable Result result) { this.result = result; } @Override - public Object doExtractData(WebServiceMessage message) throws TransformerException { + public @Nullable Object doExtractData(WebServiceMessage message) throws TransformerException { if (!SimpleWebServiceOutboundGateway.this.extractPayload) { return message; } @@ -220,10 +223,13 @@ private static class DefaultSourceExtractor extends TransformerObjectSupport imp } @Override - public DOMSource extractData(Source source) throws TransformerException { + public @Nullable DOMSource extractData(@Nullable Source source) throws TransformerException { if (source instanceof DOMSource) { return (DOMSource) source; } + else if (source == null) { + return new DOMSource(); + } DOMResult result = new DOMResult(); this.transform(source, result); return new DOMSource(result.getNode()); diff --git a/spring-integration-ws/src/main/java/org/springframework/integration/ws/config/package-info.java b/spring-integration-ws/src/main/java/org/springframework/integration/ws/config/package-info.java index d89a5edf0a6..d0742368f6c 100644 --- a/spring-integration-ws/src/main/java/org/springframework/integration/ws/config/package-info.java +++ b/spring-integration-ws/src/main/java/org/springframework/integration/ws/config/package-info.java @@ -1,4 +1,5 @@ /** * Contains parser classes for the Web Services namespace support. */ +@org.jspecify.annotations.NullMarked package org.springframework.integration.ws.config; diff --git a/spring-integration-ws/src/main/java/org/springframework/integration/ws/dsl/BaseWsOutboundGatewaySpec.java b/spring-integration-ws/src/main/java/org/springframework/integration/ws/dsl/BaseWsOutboundGatewaySpec.java index c5d37417eba..02afeae0f2a 100644 --- a/spring-integration-ws/src/main/java/org/springframework/integration/ws/dsl/BaseWsOutboundGatewaySpec.java +++ b/spring-integration-ws/src/main/java/org/springframework/integration/ws/dsl/BaseWsOutboundGatewaySpec.java @@ -1,5 +1,5 @@ /* - * Copyright 2020-2021 the original author or authors. + * Copyright 2020-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ import java.util.HashMap; import java.util.Map; +import org.jspecify.annotations.Nullable; + import org.springframework.expression.Expression; import org.springframework.integration.JavaUtils; import org.springframework.integration.dsl.MessageHandlerSpec; @@ -51,27 +53,28 @@ public abstract class BaseWsOutboundGatewaySpec< private final Map uriVariableExpressions = new HashMap<>(); + @SuppressWarnings("NullAway.Init") protected WebServiceTemplate template; // NOSONAR - protected DestinationProvider destinationProvider; // NOSONAR + protected @Nullable DestinationProvider destinationProvider; // NOSONAR - protected String uri; // NOSONAR + protected @Nullable String uri; // NOSONAR - protected WebServiceMessageFactory webServiceMessageFactory; // NOSONAR + protected @Nullable WebServiceMessageFactory webServiceMessageFactory; // NOSONAR - private SoapHeaderMapper headerMapper; + private @Nullable SoapHeaderMapper headerMapper; - private DefaultUriBuilderFactory.EncodingMode encodingMode; + private DefaultUriBuilderFactory.@Nullable EncodingMode encodingMode; private boolean ignoreEmptyResponses = true; - private WebServiceMessageCallback requestCallback; + private @Nullable WebServiceMessageCallback requestCallback; - protected FaultMessageResolver faultMessageResolver; // NOSONAR + protected @Nullable FaultMessageResolver faultMessageResolver; // NOSONAR - protected WebServiceMessageSender[] messageSenders; // NOSONAR + protected WebServiceMessageSender @Nullable [] messageSenders; // NOSONAR - protected ClientInterceptor[] gatewayInterceptors; // NOSONAR + protected ClientInterceptor @Nullable [] gatewayInterceptors; // NOSONAR protected boolean extractPayload = true; // NOSONAR diff --git a/spring-integration-ws/src/main/java/org/springframework/integration/ws/dsl/MarshallingWsOutboundGatewaySpec.java b/spring-integration-ws/src/main/java/org/springframework/integration/ws/dsl/MarshallingWsOutboundGatewaySpec.java index c78920ccd75..544efab8918 100644 --- a/spring-integration-ws/src/main/java/org/springframework/integration/ws/dsl/MarshallingWsOutboundGatewaySpec.java +++ b/spring-integration-ws/src/main/java/org/springframework/integration/ws/dsl/MarshallingWsOutboundGatewaySpec.java @@ -1,5 +1,5 @@ /* - * Copyright 2020-2021 the original author or authors. + * Copyright 2020-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,10 +18,13 @@ import java.util.Arrays; +import org.jspecify.annotations.Nullable; + import org.springframework.integration.JavaUtils; import org.springframework.integration.ws.MarshallingWebServiceOutboundGateway; import org.springframework.oxm.Marshaller; import org.springframework.oxm.Unmarshaller; +import org.springframework.oxm.jaxb.Jaxb2Marshaller; import org.springframework.ws.WebServiceMessageFactory; import org.springframework.ws.client.core.FaultMessageResolver; import org.springframework.ws.client.core.WebServiceTemplate; @@ -63,9 +66,9 @@ public static class MarshallingWsOutboundGatewayNoTemplateSpec extends BaseWsOutboundGatewaySpec { - protected Marshaller gatewayMarshaller; // NOSONAR + protected Marshaller gatewayMarshaller = new Jaxb2Marshaller(); - protected Unmarshaller gatewayUnmarshaller; // NOSONAR + protected @Nullable Unmarshaller gatewayUnmarshaller; // NOSONAR /** * Configure the marshaller to use. diff --git a/spring-integration-ws/src/main/java/org/springframework/integration/ws/dsl/SimpleWsOutboundGatewaySpec.java b/spring-integration-ws/src/main/java/org/springframework/integration/ws/dsl/SimpleWsOutboundGatewaySpec.java index fb584394ed2..0fbc9b3b280 100644 --- a/spring-integration-ws/src/main/java/org/springframework/integration/ws/dsl/SimpleWsOutboundGatewaySpec.java +++ b/spring-integration-ws/src/main/java/org/springframework/integration/ws/dsl/SimpleWsOutboundGatewaySpec.java @@ -1,5 +1,5 @@ /* - * Copyright 2020-2024 the original author or authors. + * Copyright 2020-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,9 +18,10 @@ import java.util.Arrays; +import org.jspecify.annotations.Nullable; + import org.springframework.integration.JavaUtils; import org.springframework.integration.ws.SimpleWebServiceOutboundGateway; -import org.springframework.lang.Nullable; import org.springframework.ws.WebServiceMessageFactory; import org.springframework.ws.client.core.FaultMessageResolver; import org.springframework.ws.client.core.SourceExtractor; @@ -40,8 +41,7 @@ public class SimpleWsOutboundGatewaySpec extends BaseWsOutboundGatewaySpec { - @Nullable - protected SourceExtractor sourceExtractor; // NOSONAR + protected @Nullable SourceExtractor sourceExtractor; // NOSONAR protected SimpleWsOutboundGatewaySpec(WebServiceTemplate template) { this.template = template; @@ -100,6 +100,7 @@ protected SimpleWebServiceOutboundGateway create() { public static class SimpleWsOutboundGatewayNoTemplateSpec extends BaseWsOutboundGatewaySpec { + @Nullable protected SourceExtractor sourceExtractor; // NOSONAR private boolean extractPayload = true; diff --git a/spring-integration-ws/src/main/java/org/springframework/integration/ws/dsl/package-info.java b/spring-integration-ws/src/main/java/org/springframework/integration/ws/dsl/package-info.java index b10046610d9..c77e7a4ab5a 100644 --- a/spring-integration-ws/src/main/java/org/springframework/integration/ws/dsl/package-info.java +++ b/spring-integration-ws/src/main/java/org/springframework/integration/ws/dsl/package-info.java @@ -1,5 +1,5 @@ /** * Contains classes for DSL support. */ -@org.springframework.lang.NonNullApi +@org.jspecify.annotations.NullMarked package org.springframework.integration.ws.dsl; diff --git a/spring-integration-ws/src/main/java/org/springframework/integration/ws/package-info.java b/spring-integration-ws/src/main/java/org/springframework/integration/ws/package-info.java index 3c8070775dd..d78697a966e 100644 --- a/spring-integration-ws/src/main/java/org/springframework/integration/ws/package-info.java +++ b/spring-integration-ws/src/main/java/org/springframework/integration/ws/package-info.java @@ -2,4 +2,5 @@ * Provides several inbound and outbound Web Service components. Also contains * support classes (e.g. Header Mapper) */ +@org.jspecify.annotations.NullMarked package org.springframework.integration.ws; diff --git a/spring-integration-ws/src/test/java/org/springframework/integration/ws/config/WebServiceOutboundGatewayParserTests.java b/spring-integration-ws/src/test/java/org/springframework/integration/ws/config/WebServiceOutboundGatewayParserTests.java index f9559e64105..c366bbe0be5 100644 --- a/spring-integration-ws/src/test/java/org/springframework/integration/ws/config/WebServiceOutboundGatewayParserTests.java +++ b/spring-integration-ws/src/test/java/org/springframework/integration/ws/config/WebServiceOutboundGatewayParserTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2024 the original author or authors. + * Copyright 2002-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License.