Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

DataSet

...

Component

Include Page
Testing Summary Include
Testing Summary Include

The DataSet component provides a mechanism to easily perform load & soak testing of your system. It works by allowing you to create DataSet instances both as a source of messages and as a way to assert that the data set is received.

Camel will use the throughput logger when sending dataset's.

URI format

Code Block


{include:Testing Summary Include}

The DataSet component provides a mechanism to easily perform load & soak testing of your system. It works by allowing you to create [DataSet instances|http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/dataset/DataSet.html] both as a source of messages and as a way to assert that the data set is received.

Camel will use the [throughput logger|Log] when sending dataset's. 
  
h3. URI format

{code}
dataset:name[?options]
{code}

Where *name* is used to find the [DataSet instance|http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/dataset/DataSet.html] in the [Registry]

Camel ships with a support implementation of {{

Where name is used to find the DataSet instance in the Registry

Camel ships with a support implementation of org.apache.camel.component.dataset.DataSet

...

,

...

the

...

org.apache.camel.component.dataset.DataSetSupport

...

class,

...

that

...

can

...

be

...

used

...

as

...

a

...

base

...

for

...

implementing

...

your

...

own

...

DataSet.

...

Camel

...

also

...

ships

...

with

...

a

...

default

...

implementation,

...

the

...

org.apache.camel.component.dataset.SimpleDataSet

...

that

...

can

...

be

...

used

...

for

...

testing.

Options

Wiki Markup


h3. Options
{div:class=confluenceTableSmall}
|| Option || Default || Description ||
| {{produceDelay}} | 3 | Allows a delay in ms to be specified, which causes producers to pause in order to simulate slow producers. Uses a minimum of 3 ms delay unless you set this option to -1 to force no delay at all. |
| {{consumeDelay}} | 0 | Allows a delay in ms to be specified, which causes consumers to pause in order to simulate slow consumers. |
| {{preloadSize}} | 0 | Sets how many messages should be preloaded (sent) before the route completes its initialization. |
| {{initialDelay}} | 1000 | *Camel 2.1:* Time period in millis to wait before starting sending messages. |
| {{minRate}} | 0 | Wait until the DataSet contains at least this number of messages |
{div}

You

...

can

...

append

...

query

...

options

...

to

...

the

...

URI

...

in

...

the

...

following

...

format,

...

?option=value&option=value&...

Configuring DataSet

Camel will lookup in the Registry for a bean implementing the DataSet interface. So you can register your own DataSet as:

Code Block
xml
xml
}}

h3. Configuring DataSet
Camel will lookup in the [Registry] for a bean implementing the DataSet interface. So you can register your own DataSet as:
{code:xml}
   <bean id="myDataSet" class="com.mycompany.MyDataSet">
      <property name="size" value="100"/>
   </bean>
{code}

h3. Example

For 

Example

For example,

...

to

...

test

...

that

...

a

...

set

...

of

...

messages

...

are

...

sent

...

to

...

a

...

queue

...

and

...

then

...

consumed

...

from

...

the

...

queue

...

without

...

losing

...

any

...

messages:

{
Code Block
}
// send the dataset to a queue
from("dataset:foo").to("activemq:SomeQueue");

// now lets test that the messages are consumed correctly
from("activemq:SomeQueue").to("dataset:foo");
{code}

The

...

above

...

would

...

look

...

in

...

the

...

Registry

...

to

...

find

...

the

...

foo

...

DataSet

...

instance

...

which

...

is

...

used

...

to

...

create

...

the

...

messages.

...

Then

...

you

...

create

...

a

...

DataSet

...

implementation,

...

such

...

as

...

using

...

the

...

SimpleDataSet

...

as

...

described

...

below,

...

configuring

...

things

...

like

...

how

...

big

...

the

...

data

...

set

...

is

...

and

...

what

...

the

...

messages

...

look

...

like

...

etc.

...

Properties

...

on SimpleDataSet

Wiki Markup
 SimpleDataSet
{div:class=confluenceTableSmall}
||Property||Type||Default|| Description||
|{{defaultBody}} | {{Object}} | {{<hello>world!</hello>}} | Specifies the default message body. For SimpleDataSet it is a constant payload; though if you want to create custom payloads per message, create your own derivation of {{DataSetSupport}}. |
|{{reportCount}} | {{long}}  | {{-1}} | Specifies the number of messages to be received before reporting progress. Useful for showing progress of a large load test. If < 0, then {{size}} / 5, if is 0 then {{size}}, else set to {{reportCount}} value.|
|{{size}} | {{long}}  | {{10}} |Specifies how many messages to send/consume.|
{div}

{include:Endpoint See Also}
* [Spring Testing]
Include Page
Endpoint See Also
Endpoint See Also