|
Project Information
Links
|
IMPORTANT: This project is EOL. Please look at: Lanseti Integration Server. WhatGIntegrator is a lightweight and simple enterprise application integration (EAI) software. With GIntegrator, users can build a SOA-based environment easily. GIntegrator runs atop a JVM and uses a very easy language to describe message routing rules that leverages the enterprise integration patterns principles. WhySOA is a complex architecture. It embraces a lot of technologies such as XML, Schema, BPEL, WSDL, Soap, Dependency Injection, OSGi and so on. GIntegrator encapsulates all these technologies in a transparent fashion and gives to the users only an interface to describe the message routing rules. The users don't need to known about XML, Schema, Beans and others SOA technologies. WhoNewbie Administrators and End-users. Features
Examples
// basic.route
db = Class.forName('org.gintegrator.adapter.Database').newInstance(
url:'jdbc:mysql://localhost:3306/integrator',
username:'root',
password:'',
query:'select * from users'
)
console = Class.forName('org.gintegrator.adapter.Console').newInstance(
outputHeader:'Output table users from database integrator:'
)
route {
from db
to console
}// regex.route
console = Class.forName('org.gintegrator.adapter.Console').newInstance(
prompt:'Enter text "integrator" to save in a file:'
)
file = Class.forName('org.gintegrator.adapter.File').newInstance(
directory:'/tmp',
pattern:'file.txt.$$'
)
route {
from console
filter {
regex 'integrator'
to file
}
}// xpath.route
file = Class.forName('org.gintegrator.adapter.File').newInstance(
pattern:'bookstore.xml'
)
console = Class.forName('org.gintegrator.adapter.Console').newInstance(
outputHeader:'Output from xpath filter'
)
route {
from file
filter {
xpath "/bookstore/book[1]/author/text()='Giada De Laurentiis'"
to console
}
}<!-- bookstore.xml --> <?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> </bookstore> // component.route
console = Class.forName('org.gintegrator.adapter.Console').newInstance(
prompt:"Type 'Hello' to the component:",
outputHeader:'Output from MyComponent'
)
route {
from console
component 'MyComponent'
to console
}// MyComponent.groovy
import org.gintegrator.core.Endpoint
import org.gintegrator.core.Message
import org.gintegrator.core.Component
class MyComponent extends Component {
Message onCall(Message message) {
message.body += ' World!'
return message
}
}// xpathcbr.route
file = Class.forName('org.gintegrator.adapter.File').newInstance(
pattern:'bookstore.xml'
)
console1 = Class.forName('org.gintegrator.adapter.Console').newInstance(
outputHeader:'Output for author: Giada De Laurentiis'
)
console2 = Class.forName('org.gintegrator.adapter.Console').newInstance(
outputHeader:'Output for author: Other author'
)
route {
from file
select '/bookstore/book[1]/author/text()', {
equal 'Giada De Laurentiis', console1
equal 'Other author', console2
}
}<!-- bookstore.xml --> <?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> ... |