stephen samuel created CAMEL-5483:
-------------------------------------
Summary: Component for neo4j
Key: CAMEL-5483
URL: https://issues.apache.org/jira/browse/CAMEL-5483
Project: Camel
Issue Type: Improvement
Reporter: stephen samuel
Priority: Minor
Fix For: 2.11.0
Attachments: camel-neo4j.patch
I have created a component for neo4j. It is a producer only and it allows you
to create / remove nodes and relationships.
------ read me ----------
camel-neo4j
========
The camel-neo4j component allows you to treat Neo4j as a camel producer
endpoint. This means you can use this component in to() calls but not from()
calls. This component is backed by the Spring Data Neo4j Library.
* As a producer, can create or remove nodes, and create or remove relationships.
* Can support as many endpoints as required, eg for multiple databases across
multiple instances.
* Headers set for node id (for created nodes), relationship id (for created
relationships)
How to Use
==========
You can use neo4j as an endpoint with the following URI.
`neo4j:http://hostname[:port]/database`
Then you need to set a header on each message, one of the following enum types
` CREATE_NODE,
REMOVE_NODE,
CREATE_RELATIONSHIP,
REMOVE_RELATIONSHIP`
Eg,
`exchange.getIn().setHeader(Neo4jEndpoint.HEADER_OPERATION,
Neo4jOperation.CREATE_NODE);`
The body of the message is used to determine the node or relationship to
manipulate. The following body types are supported:
For CREATE_NODE:
* null body - create default node
* Map body - create node with the properties set from the map
For REMOVE_NODE:
* Long or Integer - remove node using the body as the id
* neo4j Node instance - remove the node specified by that instance
For CREATE_RELATIONSHIP:
* SpringDataRelationship - create relationship specified by any @NodeEntity
annoted Spring entities.
* BasicRelationship - create relationship specified by the neo4j node types
For REMOVE_RELATIONSHIP:
* Long or Integer - remove relationship using the body as the id
* SpringDataRelationship - remove relationship specified by the @NodeEntity
annoted Spring entities.
* BasicRelationship - remove relationship specified by the neo4j node types
Tests
=====
camel-neo4j has a complete set of unit tests. In addition there are some
integration tests that require you to run a local instance of neo4j. By default
the tests will look at localhost:7474 on http://localhost:7474/db/data/
- Initial contribution by Stephen Samuel.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira