13
13
* See the License for the specific language governing permissions and
14
14
* limitations under the License.
15
15
*/
16
+
16
17
package org .springframework .http .client .reactive ;
17
18
18
19
import java .util .function .Consumer ;
@@ -45,19 +46,16 @@ public class ReactorResourceFactory implements InitializingBean, DisposableBean
45
46
@ Nullable
46
47
private Consumer <HttpResources > globalResourcesConsumer ;
47
48
48
-
49
49
private Supplier <ConnectionProvider > connectionProviderSupplier = () -> ConnectionProvider .elastic ("webflux" );
50
50
51
51
private Supplier <LoopResources > loopResourcesSupplier = () -> LoopResources .create ("webflux-http" );
52
52
53
-
54
53
@ Nullable
55
54
private ConnectionProvider connectionProvider ;
56
55
57
56
@ Nullable
58
57
private LoopResources loopResources ;
59
58
60
-
61
59
private boolean manageConnectionProvider = false ;
62
60
63
61
private boolean manageLoopResources = false ;
@@ -76,6 +74,14 @@ public void setUseGlobalResources(boolean useGlobalResources) {
76
74
this .useGlobalResources = useGlobalResources ;
77
75
}
78
76
77
+ /**
78
+ * Whether this factory exposes the global
79
+ * {@link reactor.netty.http.HttpResources HttpResources} holder.
80
+ */
81
+ public boolean isUseGlobalResources () {
82
+ return this .useGlobalResources ;
83
+ }
84
+
79
85
/**
80
86
* Add a Consumer for configuring the global Reactor Netty resources on
81
87
* startup. When this option is used, {@link #setUseGlobalResources} is also
@@ -97,7 +103,7 @@ public void addGlobalResourcesConsumer(Consumer<HttpResources> consumer) {
97
103
* {@link #setConnectionProvider(ConnectionProvider)} is set.
98
104
* @param supplier the supplier to use
99
105
*/
100
- public void setConnectionProviderSupplier (@ Nullable Supplier <ConnectionProvider > supplier ) {
106
+ public void setConnectionProviderSupplier (Supplier <ConnectionProvider > supplier ) {
101
107
this .connectionProviderSupplier = supplier ;
102
108
}
103
109
@@ -109,7 +115,7 @@ public void setConnectionProviderSupplier(@Nullable Supplier<ConnectionProvider>
109
115
* {@link #setLoopResources(LoopResources)} is set.
110
116
* @param supplier the supplier to use
111
117
*/
112
- public void setLoopResourcesSupplier (@ Nullable Supplier <LoopResources > supplier ) {
118
+ public void setLoopResourcesSupplier (Supplier <LoopResources > supplier ) {
113
119
this .loopResourcesSupplier = supplier ;
114
120
}
115
121
@@ -118,50 +124,41 @@ public void setLoopResourcesSupplier(@Nullable Supplier<LoopResources> supplier)
118
124
* {@link ConnectionProvider} instance.
119
125
* @param connectionProvider the connection provider to use as is
120
126
*/
121
- public void setConnectionProvider (@ Nullable ConnectionProvider connectionProvider ) {
127
+ public void setConnectionProvider (ConnectionProvider connectionProvider ) {
122
128
this .connectionProvider = connectionProvider ;
123
129
}
124
130
125
131
/**
126
- * Use this option when you want to provide an externally managed
127
- * {@link LoopResources} instance.
128
- * @param loopResources the loop resources to use as is
129
- */
130
- public void setLoopResources (@ Nullable LoopResources loopResources ) {
131
- this .loopResources = loopResources ;
132
- }
133
-
134
-
135
- /**
136
- * Whether this factory exposes the global
137
- * {@link reactor.netty.http.HttpResources HttpResources} holder.
132
+ * Return the configured {@link ConnectionProvider}.
138
133
*/
139
- public boolean isUseGlobalResources () {
140
- return this .useGlobalResources ;
134
+ public ConnectionProvider getConnectionProvider () {
135
+ Assert .state (this .connectionProvider != null , "ConnectionProvider not initialized yet" );
136
+ return this .connectionProvider ;
141
137
}
142
138
143
139
/**
144
- * Return the configured {@link ConnectionProvider}.
140
+ * Use this option when you want to provide an externally managed
141
+ * {@link LoopResources} instance.
142
+ * @param loopResources the loop resources to use as is
145
143
*/
146
- public ConnectionProvider getConnectionProvider () {
147
- Assert .notNull (this .connectionProvider , "ConnectionProvider not initialized yet via InitializingBean." );
148
- return this .connectionProvider ;
144
+ public void setLoopResources (LoopResources loopResources ) {
145
+ this .loopResources = loopResources ;
149
146
}
150
147
151
148
/**
152
149
* Return the configured {@link LoopResources}.
153
150
*/
154
151
public LoopResources getLoopResources () {
155
- Assert .notNull (this .loopResources , "LoopResources not initialized yet via InitializingBean. " );
152
+ Assert .state (this .loopResources != null , "LoopResources not initialized yet" );
156
153
return this .loopResources ;
157
154
}
158
155
159
156
160
157
@ Override
161
- public void afterPropertiesSet () throws Exception {
158
+ public void afterPropertiesSet () {
162
159
if (this .useGlobalResources ) {
163
160
Assert .isTrue (this .loopResources == null && this .connectionProvider == null ,
164
- "'useGlobalResources' is mutually exclusive with explicitly configured resources. " );
161
+ "'useGlobalResources' is mutually exclusive with explicitly configured resources" );
165
162
HttpResources httpResources = HttpResources .get ();
166
163
if (this .globalResourcesConsumer != null ) {
167
164
this .globalResourcesConsumer .accept (httpResources );
0 commit comments