@@ -129,7 +129,7 @@ public static Message onEnter(
129129 @ Advice .Argument (2 ) Duration timeout ,
130130 @ Advice .Local ("message" ) Message message )
131131 throws InterruptedException {
132- message = connection .request (NatsMessageWritableHeaders . create ( subject , body ) , timeout );
132+ message = connection .request (subject , null , body , timeout );
133133 return message ;
134134 }
135135
@@ -145,42 +145,18 @@ public static Message onExit(
145145 @ SuppressWarnings ("unused" )
146146 public static class RequestHeadersBodyAdvice {
147147
148- @ Advice .OnMethodEnter (skipOn = Advice . OnNonDefaultValue .class )
149- public static Message onEnter (
148+ @ Advice .OnMethodEnter (suppress = Throwable .class )
149+ public static void onEnter (
150150 @ Advice .This Connection connection ,
151151 @ Advice .Argument (0 ) String subject ,
152- @ Advice .Argument (1 ) Headers headers ,
152+ @ Advice .Argument (value = 1 , readOnly = false ) Headers headers ,
153153 @ Advice .Argument (2 ) byte [] body ,
154154 @ Advice .Argument (3 ) Duration timeout ,
155- @ Advice .Local ("message" ) Message message )
156- throws InterruptedException {
157- message =
158- connection .request (NatsMessageWritableHeaders .create (subject , headers , body ), timeout );
159- return message ;
160- }
161-
162- @ Advice .OnMethodExit (onThrowable = Throwable .class , suppress = Throwable .class )
163- public static Message onExit (
164- @ Advice .Return (readOnly = false ) Message returned ,
165- @ Advice .Local ("message" ) Message message ) {
166- returned = message ;
167- return returned ;
168- }
169- }
170-
171- @ SuppressWarnings ("unused" )
172- public static class RequestMessageAdvice {
173-
174- @ Advice .OnMethodEnter (suppress = Throwable .class )
175- public static void onEnter (
176- @ Advice .This Connection connection ,
177- @ Advice .Argument (value = 0 , readOnly = false ) Message message ,
178155 @ Advice .Local ("otelContext" ) Context otelContext ,
179156 @ Advice .Local ("otelScope" ) Scope otelScope ,
180157 @ Advice .Local ("natsRequest" ) NatsRequest natsRequest ) {
181- message = NatsMessageWritableHeaders .create (message );
182-
183- natsRequest = NatsRequest .create (connection , message );
158+ headers = NatsMessageWritableHeaders .create (headers );
159+ natsRequest = NatsRequest .create (connection , subject , null , headers , body );
184160 Context parentContext = Context .current ();
185161
186162 if (!PRODUCER_INSTRUMENTER .shouldStart (parentContext , natsRequest )) {
@@ -214,38 +190,40 @@ public static void onExit(
214190 }
215191
216192 @ SuppressWarnings ("unused" )
217- public static class RequestFutureBodyAdvice {
193+ public static class RequestMessageAdvice {
218194
219195 @ Advice .OnMethodEnter (skipOn = Advice .OnNonDefaultValue .class )
220- public static CompletableFuture < Message > onEnter (
196+ public static Message onEnter (
221197 @ Advice .This Connection connection ,
222- @ Advice .Argument (0 ) String subject ,
223- @ Advice .Argument (1 ) byte [] body ,
224- @ Advice .Local ("future" ) CompletableFuture <Message > future ) {
225- future = connection .request (NatsMessageWritableHeaders .create (subject , body ));
226- return future ;
198+ @ Advice .Argument (0 ) Message request ,
199+ @ Advice .Argument (1 ) Duration timeout ,
200+ @ Advice .Local ("response" ) Message response )
201+ throws InterruptedException {
202+ response =
203+ connection .request (
204+ request .getSubject (), request .getHeaders (), request .getData (), timeout );
205+ return response ;
227206 }
228207
229208 @ Advice .OnMethodExit (onThrowable = Throwable .class , suppress = Throwable .class )
230- public static CompletableFuture < Message > onExit (
231- @ Advice .Return (readOnly = false ) CompletableFuture < Message > messageFuture ,
232- @ Advice .Local ("future " ) CompletableFuture < Message > future ) {
233- messageFuture = future ;
234- return messageFuture ;
209+ public static Message onExit (
210+ @ Advice .Return (readOnly = false ) Message returned ,
211+ @ Advice .Local ("response " ) Message response ) {
212+ returned = response ;
213+ return returned ;
235214 }
236215 }
237216
238217 @ SuppressWarnings ("unused" )
239- public static class RequestFutureHeadersBodyAdvice {
218+ public static class RequestFutureBodyAdvice {
240219
241220 @ Advice .OnMethodEnter (skipOn = Advice .OnNonDefaultValue .class )
242221 public static CompletableFuture <Message > onEnter (
243222 @ Advice .This Connection connection ,
244223 @ Advice .Argument (0 ) String subject ,
245- @ Advice .Argument (1 ) Headers headers ,
246- @ Advice .Argument (2 ) byte [] body ,
224+ @ Advice .Argument (1 ) byte [] body ,
247225 @ Advice .Local ("future" ) CompletableFuture <Message > future ) {
248- future = connection .request (NatsMessageWritableHeaders . create ( subject , headers , body ) );
226+ future = connection .request (subject , null , body );
249227 return future ;
250228 }
251229
@@ -259,19 +237,20 @@ public static CompletableFuture<Message> onExit(
259237 }
260238
261239 @ SuppressWarnings ("unused" )
262- public static class RequestFutureMessageAdvice {
240+ public static class RequestFutureHeadersBodyAdvice {
263241
264242 @ Advice .OnMethodEnter (suppress = Throwable .class )
265243 public static void onEnter (
266244 @ Advice .This Connection connection ,
267- @ Advice .Argument (value = 0 , readOnly = false ) Message message ,
245+ @ Advice .Argument (0 ) String subject ,
246+ @ Advice .Argument (value = 1 , readOnly = false ) Headers headers ,
247+ @ Advice .Argument (2 ) byte [] body ,
268248 @ Advice .Local ("otelContext" ) Context otelContext ,
269249 @ Advice .Local ("otelParentContext" ) Context otelParentContext ,
270250 @ Advice .Local ("otelScope" ) Scope otelScope ,
271251 @ Advice .Local ("natsRequest" ) NatsRequest natsRequest ) {
272- message = NatsMessageWritableHeaders .create (message );
273-
274- natsRequest = NatsRequest .create (connection , message );
252+ headers = NatsMessageWritableHeaders .create (headers );
253+ natsRequest = NatsRequest .create (connection , subject , null , headers , body );
275254 otelParentContext = Context .current ();
276255
277256 if (!PRODUCER_INSTRUMENTER .shouldStart (otelParentContext , natsRequest )) {
@@ -308,15 +287,14 @@ public static void onExit(
308287 }
309288
310289 @ SuppressWarnings ("unused" )
311- public static class RequestTimeoutFutureBodyAdvice {
290+ public static class RequestFutureMessageAdvice {
312291
313292 @ Advice .OnMethodEnter (skipOn = Advice .OnNonDefaultValue .class )
314293 public static CompletableFuture <Message > onEnter (
315294 @ Advice .This Connection connection ,
316- @ Advice .Argument (0 ) String subject ,
317- @ Advice .Argument (1 ) byte [] body ,
295+ @ Advice .Argument (0 ) Message message ,
318296 @ Advice .Local ("future" ) CompletableFuture <Message > future ) {
319- future = connection .request (NatsMessageWritableHeaders . create ( subject , body ));
297+ future = connection .request (message . getSubject (), message . getHeaders (), message . getData ( ));
320298 return future ;
321299 }
322300
@@ -330,16 +308,16 @@ public static CompletableFuture<Message> onExit(
330308 }
331309
332310 @ SuppressWarnings ("unused" )
333- public static class RequestTimeoutFutureHeadersBodyAdvice {
311+ public static class RequestTimeoutFutureBodyAdvice {
334312
335313 @ Advice .OnMethodEnter (skipOn = Advice .OnNonDefaultValue .class )
336314 public static CompletableFuture <Message > onEnter (
337315 @ Advice .This Connection connection ,
338316 @ Advice .Argument (0 ) String subject ,
339- @ Advice .Argument (1 ) Headers headers ,
340- @ Advice .Argument (2 ) byte [] body ,
317+ @ Advice .Argument (1 ) byte [] body ,
318+ @ Advice .Argument (2 ) Duration timeout ,
341319 @ Advice .Local ("future" ) CompletableFuture <Message > future ) {
342- future = connection .request ( NatsMessageWritableHeaders . create ( subject , headers , body ) );
320+ future = connection .requestWithTimeout ( subject , null , body , timeout );
343321 return future ;
344322 }
345323
@@ -353,19 +331,20 @@ public static CompletableFuture<Message> onExit(
353331 }
354332
355333 @ SuppressWarnings ("unused" )
356- public static class RequestTimeoutFutureMessageAdvice {
334+ public static class RequestTimeoutFutureHeadersBodyAdvice {
357335
358336 @ Advice .OnMethodEnter (suppress = Throwable .class )
359337 public static void onEnter (
360338 @ Advice .This Connection connection ,
361- @ Advice .Argument (value = 0 , readOnly = false ) Message message ,
339+ @ Advice .Argument (0 ) String subject ,
340+ @ Advice .Argument (value = 1 , readOnly = false ) Headers headers ,
341+ @ Advice .Argument (2 ) byte [] body ,
362342 @ Advice .Local ("otelContext" ) Context otelContext ,
363343 @ Advice .Local ("otelParentContext" ) Context otelParentContext ,
364344 @ Advice .Local ("otelScope" ) Scope otelScope ,
365345 @ Advice .Local ("natsRequest" ) NatsRequest natsRequest ) {
366- message = NatsMessageWritableHeaders .create (message );
367-
368- natsRequest = NatsRequest .create (connection , message );
346+ headers = NatsMessageWritableHeaders .create (headers );
347+ natsRequest = NatsRequest .create (connection , subject , null , headers , body );
369348 otelParentContext = Context .current ();
370349
371350 if (!PRODUCER_INSTRUMENTER .shouldStart (otelParentContext , natsRequest )) {
@@ -400,4 +379,28 @@ public static void onExit(
400379 }
401380 }
402381 }
382+
383+ @ SuppressWarnings ("unused" )
384+ public static class RequestTimeoutFutureMessageAdvice {
385+
386+ @ Advice .OnMethodEnter (skipOn = Advice .OnNonDefaultValue .class )
387+ public static CompletableFuture <Message > onEnter (
388+ @ Advice .This Connection connection ,
389+ @ Advice .Argument (value = 0 , readOnly = false ) Message message ,
390+ @ Advice .Argument (1 ) Duration timeout ,
391+ @ Advice .Local ("future" ) CompletableFuture <Message > future ) {
392+ future =
393+ connection .requestWithTimeout (
394+ message .getSubject (), message .getHeaders (), message .getData (), timeout );
395+ return future ;
396+ }
397+
398+ @ Advice .OnMethodExit (onThrowable = Throwable .class , suppress = Throwable .class )
399+ public static CompletableFuture <Message > onExit (
400+ @ Advice .Return (readOnly = false ) CompletableFuture <Message > messageFuture ,
401+ @ Advice .Local ("future" ) CompletableFuture <Message > future ) {
402+ messageFuture = future ;
403+ return messageFuture ;
404+ }
405+ }
403406}
0 commit comments