Skip to content

Commit a38000b

Browse files
committed
adjust name and default expression for executionId
issue spring-projects#3501
1 parent d5c4dc7 commit a38000b

File tree

1 file changed

+11
-16
lines changed

1 file changed

+11
-16
lines changed

spring-integration-graphql/src/main/java/org/springframework/integration/graphql/outbound/GraphQlMessageHandler.java

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import java.util.Locale;
2121
import java.util.Map;
2222
import java.util.Objects;
23-
import java.util.UUID;
2423

2524
import org.springframework.beans.factory.BeanFactory;
2625
import org.springframework.expression.Expression;
@@ -29,6 +28,7 @@
2928
import org.springframework.graphql.GraphQlService;
3029
import org.springframework.graphql.RequestInput;
3130
import org.springframework.integration.expression.ExpressionUtils;
31+
import org.springframework.integration.expression.FunctionExpression;
3232
import org.springframework.integration.expression.SupplierExpression;
3333
import org.springframework.integration.handler.AbstractReplyProducingMessageHandler;
3434
import org.springframework.lang.Nullable;
@@ -57,7 +57,7 @@ public class GraphQlMessageHandler extends AbstractReplyProducingMessageHandler
5757
@Nullable
5858
private Locale locale;
5959

60-
private Expression idExpression = new SupplierExpression<>(() -> null);
60+
private Expression executionIdExpression = new FunctionExpression<Message<?>>(message -> message.getHeaders().getId());
6161

6262
public GraphQlMessageHandler(final GraphQlService graphQlService) {
6363
Assert.notNull(graphQlService, "'graphQlService' must not be null");
@@ -119,12 +119,12 @@ public void setLocale(@Nullable Locale locale) {
119119
}
120120

121121
/**
122-
* Set a SpEL expression to evaluate Id for GraphQL Operation Request to execute.
123-
* @param idExpression the idExpression to use.
122+
* Set a SpEL expression to evaluate Execution Id for GraphQL Operation Request to execute.
123+
* @param executionIdExpression the executionIdExpression to use.
124124
*/
125-
public void setIdExpression(Expression idExpression) {
126-
Assert.notNull(idExpression, "'idExpression' must not be null");
127-
this.idExpression = idExpression;
125+
public void setIdExpression(Expression executionIdExpression) {
126+
Assert.notNull(executionIdExpression, "'executionIdExpression' must not be null");
127+
this.executionIdExpression = executionIdExpression;
128128
}
129129

130130
@Override
@@ -143,11 +143,11 @@ protected Object handleRequestMessage(Message<?> requestMessage) {
143143
}
144144
else {
145145
Assert.notNull(this.operationExpression, "'operationExpression' must not be null");
146-
Assert.notNull(this.idExpression, "'idExpression' must not be null");
146+
Assert.notNull(this.executionIdExpression, "'executionIdExpression' must not be null");
147147
String query = evaluateOperationExpression(requestMessage);
148148
String operationName = evaluateOperationNameExpression(requestMessage);
149149
Map<String, Object> variables = evaluateVariablesExpression(requestMessage);
150-
String id = evaluateIdExpression(requestMessage);
150+
String id = evaluateExecutionIdExpression(requestMessage);
151151
requestInput = new RequestInput(query, operationName, variables, this.locale, id);
152152
}
153153

@@ -171,13 +171,8 @@ private Map<String, Object> evaluateVariablesExpression(Message<?> message) {
171171
return this.variablesExpression.getValue(this.evaluationContext, message, Map.class);
172172
}
173173

174-
private String evaluateIdExpression(Message<?> message) {
175-
String id = this.idExpression.getValue(this.evaluationContext, message, String.class);
176-
if (id == null) {
177-
return Objects.requireNonNull(message.getHeaders().get(MessageHeaders.ID)).toString();
178-
}
179-
180-
return id;
174+
private String evaluateExecutionIdExpression(Message<?> message) {
175+
return this.executionIdExpression.getValue(this.evaluationContext, message, String.class);
181176
}
182177

183178
}

0 commit comments

Comments
 (0)