49
49
import org .springframework .util .ObjectUtils ;
50
50
51
51
/**
52
- * Default, package-private {@link RSocketRequester} implementation .
52
+ * Default implementation of {@link RSocketRequester}.
53
53
*
54
54
* @author Rossen Stoyanchev
55
55
* @since 5.2
56
56
*/
57
57
final class DefaultRSocketRequester implements RSocketRequester {
58
58
59
- static final MimeType COMPOSITE_METADATA = new MimeType ("message" , "x.rsocket.composite-metadata.v0" );
60
-
61
- static final MimeType ROUTING = new MimeType ("message" , "x.rsocket.routing.v0" );
62
-
63
-
64
59
/** For route variable replacement. */
65
60
private static final Pattern VARS_PATTERN = Pattern .compile ("\\ {([^/]+?)\\ }" );
66
61
@@ -114,7 +109,7 @@ public MimeType metadataMimeType() {
114
109
public RequestSpec route (String route , Object ... vars ) {
115
110
Assert .notNull (route , "'route' is required" );
116
111
route = expand (route , vars );
117
- return new DefaultRequestSpec (route , metadataMimeType (). equals ( COMPOSITE_METADATA ) ? ROUTING : null );
112
+ return new DefaultRequestSpec (route , isCompositeMetadata () ? MetadataExtractor . ROUTING : null );
118
113
}
119
114
120
115
private static String expand (String route , Object ... vars ) {
@@ -134,6 +129,10 @@ private static String expand(String route, Object... vars) {
134
129
return sb .toString ();
135
130
}
136
131
132
+ private boolean isCompositeMetadata () {
133
+ return metadataMimeType ().equals (MetadataExtractor .COMPOSITE_METADATA );
134
+ }
135
+
137
136
@ Override
138
137
public RequestSpec metadata (Object metadata , @ Nullable MimeType mimeType ) {
139
138
return new DefaultRequestSpec (metadata , mimeType );
@@ -154,16 +153,12 @@ private class DefaultRequestSpec implements RequestSpec {
154
153
private final Map <Object , MimeType > metadata = new LinkedHashMap <>(4 );
155
154
156
155
157
- public DefaultRequestSpec (Object metadata , @ Nullable MimeType mimeType ) {
156
+ DefaultRequestSpec (Object metadata , @ Nullable MimeType mimeType ) {
158
157
mimeType = (mimeType == null && !isCompositeMetadata () ? metadataMimeType () : mimeType );
159
158
Assert .notNull (mimeType , "MimeType is required for composite metadata" );
160
159
metadata (metadata , mimeType );
161
160
}
162
161
163
- private boolean isCompositeMetadata () {
164
- return metadataMimeType ().equals (COMPOSITE_METADATA );
165
- }
166
-
167
162
@ Override
168
163
public RequestSpec metadata (Object metadata , MimeType mimeType ) {
169
164
Assert .notNull (metadata , "Metadata content is required" );
@@ -184,22 +179,27 @@ public ResponseSpec data(Object data) {
184
179
public ResponseSpec data (Object producer , Class <?> elementClass ) {
185
180
Assert .notNull (producer , "'producer' must not be null" );
186
181
Assert .notNull (elementClass , "'elementClass' must not be null" );
187
- ReactiveAdapter adapter = strategies . reactiveAdapterRegistry (). getAdapter (producer .getClass ());
182
+ ReactiveAdapter adapter = getAdapter (producer .getClass ());
188
183
Assert .notNull (adapter , "'producer' type is unknown to ReactiveAdapterRegistry" );
189
184
return toResponseSpec (adapter .toPublisher (producer ), ResolvableType .forClass (elementClass ));
190
185
}
191
186
187
+ @ Nullable
188
+ private ReactiveAdapter getAdapter (Class <?> aClass ) {
189
+ return strategies .reactiveAdapterRegistry ().getAdapter (aClass );
190
+ }
191
+
192
192
@ Override
193
193
public ResponseSpec data (Object producer , ParameterizedTypeReference <?> elementTypeRef ) {
194
194
Assert .notNull (producer , "'producer' must not be null" );
195
195
Assert .notNull (elementTypeRef , "'elementTypeRef' must not be null" );
196
- ReactiveAdapter adapter = strategies . reactiveAdapterRegistry (). getAdapter (producer .getClass ());
196
+ ReactiveAdapter adapter = getAdapter (producer .getClass ());
197
197
Assert .notNull (adapter , "'producer' type is unknown to ReactiveAdapterRegistry" );
198
198
return toResponseSpec (adapter .toPublisher (producer ), ResolvableType .forType (elementTypeRef ));
199
199
}
200
200
201
201
private ResponseSpec toResponseSpec (Object input , ResolvableType elementType ) {
202
- ReactiveAdapter adapter = strategies . reactiveAdapterRegistry (). getAdapter (input .getClass ());
202
+ ReactiveAdapter adapter = getAdapter (input .getClass ());
203
203
Publisher <?> publisher ;
204
204
if (input instanceof Publisher ) {
205
205
publisher = (Publisher <?>) input ;
0 commit comments