Versions Compared

Key

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

...

JavaSpace

...

Component

...

Available

...

as

...

of

...

Camel

...

2.1

...

The

...

javaspace

...

component

...

is

...

a

...

transport

...

for

...

working

...

with

...

any

...

JavaSpace

...

compliant

...

implementation

...

and

...

this

...

component

...

has

...

been

...

tested

...

with

...

both

...

the

...

Blitz

...

implementation

...

and

...

the

...

GigaSpace

...

implementation

...

.
This component can be used for sending and receiving any object inheriting from the Jini net.jini.core.entry.Entry

...

class.

...

It

...

is

...

also

...

possible

...

to

...

pass

...

the

...

bean

...

ID

...

of

...

a

...

template

...

that

...

can

...

be

...

used

...

for

...

reading/taking

...

the

...

entries

...

from

...

the

...

space.

...


This

...

component

...

can

...

be

...

used

...

for

...

sending/receiving

...

any

...

serializable

...

object

...

acting

...

as

...

a

...

sort

...

of

...

generic

...

transport.

...

The

...

JavaSpace

...

component

...

contains

...

a

...

special

...

optimization

...

for

...

dealing

...

with

...

the

...

BeanExchange

...

.

...

It

...

can

...

be

...

used

...

to

...

invoke

...

a

...

POJO

...

remotely,

...

using

...

a

...

JavaSpace

...

as

...

a

...

transport.

...


This

...

latter

...

feature

...

can

...

provide

...

a

...

simple

...

implementation

...

of

...

the

...

master/worker

...

pattern,

...

where

...

a

...

POJO

...

provides

...

the

...

business

...

logic

...

for

...

the

...

worker.

...


Look

...

at

...

the

...

test

...

cases

...

for

...

examples

...

of

...

various

...

use

...

cases

...

for

...

this

...

component.

...

Maven

...

users

...

will

...

need

...

to

...

add

...

the

...

following

...

dependency

...

to

...

their

...

pom.xml

...

for

...

this

...

component:

Code Block
xml
xml

{code:xml}
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-javaspace</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
{code}

h3. URI format

{

URI format

Code Block
code}
javaspace:jini://host[?options]
{code}

You

...

can

...

append

...

query

...

options

...

to

...

the

...

URI

...

in

...

the

...

following

...

format,

...

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

Options

Wiki Markup
}}

h3. Options
{div:class=confluenceTableSmall}
|| Name || Default Value || Description ||
| {{spaceName}}  | {{null}} | Specifies the JavaSpace name. |
| {{verb}}  | {{take}} | Specifies the verb for getting JavaSpace entries. The values can be: {{take}} or {{read}}. |
| {{transactional}}  | {{false}} | If {{true}}, sending and receiving entries is performed within a transaction. |
| {{transactionalTimeout}}  | {{Long.MAX_VALUE}} | Specifies the transaction timeout.  |
| {{concurrentConsumers}}  | {{1}} | Specifies the number of concurrent consumers getting entries from the JavaSpace. |
| {{templateId}}  | {{null}} | If present, this option specifies the Spring bean ID of the template to use for reading/taking entries. |
{div}

h3. Examples

h4. Sending and Receiving Entries

{code}

Examples

Sending and Receiving Entries

Code Block
// sending route
from("direct:input")
    .to("javaspace:jini://localhost?spaceName=mySpace");

// receiving Route
from("javaspace:jini://localhost?spaceName=mySpace&templateId=template&verb=take&concurrentConsumers=1")
    .to("mock:foo");
{code}

In

...

this

...

case

...

the

...

payload

...

can

...

be

...

any

...

object

...

that

...

inherits

...

from

...

the

...

Jini

...

Entry

...

type.

...

Sending

...

and

...

receiving

...

serializable

...

objects

...

Using

...

the

...

preceding

...

routes,

...

it

...

is

...

also

...

possible

...

to

...

send

...

and

...

receive

...

any

...

serializable

...

object.

...

The

...

JavaSpace

...

component

...

detects

...

that

...

the

...

payload

...

is

...

not

...

a

...

Jini

...

Entry

...

and

...

then

...

it

...

automatically

...

wraps

...

the

...

payload

...

with

...

a

...

Camel

...

Jini

...

Entry

...

.

...

In

...

this

...

way,

...

a

...

JavaSpace

...

can

...

be

...

used

...

as

...

a

...

generic

...

transport

...

mechanism.

...

Using

...

JavaSpace

...

as

...

a

...

remote

...

invocation

...

transport

...

The

...

JavaSpace

...

component

...

has

...

been

...

tailored

...

to

...

work

...

in

...

combination

...

with

...

the

...

Camel

...

bean

...

component.

...

It

...

is

...

therefore

...

possible

...

to

...

call

...

a

...

remote

...

POJO

...

using

...

JavaSpace

...

as

...

the

...

transport:

{
Code Block
}
// client side
from("direct:input")
    .to("javaspace:jini://localhost?spaceName=mySpace");

// server side
from("javaspace:jini://localhost?concurrentConsumers=10&spaceName=mySpace")
    .to("mock:foo");
{code}

In

...

the

...

code

...

there

...

are

...

two

...

test

...

cases

...

showing

...

how

...

to

...

use

...

a

...

POJO

...

to

...

realize

...

the

...

master/worker

...

pattern.

...

The

...

idea

...

is

...

to

...

use

...

the

...

POJO

...

to

...

provide

...

the

...

business

...

logic

...

and

...

rely

...

on

...

Camel

...

for

...

sending/receiving

...

requests/replies

...

with

...

the

...

proper

...

correlation.

...

Include Page
Endpoint See Also
Endpoint See Also