Skip to content

Commit 4d4f279

Browse files
committed
Apply review feedback to simplify nullable handling and clean up suppressions
* Use `@Nullable` `WebServiceMessageFactory` with conditional `webServiceTemplate` creation * Mark `uri` and webServiceMessageFactory fields as `@Nullable`, keep template as final * Remove all `@SuppressWarnings("NullAway")` annotations * Remove unnecessary ctor overloads from previous approach Signed-off-by: Jooyoung Pyoung <[email protected]>
1 parent b36f142 commit 4d4f279

File tree

5 files changed

+32
-67
lines changed

5 files changed

+32
-67
lines changed

spring-integration-ws/src/main/java/org/springframework/integration/ws/AbstractWebServiceOutboundGateway.java

Lines changed: 9 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public abstract class AbstractWebServiceOutboundGateway extends AbstractReplyPro
6969

7070
protected final DefaultUriBuilderFactory uriFactory = new DefaultUriBuilderFactory(); // NOSONAR - final
7171

72-
private final String uri;
72+
private final @Nullable String uri;
7373

7474
private final @Nullable DestinationProvider destinationProvider;
7575

@@ -88,56 +88,25 @@ public abstract class AbstractWebServiceOutboundGateway extends AbstractReplyPro
8888

8989
private boolean webServiceTemplateExplicitlySet;
9090

