Commit Graph

278 Commits

Author SHA1 Message Date
Ilayaperumal Gopinathan
b899ff0ffd Add StringDecoder for kafka messages
- Add StringDecoder for decoding kafka key/value messages

Refactor StringDecoder
2014-11-12 16:00:12 -05:00
Spring Buildmaster
bfdcd7ad1d [artifactory-release] Kafka Next development version 2014-11-12 09:23:19 -08:00
Spring Buildmaster
b28faa34d9 [artifactory-release] Release version Kafka 1.0.0.M2 2014-11-12 09:23:15 -08:00
Ilayaperumal Gopinathan
cad2be0496 INTEXT-111: Allow PP for Kafka producer context
JIRA: https://jira.spring.io/browse/INTEXT-111

 - Remove hard coded names for bean names at the producer context parser
 - Fix and update tests
 - Remove the use of `BeanFactory` to get the producerConfigurations in
KakfaProducerContext and use setter to set the producerConfigurations
 - Add logic to send the message from producer configuration when there
is no header specified for the topic and single producer configuration
is used.

Add tests to verify placeholder values

Fix code review comment and formatting

Polishing code style.

Add `KafkaProducerContext#theProducerConfiguration` for single `producerConfigurations` entry to avoid iterators
2014-11-12 11:20:49 +02:00
Artem Bilan
b8d986167c DSL: O-Gs: requiresReply="true" by default
Since many `outbound-gateway`s are designed to always expect replies and XML configuration
specifies `requires-reply="true"` for them by default, the DSL should follow with that.
2014-11-10 18:36:36 +02:00
Artem Bilan
57caf41fb2 DSL: Use generic AppListener fromIntFlowBPP
https://build.spring.io/browse/INTSAMPLES-NIGHTLY-JOB1-1189

Since `spring-integration-even` is optional dependency, the usage of `ApplicationEventListeningMessageProducer` is wrong.
Changing it to the generic `ApplicationListener` doesn't hurt for any inline components from Flow definition, when there is an interest to handle Events.
2014-11-10 13:04:40 +02:00
Artem Bilan
a04cdbf77f DSL: Register AELMP as AL in the AEM
Register `ApplicationEventListeningMessageProducer` as `ApplicationListener` in the `ApplicationEventMulticaster`

Since `ApplicationContext` invokes its `registerListeners()` before the `IntegrationFlowBeanPostProcessor` does its stuff,
the `ApplicationEventListeningMessageProducer` hasn't been visible as an `ApplicationListener` bean, when it is defined from `IntegrationFlow`,
hence add a logic to register it to the `ApplicationEventMulticaster` from `IntegrationFlowBeanPostProcessor`.
2014-11-08 19:53:36 +02:00
Christos Kapasakalidis
b44bf47d62 INTEXT-80 - FIX S3 ConnectionPoolTimeoutException
JIRA: https://jira.spring.io/browse/INTEXT-80

When synchronizing to local directory, getObject was called without
ever closing the InputStream that the SDK opens causing an
"org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting
for connection" exception. To fix that, after synchronization, the
inputStream of the s3Object is closed, causing the s3 client to release
the connection.
2014-11-06 17:35:30 +02:00
Artem Bilan
13ea2d9111 DSL: Fix RouterSpec for several subflows
The root of the issue is the order of bean registration in the beanFactory.
In this case the first subflows is registered correctly, but the next one has been registered after `RouterSubFlowMappingProvider`.
In this case the input `channel` of the next subflow hasn't been registered yet, hence `NPE` in the `this.router.setChannelMapping`
from `@PostConstruct` of `RouterSubFlowMappingProvider`.

Move the `RouterSubFlowMappingProvider` to end of `componentsToRegister` collection to give a chance to register all subflows before the `RouterSubFlowMappingProvider`.
2014-11-01 10:50:59 -04:00
Spring Buildmaster
e144feb1b3 [artifactory-release] Next development version 2014-10-31 12:07:29 -07:00
Spring Buildmaster
879024d97e [artifactory-release] SI Java DSL release version 1.0.0.RC1 2014-10-31 12:07:24 -07:00
Artem Bilan
c3477801e6 DSL: .gateway() SubFlow support 2014-10-31 19:15:26 +02:00
Artem Bilan
e6af7f7eba DSL: RecipientListRouter: Add SubFlow support 2014-10-31 13:43:26 +02:00
Artem Bilan
be9767b8a9 DSL: Introduce SubFlows
Add `subFlow` support for `router`s
Move some tests to separate domain classes
Fix some component registrations

DSL: Fix `SubFlow` registration according PR discussion

* Add IO plugin
* Fix SI 4.0 <-> 4.1 compatibility by `springIoCheck` results
* Further divide for tests to separate domain classes

DSL: Add `discardFlow` to the `.filter()`

Make `.router()` `subFlow`s as `always return to the main flow`

Add `.publishSubscribeChannel()` EIP-method with `.subscriber()`

to specify subscribers as `subFlow`s

Polishing
2014-10-30 16:57:19 -04:00
Artem Bilan
74102a022d DSL: Fix package tangles 2014-10-29 12:43:40 +02:00
Artem Bilan
4005ff874d Java DSL: Introduce FunctionExpression
Add support for `FunctionExpression` and apply it alongside with `expression`, where it is possible
For example:
```
.enrich(e -> e.requestChannel("enrichChannel")
		.requestPayload(Message::getPayload)
		.shouldClonePayload(false)
		.<Map<String, String>>headerFunction("foo", m -> m.getPayload().get("name")))
```
Remove redundant functional interfaces in favor of `Function`

FunctionExpression: Add JDBC Splitter sample

Minor Polishing to FunctionExpression

FunctionExpression: JavaDocs
2014-10-28 15:14:44 -04:00
Artem Bilan
cab77b5e76 Java DSL: Lambdas for Namespace Factories
* Add `Function` and `Consumer` copies from Java 8
* Rework some functional interfaces to `Function` or `Consumer`
* Introduce `Channels`, `MessageHandlers`, `MessageProducers`, `MessageSources`, `MessagingGateways`
- some convenient wrappers for Namespace Factories to be used from Lambdas
* Add Lambda-methods for those new wrappers
* Provide some refactoring
* Upgrade to Boot `1.1.7`

Java DSL: Lambda_Factories

* Change all `IntegrationFlows` methods to `.from()`
* Introduce internal `Function<?, ?>` extensions for particular cases, e.g. `MessageSourcesFunction`.
Now end-user has to cast Lambda parameter to concrete type to get desired factory, e.g.:
```
return IntegrationFlows.from((MessageProducers mp) -> mp.imap("imap://user:pw@host/INBOX"))
```
* rename `.fromFixedMessageChannel` to `.from()` with additional boolean flag
* Introduce `PollerFactory` Lambda for `.poller()` EIP-method on `EndpointSpec`
* Move `Pollers` stuff to the `.core` package to fix package tangle
* Refactoring for some code style
* Fix some typos
2014-10-07 15:11:32 +03:00
Artem Bilan
db05476acf Fix some ChannelName Late Resolution
Polishing
2014-09-17 15:21:16 +03:00
Gary Russell
87745d43a1 DSL: MailTests - SearchTermStrategy
Change lamda expression to a Method reference.
2014-09-10 10:55:47 -05:00
Spring Buildmaster
782999f576 [artifactory-release] Next development version 2014-09-08 04:46:06 -07:00
Spring Buildmaster
16b363a045 [artifactory-release] SI Java DSL Release version 1.0.0.M3 2014-09-08 04:46:02 -07:00
Gary Russell
070252961d DSL: Fix Tail Tests
Timing problem - set end(false), don't start adapter until file
is written.
2014-09-07 16:28:14 -05:00
Artem Bilan
ff4a229bc5 INTEXT-114 Fix outputChannel population AOP issue
JIRA: https://jira.spring.io/browse/INTEXT-114
2014-09-07 11:37:29 -05:00
Artem Bilan
eb5456f9d7 Upgrade to SI 4.0.4 and Boot 1.1.6 2014-09-05 13:02:42 +03:00
Artem Bilan
2ff83c61d9 INTEXT-113: Make .route() as non-last component
JIRA: https://jira.spring.io/browse/INTEXT-113

Previously `router` could be configured only as last component in the `IntegrationFlow` definition.

* Remove `defaultOutputChannel` options from `AbstractRouterSpec`
* Populate `outputChannel` to the `AbstractMessageRouter.defaultOutputChannel`, when there is more EIP-methods after `.route()`
* Rename EIP-method `.recipientListRoute()` to the `.routeToRecipients()`
* Make compatibility with SI 4.1
* Tested against SF 4.1
2014-09-04 11:19:54 +03:00
Artem Bilan
4b5bbb6412 DSL: Add enrichHeaders(Map) EIP-method
* Introduce `MapBuilder` and its custom inheritor - `MailHeadersBuilder`
* Add `HeaderEnricherSpec.headers(MapBuilder)` and `.headers(Map)`
* Change `MailTests` to use new `Mail.headers()` and new `IntegrationFlowDefinition.enrichHeaders(MapBuilder)`
* Change `mailapi` dependency to the IO's `javax.mail`

Polishing - Add headerExpressions()

More Polishing - Add Configurer

Polishing - PR Comments

- Move MapBuilderConfigurer to superclass.
- Move PropertiesBuilderConfigurer into PropertiesBuilder.
2014-08-27 18:08:52 -04:00
Artem Bilan
238c1f06b9 Polishing after rebase 2014-08-26 18:35:19 +03:00
Artem Bilan
f0bfe4656d DSL: Add support for IntegrationFlow Lambda
To simplify a bit the `direct` integration flow definition, the `IntegrationFlow` Lambda is introduced.

* Extract `IntegrationFlow` functional interface with `define(IntegrationFlowDefinition<?> flow)` method.
* Rename existing `IntegrationFlow` class to the `StandardIntegrationFlow` and move it to the inner class within `IntegrationFlowBuilder`
* Extract `IntegrationFlowDefinition` superclass for the `IntegrationFlowBuilder` to be used within `IntegrationFlow` Lambda
to hide `get()` method from end-users.
* Change `IntegrationFlowBeanPostProcessor` for a new logic around `IntegrationFlow` Lambda
* Rename `MessagingProducerSpec` to the `MessageProducerSpec`

Conflicts:
	spring-integration-java-dsl/src/main/java/org/springframework/integration/dsl/IntegrationFlowBuilder.java
2014-08-26 18:29:00 +03:00
Gary Russell
a5bb4e125f DSL: Mail - Add IMAP Idle Adapter
Polish IMAP test server and update it to support IDLE.

Polishing

Polishing - Fix IMAP Server

Changes required because receiver is now initialized.
2014-08-26 16:43:14 +03:00
Gary Russell
c67320e7bc DSL: Mail Polish - Add SearchTerm (lambda) To Test 2014-08-23 09:46:34 -04:00
Gary Russell
89cb4e137d DSL: Mail Inbound Adapters
Add POP3 Server for Tests

Polishing; PR Comments; IMAP4 Server
2014-08-23 10:42:15 +03:00
Gary Russell
ba4f52d59c DSL: Mail namespace & MailSendingMessageHandler
DSL:Add SMTP Mail Server

Polishing - PR Comments

DSL: Mail: add `PropertiesConfigurer` lambda

* Move `IntegrationFlowTests` to the `flows` package to avoid cross scanning for components
* Make `MailTests` as integration test and move `Mail.outboundAdapter` to the `IntegrationFlow` `@Bean` definition
2014-08-22 16:37:29 +03:00
Ilayaperumal Gopinathan
325ee9a4f3 Kafka: PP for consumer context bean
JIRA: https://jira.spring.io/browse/INTEXT-112
https://jira.spring.io/browse/INTEXT-111

 - Avoid using hardcoded bean names for consumer context
 - Remove Integer value topic streams count, instead use string value
   - This will allow placeholder values to be used for `streams` attribute
 - Set `group-id` as a bean name for consumer configuration bean only if
   the group id is specified explicitly. This will allow placeholder values
   not being used as a bean name.
 - Add test cases to verify multiple consumer configurations within the
   same consumer context.

Set consumerConfigurations as propertyValue

Better handling of consumerConfigurations

 - Add getConsumerConfiguration(String groupId) in KafkaConsumerContext
   - Fix tests
 - Add additional test case to check multi consumer contexts

Fix getConsumerConfiguration(groupId)

Polishing
2014-08-20 21:11:08 +03:00
Artem Bilan
5f4089db0a DSL-(S)FTP-Namespace-Builder-Factory
**DO NOT MERGE YET**.

There is need to provide tests on the matter.

(S)FTP Tests

* Add test cases for (s)ftp components based on embedded (S)FtpServers
* Upgrade some dependencies
* Fix bug in the `IntegrationFlowBeanPostProcessor` for the registration internal (a result of `MessageSourceSpec`) as a bean in the AC
2014-08-20 17:32:40 +03:00
Tim Ysewyn
1b1f95c004 Java DSL: Fix EnricherSpec to prevent assertions
Fixes: https://github.com/spring-projects/spring-integration-extensions/issues/101
2014-08-20 17:28:48 +03:00
Ilayaperumal Gopinathan
501209384b Make ConsumerContext disposable
- This will allow shutting down the consumer connector for the consumer
configuration when the associated context no longer exists.
2014-08-19 13:11:07 +03:00
Artem Bilan
4b5ba00536 Kafka-GH-92: Allow PP for the <topic-filter>
Fixes https://github.com/spring-projects/spring-integration-extensions/issues/92
2014-08-19 13:07:54 +03:00
Rob Harrop
d06e8cbec3 AWS: Updated to spring-integration to 4.0.3
Made the corresponding API changes.

