Introduce IntegrationPattern abstraction
* Add `IntegrationPattern` contract to implement on the target components which represent particular EIP * Add `IntegrationPatternType` with an internal `IntegrationPatternCategory` to return from the component implementing `IntegrationPattern` * Parse `IntegrationPatternType` in the `IntegrationNode` for potential use on the UI for drawing a particular icon * More pattern representations * Clean up Checkstyle * Fix JavaDocs * Add `integrationPatternCategory` assertion into the `IntegrationGraphServerTests` * Add more IntegrationPattern implementations * Provide some delegation and overriding logic whenever we have components wrapping * Fix unused imports * Add `inbound_gateway` pattern indicator * Add conditional on `expectReply` to indicate a component as an `IntegrationPatternType.outbound_channel_adapter` or `IntegrationPatternType.outbound_gateway` * Make some code clean up in affected classes * Add a `gateway` type for `@MessagingGateway` * Comment the reason for `outbound_gateway` type in the `AbstractReplyProducingMessageHandler` * Bump `IntegrationGraphServer.GRAPH_VERSION` * Add new attributes into graph sample in the `graph.adoc` * Document an `IntegrationPattern` * Apply changes for version 5.3 * Rebased into `5.3-WIP` * Add a `whats-new.adoc` note about an `IntegrationPattern`
This commit is contained in:
@@ -29,6 +29,7 @@ import org.springframework.http.HttpEntity;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.integration.IntegrationPatternType;
|
||||
import org.springframework.integration.context.OrderlyShutdownCapable;
|
||||
import org.springframework.integration.expression.ExpressionUtils;
|
||||
import org.springframework.integration.gateway.MessagingGatewaySupport;
|
||||
@@ -341,7 +342,12 @@ public class BaseHttpInboundEndpoint extends MessagingGatewaySupport implements
|
||||
|
||||
@Override
|
||||
public String getComponentType() {
|
||||
return (this.expectReply) ? "http:inbound-gateway" : "http:inbound-channel-adapter";
|
||||
return this.expectReply ? "http:inbound-gateway" : "http:inbound-channel-adapter";
|
||||
}
|
||||
|
||||
@Override
|
||||
public IntegrationPatternType getIntegrationPatternType() {
|
||||
return this.expectReply ? super.getIntegrationPatternType() : IntegrationPatternType.inbound_channel_adapter;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -45,6 +45,7 @@ import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.integration.IntegrationPatternType;
|
||||
import org.springframework.integration.expression.ExpressionEvalMap;
|
||||
import org.springframework.integration.expression.ExpressionUtils;
|
||||
import org.springframework.integration.expression.ValueExpression;
|
||||
@@ -266,6 +267,11 @@ public abstract class AbstractHttpRequestExecutingMessageHandler extends Abstrac
|
||||
this.trustedSpel = trustedSpel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IntegrationPatternType getIntegrationPatternType() {
|
||||
return this.expectReply ? super.getIntegrationPatternType() : IntegrationPatternType.outbound_channel_adapter;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doInit() {
|
||||
BeanFactory beanFactory = getBeanFactory();
|
||||
@@ -319,7 +325,7 @@ public abstract class AbstractHttpRequestExecutingMessageHandler extends Abstrac
|
||||
doConvertSetCookie(headers);
|
||||
}
|
||||
|
||||
AbstractIntegrationMessageBuilder<?> replyBuilder = null;
|
||||
AbstractIntegrationMessageBuilder<?> replyBuilder;
|
||||
MessageBuilderFactory messageBuilderFactory = getMessageBuilderFactory();
|
||||
if (httpResponse.hasBody()) {
|
||||
Object responseBody = httpResponse.getBody();
|
||||
|
||||
Reference in New Issue
Block a user