private MessageBuilder adjustMessageHeaders(TaskLaunchRequestContext taskLaunchRequestContext, MessageBuilder builder) { builder.setHeader(TaskLaunchRequestContext.HEADER_NAME, taskLaunchRequestContext); if (listFilesRotator != null) { String[] headerNames = new String[listFilesRotator.headers().size()]; builder.removeHeaders((String[]) listFilesRotator.headers().keySet().toArray(headerNames)); } return builder; }
@Bean @ConditionalOnProperty(name = "sftp.task-launcher-output", havingValue = "true") @IdempotentReceiver("idempotentReceiverInterceptor") @ServiceActivator(inputChannel = "sftpFileTaskLaunchChannel", outputChannel = Source.OUTPUT) public MessageProcessor<Message<?>> standaloneTaskLaunchRequestTransformer() { return message -> { TaskLaunchRequest outboundPayload = new TaskLaunchRequest(sftpSourceTaskProperties.getResourceUri(), getCommandLineArgs(message), getEnvironmentProperties(), getDeploymentProperties(), null); MessageBuilder<TaskLaunchRequest> builder = MessageBuilder.withPayload(outboundPayload) .copyHeaders(message.getHeaders()) .setHeader(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON); if (this.sftpSourceProperties.isMultiSource()) { outboundPayload.getEnvironmentProperties().put(SFTP_HOST_PROPERTY_KEY, (String) message.getHeaders().get(SFTP_HOST_PROPERTY_KEY)); outboundPayload.getEnvironmentProperties().put(SFTP_PORT_PROPERTY_KEY, String.valueOf(message.getHeaders().get(SFTP_PORT_PROPERTY_KEY))); outboundPayload.getEnvironmentProperties().put(SFTP_USERNAME_PROPERTY_KEY, (String) message.getHeaders().get(SFTP_USERNAME_PROPERTY_KEY)); outboundPayload.getEnvironmentProperties().put(SFTP_PASSWORD_PROPERTY_KEY, (String) message.getHeaders().get(SFTP_PASSWORD_PROPERTY_KEY)); outboundPayload.getEnvironmentProperties().put(SFTP_SELECTED_SERVER_PROPERTY_KEY, (String) message.getHeaders().get(SFTP_SELECTED_SERVER_PROPERTY_KEY)); builder.removeHeaders(SFTP_HOST_PROPERTY_KEY, SFTP_PORT_PROPERTY_KEY, SFTP_USERNAME_PROPERTY_KEY, SFTP_PASSWORD_PROPERTY_KEY, SFTP_SELECTED_SERVER_PROPERTY_KEY); } return builder.build(); }; }