Had to update jacoco to latest (0.7.1.blah) to get the tests to work correctly on OSX Java 8

Fixed JavaDoc errors show up by the Java 8 linter. Build passes

Bringing dependencies inline with Spring 4.0.6

Updated mockito to 1.9.5

Updated Hamcrest to 1.3

Updated aws-sdk to 1.8.7

Merge branch 'master' into integration-4.0

Reformatted gradle file inline with the existing standard

Switch back to using the milestone repo

Upgrade Gradle version to 1.12

Updated the schema references to use un-versioned refs

Updated author tags and copyright dates

AWS: SI-4.0 Polishing
2014-08-15 12:27:56 +03:00
Artem Bilan
8cc38bc1b7 DSL: Add File. Namespace Builder Factory
* Introduce `ComponentsRegistration` *marker* to extract internal components from the `IntegrationComponentSpec` to be registered as bean in the application context
* Add `ConsumerEndpointSpec#order(int order)` for the `order` of target `AbstractMessageHandler`
* Fix `AggregatorSpec` to use `DefaultAggregatingMessageGroupProcessor` by default
* Fix `IntegrationFlowBeanPostProcessor#generateBeanName` to check if `instance instanceof NamedComponent` and its `beanName` has been configured
using `IntegrationComponentSpec#id`
2014-08-13 13:50:09 +03:00
Gunnar Hillert
c9348c66f0 Splunk next development version 1.2.0.BUILD-SNAPSHOT 2014-07-24 11:53:39 -04:00
Spring Buildmaster
a0e93b4c94 [artifactory-release] Splunk Release version 1.1.0.RELEASE 2014-07-24 11:50:02 -04:00
Artem Bilan
d40d510e4c Splunk: Disable real-time search (GH-#39) 2014-07-24 17:26:34 +03:00
Soby Chacko
46d7567a77 INTEXT-104: Kafka: order for o-channel-adapter
JIRA: https://jira.spring.io/browse/INTEXT-104

`order` attribute now honored if kafka outbound adapter is connected to a subscribable channel
unit tests and samples are updated

Polishing: use `<xsd:attributeGroup ref="integration:channelAdapterAttributes"/>` for adapter tags to cover `SmartLifecycle` options.
2014-07-24 10:43:07 +03:00
Artem Bilan
7b59bc5b87 DSL: Add targetCompatibility = 1.6 2014-07-23 19:02:23 +03:00
Soby Chacko
07d45d69c1 INTEXT-110: Update Kafka version to 0.8.1.1
JIRA: https://jira.spring.io/browse/INTEXT-110

Perform the necessary API Changes (Partioner interface in Kafka is now non-genericized for Keys - concrete Object is the new type for Key)
Unit test updates for an internal Kafka class (MessageMetadata)
Updates for the samples Kafka project to use the new M2 snapshot, Spring 4.0 Messaging changes, other build related minor changes, etc.
2014-07-22 18:00:29 +03:00
Gary Russell
8dc41021b8 Update kafka to Spring Integration 4.0.3 2014-07-21 15:18:34 -04:00
Spring Buildmaster
7e0068b9df [artifactory-release] Next development version (kafka) 2014-07-21 12:16:41 -07:00
Spring Buildmaster
46b5cc438a [artifactory-release] Release version 1.0.0.M1 (kafka) 2014-07-21 12:16:37 -07:00
Artem Bilan
f6c9f1305b DSL: Fixes and polishing after upgrade
* Upgrade to SI 4.0.3 and Boot 1.1.4
* Add `HeaderEnricherSpec#headerChannelsToString()`
* Fix `DslRecipientListRouter` according core changes
* Fix `Amqp` and `Jms` modules for the bug around "All Message creators need a BeanFactory"
using fake `new DefaultListableBeanFactory()` for `(Amqp)JmsChannelFactoryBean`
2014-07-17 14:53:17 +03:00
Andy Wilkinson
24e8c59878 Add the Spring IO plugin to Splunk extension
Configure the Spring IO plugin such that it's only applied when the
build is run with -PplatformVersion=<version>. This platformVersion
property is used to determine the version of the Platform that will
be used when running the springIoCheck task. The plugin can be used
by running a build as follows:

./gradlew clean springIoCheck -PplatformVersion=1.1.0.BUILD-SNAPSHOT -PJDK7_HOME=… -PJDK8_HOME=…

This will test the project on JDK7 and JDK 8 using the dependencies
defined in the latest snapshot of Spring IO Platform 1.1.0.
2014-07-15 11:51:20 +01:00