91-
public AbstractWebServiceOutboundGateway(final String uri) {
91+
public AbstractWebServiceOutboundGateway(@Nullable final String uri, @Nullable WebServiceMessageFactory messageFactory) {
9292
Assert.hasText(uri, "URI must not be empty");
93-
this.webServiceTemplate = new WebServiceTemplate();
93+
this.webServiceTemplate = messageFactory != null ?
94+
new WebServiceTemplate(messageFactory) : new WebServiceTemplate();
9495
this.destinationProvider = null;
9596
this.uri = uri;
9697
}
9798

98-
public AbstractWebServiceOutboundGateway(final String uri, WebServiceMessageFactory messageFactory) {
99-
Assert.hasText(uri, "URI must not be empty");
100-
this.webServiceTemplate = new WebServiceTemplate(messageFactory);
101-
this.destinationProvider = null;
102-
this.uri = uri;
103-
}
104-
105-
public AbstractWebServiceOutboundGateway(final String uri, WebServiceTemplate webServiceTemplate) {
106-
Assert.hasText(uri, "URI must not be empty");
107-
doSetWebServiceTemplate(webServiceTemplate);
108-
this.destinationProvider = null;
109-
this.uri = uri;
110-
}
111-
112-
protected AbstractWebServiceOutboundGateway(DestinationProvider destinationProvider,
113-
WebServiceTemplate webServiceTemplate) {
114-
115-
Assert.notNull(destinationProvider, "DestinationProvider must not be null");
116-
doSetWebServiceTemplate(webServiceTemplate);
117-
this.destinationProvider = destinationProvider;
118-
this.uri = "";
119-
}
120-
121-
public AbstractWebServiceOutboundGateway(DestinationProvider destinationProvider) {
122-
Assert.notNull(destinationProvider, "DestinationProvider must not be null");
123-
this.webServiceTemplate = new WebServiceTemplate();
124-
this.destinationProvider = destinationProvider;
125-
// we always call WebServiceTemplate methods with an explicit URI argument,
126-
// but in case the WebServiceTemplate is accessed directly we'll set this:
127-
this.webServiceTemplate.setDestinationProvider(destinationProvider);
128-
this.uri = "";
129-
}
130-
13199
public AbstractWebServiceOutboundGateway(DestinationProvider destinationProvider,
132-
WebServiceMessageFactory messageFactory) {
100+
@Nullable WebServiceMessageFactory messageFactory) {
133101

134102
Assert.notNull(destinationProvider, "DestinationProvider must not be null");
135-
this.webServiceTemplate = new WebServiceTemplate(messageFactory);
103+
this.webServiceTemplate = messageFactory != null ?
104+
new WebServiceTemplate(messageFactory) : new WebServiceTemplate();
136105
this.destinationProvider = destinationProvider;
137106
// we always call WebServiceTemplate methods with an explicit URI argument,
138107
// but in case the WebServiceTemplate is accessed directly we'll set this:
139108
this.webServiceTemplate.setDestinationProvider(destinationProvider);
140-
this.uri = "";
109+
this.uri = null;
141110
}
142111

143112
public void setHeaderMapper(SoapHeaderMapper headerMapper) {
@@ -263,6 +232,7 @@ protected WebServiceTemplate getWebServiceTemplate() {
263232
.withRoot(requestMessage)
264233
.build();
265234

235+
Assert.notNull(this.uri, "'uri' must not be null");
266236
return this.uriFactory.expand(this.uri, uriVariables);
267237
}
268238

spring-integration-ws/src/main/java/org/springframework/integration/ws/MarshallingWebServiceOutboundGateway.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,45 +46,41 @@ public class MarshallingWebServiceOutboundGateway extends AbstractWebServiceOutb
4646

4747
@SuppressWarnings("this-escape")
4848
public MarshallingWebServiceOutboundGateway(DestinationProvider destinationProvider, Marshaller marshaller,
49-
@Nullable Unmarshaller unmarshaller, WebServiceMessageFactory messageFactory) {
49+
@Nullable Unmarshaller unmarshaller, @Nullable WebServiceMessageFactory messageFactory) {
5050
super(destinationProvider, messageFactory);
5151
configureMarshallers(marshaller, unmarshaller);
5252
}
5353

54-
@SuppressWarnings("NullAway")
5554
public MarshallingWebServiceOutboundGateway(DestinationProvider destinationProvider, Marshaller marshaller,
5655
Unmarshaller unmarshaller) {
5756
this(destinationProvider, marshaller, unmarshaller, null);
5857
}
5958

6059
public MarshallingWebServiceOutboundGateway(DestinationProvider destinationProvider, Marshaller marshaller,
61-
WebServiceMessageFactory messageFactory) {
60+
@Nullable WebServiceMessageFactory messageFactory) {
6261
this(destinationProvider, marshaller, null, messageFactory);
6362
}
6463

65-
@SuppressWarnings("NullAway")
6664
public MarshallingWebServiceOutboundGateway(DestinationProvider destinationProvider, Marshaller marshaller) {
6765
this(destinationProvider, marshaller, (WebServiceMessageFactory) null);
6866
}
6967

7068
@SuppressWarnings("this-escape")
71-
public MarshallingWebServiceOutboundGateway(String uri, Marshaller marshaller, @Nullable Unmarshaller unmarshaller,
72-
WebServiceMessageFactory messageFactory) {
69+
public MarshallingWebServiceOutboundGateway(@Nullable String uri, Marshaller marshaller, @Nullable Unmarshaller unmarshaller,
70+
@Nullable WebServiceMessageFactory messageFactory) {
7371
super(uri, messageFactory);
7472
configureMarshallers(marshaller, unmarshaller);
7573
}
7674

77-
@SuppressWarnings("NullAway")
7875
public MarshallingWebServiceOutboundGateway(String uri, Marshaller marshaller, Unmarshaller unmarshaller) {
7976
this(uri, marshaller, unmarshaller, null);
8077
}
8178

8279
public MarshallingWebServiceOutboundGateway(String uri, Marshaller marshaller,
83-
WebServiceMessageFactory messageFactory) {
80+
@Nullable WebServiceMessageFactory messageFactory) {
8481
this(uri, marshaller, null, messageFactory);
8582
}
8683

87-
@SuppressWarnings("NullAway")
8884
public MarshallingWebServiceOutboundGateway(String uri, Marshaller marshaller) {
8985
this(uri, marshaller, (WebServiceMessageFactory) null);
9086
}
@@ -96,8 +92,9 @@ public MarshallingWebServiceOutboundGateway(String uri, Marshaller marshaller) {
9692
* @since 5.0
9793
*/
9894
@SuppressWarnings("this-escape")
99-
public MarshallingWebServiceOutboundGateway(String uri, WebServiceTemplate webServiceTemplate) {
100-
super(uri, webServiceTemplate);
95+
public MarshallingWebServiceOutboundGateway(@Nullable String uri, WebServiceTemplate webServiceTemplate) {
96+
super(uri, null);
97+
doSetWebServiceTemplate(webServiceTemplate);
10198
}
10299

103100
/**
@@ -109,7 +106,8 @@ public MarshallingWebServiceOutboundGateway(String uri, WebServiceTemplate webSe
109106
@SuppressWarnings("this-escape")
110107
public MarshallingWebServiceOutboundGateway(DestinationProvider destinationProvider,
111108
WebServiceTemplate webServiceTemplate) {
112-
super(destinationProvider, webServiceTemplate);
109+
super(destinationProvider, null);
110+
doSetWebServiceTemplate(webServiceTemplate);
113111
}
114112

115113
/**

spring-integration-ws/src/main/java/org/springframework/integration/ws/SimpleWebServiceOutboundGateway.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -58,33 +58,32 @@ public class SimpleWebServiceOutboundGateway extends AbstractWebServiceOutboundG
5858
private boolean extractPayload = true;
5959

6060
public SimpleWebServiceOutboundGateway(DestinationProvider destinationProvider) {
61-
this(destinationProvider, null);
61+
this(destinationProvider, null, null);
6262
}
6363

6464
public SimpleWebServiceOutboundGateway(DestinationProvider destinationProvider,
65-
@Nullable SourceExtractor<?> sourceExtractor) {
66-
super(destinationProvider);
67-
this.sourceExtractor = (sourceExtractor != null) ? sourceExtractor : new DefaultSourceExtractor();
65+
SourceExtractor<?> sourceExtractor) {
66+
67+
this(destinationProvider, sourceExtractor, null);
6868
}
6969

7070
public SimpleWebServiceOutboundGateway(DestinationProvider destinationProvider,
7171
@Nullable SourceExtractor<?> sourceExtractor,
72-
WebServiceMessageFactory messageFactory) {
72+
@Nullable WebServiceMessageFactory messageFactory) {
7373
super(destinationProvider, messageFactory);
7474
this.sourceExtractor = (sourceExtractor != null) ? sourceExtractor : new DefaultSourceExtractor();
7575
}
7676

7777
public SimpleWebServiceOutboundGateway(String uri) {
78-
this(uri, null);
78+
this(uri, null, null);
7979
}
8080

81-
public SimpleWebServiceOutboundGateway(String uri, @Nullable SourceExtractor<?> sourceExtractor) {
82-
super(uri);
83-
this.sourceExtractor = (sourceExtractor != null) ? sourceExtractor : new DefaultSourceExtractor();
81+
public SimpleWebServiceOutboundGateway(String uri, SourceExtractor<?> sourceExtractor) {
82+
this(uri, sourceExtractor, null);
8483
}
8584

86-
public SimpleWebServiceOutboundGateway(String uri, @Nullable SourceExtractor<?> sourceExtractor,
87-
WebServiceMessageFactory messageFactory) {
85+
public SimpleWebServiceOutboundGateway(@Nullable String uri, @Nullable SourceExtractor<?> sourceExtractor,
86+
@Nullable WebServiceMessageFactory messageFactory) {
8887

8988
super(uri, messageFactory);
9089
this.sourceExtractor = (sourceExtractor != null) ? sourceExtractor : new DefaultSourceExtractor();

spring-integration-ws/src/main/java/org/springframework/integration/ws/dsl/BaseWsOutboundGatewaySpec.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,9 @@ public abstract class BaseWsOutboundGatewaySpec<
5858

5959
protected @Nullable DestinationProvider destinationProvider; // NOSONAR
6060

61-
@SuppressWarnings("NullAway.Init")
62-
protected String uri; // NOSONAR
61+
protected @Nullable String uri; // NOSONAR
6362

64-
@SuppressWarnings("NullAway.Init")
65-
protected WebServiceMessageFactory webServiceMessageFactory; // NOSONAR
63+
protected @Nullable WebServiceMessageFactory webServiceMessageFactory; // NOSONAR
6664

6765
private @Nullable SoapHeaderMapper headerMapper;
6866

spring-integration-ws/src/test/java/org/springframework/integration/ws/config/WebServiceOutboundGatewayParserTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ public void simpleGatewayWithDestinationProvider() {
382382
DirectFieldAccessor accessor = new DirectFieldAccessor(gateway);
383383
assertThat(accessor.getPropertyValue("destinationProvider")).as("Wrong DestinationProvider")
384384
.isEqualTo(stubProvider);
385-
assertThat(accessor.getPropertyValue("uri")).isEqualTo("");
385+
assertThat(accessor.getPropertyValue("uri")).isNull();
386386
Object destinationProviderObject = new DirectFieldAccessor(
387387
accessor.getPropertyValue("webServiceTemplate")).getPropertyValue("destinationProvider");
388388
assertThat(destinationProviderObject).as("Wrong DestinationProvider").isEqualTo(stubProvider);

0 commit comments

Comments
 (0)