OpenEngSB Manual

1.3.0.M2 "Qualified Q"

Open Engineering Service Bus Development Team and Contributors


I. Introduction
1. How to read the Manual
2. What is the Open Engineering Service Bus
3. When to use the OpenEngSB
3.1. The OpenEngSB as Base Environment
3.2. Reusing integration Components and Workflows
3.3. Management Environment
3.4. Simple Development and Distribution Management
3.5. Simple Plug-Ins and Extensions
II. Tutorials
4. HowTo - Setup OpenEngSB for development (First steps)
4.1. Goal
4.2. Time to Complete
4.3. Prerequisites
4.4. Java Development Kit 6
4.5. Getting OpenEngSB
4.6. Installing OpenEngSB
4.7. Setup required domains
4.8. First Steps
4.9. Shutdown OpenEngSB
5. HowTo - First steps with the OpenEngSB (Send mails via the OpenEngSB)
5.1. Goal
5.2. Time to Complete
5.3. Prerequisites
5.4. Creating EMail Services
5.5. Executing Service Actions Directly
5.6. Executing Service Actions via Domains
5.7. Next Steps
6. HowTo - Events with the OpenEngSB (Using the logging service)
6.1. Goal
6.2. Time to Complete
6.3. Prerequisites
6.4. Create required connectors
6.5. Configure
6.6. Creating a rule
6.7. Throw Event
6.8. Next Steps
7. HowTo - Create a connector for an already existing domain for the OpenEngSB
7.1. Goal
7.2. Time to Complete
7.3. Prerequisites
7.4. Step 1 - Use the archetype
7.5. Step 2 - Add the dependencies
7.6. Step 3 - Configure the connector
7.7. Step 4 - Implement the connector
7.8. Step 5 - Spring Setup and Internationalization
7.9. Step 6 - Start the OpenEngSB with your Connector
7.10. Step 7 - Test the new connector
8. HowTo - Create a Client-Project for the OpenEngSB
8.1. Goal
8.2. Time to Complete
8.3. Step 2 - Needed tools
8.3.1. Java Development Kit 6
8.3.2. Maven 3
8.4. Step 2 - Using the archetype
8.5. Step 3 - The result
8.6. Step 4 - Install features
8.7. Step 5 - Start the Client-Project
8.8. Step 6 - Shutdown
9. HowTo - Interact with the OPENENGSB Remotely
9.1. Using JMS proxying
9.1.1. Proxying internal Connector calls
9.1.1.1. HowTo call an external service via proxies
9.1.2. Calling internal Services
9.1.3. Examples
9.1.3.1. Connect With Python
9.1.3.2. Connect With CSharp
9.1.3.3. Connect With Perl
10. HowTo - Integrate services with OpenEngSB
10.1. Goal
10.2. Time to Complete
10.3. Prerequisites
10.4. Setting up OpenEngSB
10.5. Step 1 - Source repository
10.6. Step 2 - Building the source code
10.7. Step 3 - Testing binaries
10.8. Step 4 - Notification Process
10.9. Further Reading
III. OpenEngSB Framework
11. Quickstart
11.1. Writing new projects using the OpenEngSB
11.2. Writing Domains for the OpenEngSB
11.3. Writing Connectors for the OpenEngSB
12. Architecture of the OpenEngSB
12.1. OpenEngSB Enterprise Service Bus (ESB)
12.2. OpenEngSB Infrastructure
12.3. OpenEngSB Components
12.4. OpenEngSB Tool Domains
12.5. Client Tools (Service Consumer)
12.6. Domain Tools (Service Provider)
12.7. Domain- and Client Tool Connectors
13. Context Management
13.1. Wiring services
14. Persistence in the OpenEngSB
14.1. Core Persistence
14.2. Configuration Persistence
15. Security in the OpenEngSB
15.1. Usermanagement
15.2. Access control
15.3. Authentication
16. Workflows
16.1. Workflow service
16.2. Rulemanager
16.3. Processes
17. Taskbox
17.1. Core Functionality
17.2. UI Functionality
18. External Domains and Connectors
18.1. Proxying
18.1.1. Proxying internal Connector calls
19. Deployer services
19.1. Connector configuration
19.1.1. Root services
19.2. Context configuration
20. Client Projects and Embedding The OpenEngSB
20.1. Using the same dependencies as the OPENENGSB
21. OpenEngSB Platform
IV. Administration User Interface
22. Testclient
22.1. Managing global variables
22.2. Managing imports
23. Wiring
23.1. Wire a global variable with a service
23.2. What wiring does in the background
V. OpenEngSB Available Domains & Connectors
24. Notification Domain
24.1. Description
24.2. Functional Interface
24.3. Connectors
24.3.1. Email Connector
24.3.1.1. External Tool Configuration
25. SCM Domain
25.1. Description
25.2. Functional Interface
25.3. Connectors
25.3.1. Git Connector
25.3.1.1. External Tool Configuration
26. Issue Domain
26.1. Description
26.2. Functional Interface
26.3. Connectors
26.3.1. Trac Connector
26.3.1.1. External Tool Configuration
26.3.2. Jira Connector
26.3.2.1. External Tool Configuration
26.3.3. Github Connector
26.3.3.1. External Tool Configuration
27. Report Domain
27.1. Description
27.2. Functional Interface
27.3. Connectors
27.3.1. Plaintext Report Connector
27.3.1.1. External Tool Configuration
27.3.2. ProM Report Connector
27.3.2.1. External Tool Configuration
28. Build Domain
28.1. Description
28.2. Functional Interface
28.3. Connectors
29. Test Domain
29.1. Description
29.2. Functional Interface
29.3. Connectors
30. Deploy Domain
30.1. Description
30.2. Functional Interface
30.3. Connectors
31. Auditing Domain
31.1. Description
31.2. Functional Interface
31.3. Connectors
31.3.1. Memory Auditing Connector
32. Appointment Domain
32.1. Description
32.2. Functional Interface
32.3. Connectors
32.3.1. Gcalendar Connector
32.3.1.1. External Tool Configuration
33. Contact Domain
33.1. Description
33.2. Functional Interface
33.3. Connectors
33.3.1. Gcontacts Connector
33.3.1.1. External Tool Configuration
34. Multi-Domain Connectors
34.1. Connectors
34.1.1. Maven Connector
34.1.1.1. External Tool Configuration
VI. OpenEngSB Commiters & Contributors
35. Getting Started as a Developer
35.1. Getting comfortable with the infrastructure
35.1.1. Mailing Lists
35.1.2. Jira Issue Tracker
35.1.3. Code Repository
35.1.4. Maven Repository
35.1.5. Build Server
35.2. Prerequisites
35.2.1. Installing Git
35.2.2. Installing Maven
35.3. Starting OpenEngSB
35.4. Using Eclipse
35.5. Using Other IDEs than Eclipse
35.6. Git Documentation
35.6.1. Usage
35.6.2. Github
35.6.3. Starting up and configure
35.6.4. Contributor Workflow
35.6.5. Commiter Workflow
35.6.6. Additional Rules
35.7. Useful Tools
35.7.1. openengsb-maven-plugin
35.7.1.1. Configuring the openengsb-maven-plugin for your project
35.7.1.2. Purpose of the openengsb-maven-plugin
35.7.1.3. Changing the default configuration of the mojos
35.7.1.4. Available Goals
36. How To Create an Internal Connector
36.1. Prerequisites
36.2. Creating a new connector project
36.2.1. Using the Maven Archetype
36.2.2. Using mvn openengsb:genConnector
36.3. Project Structure
36.4. Integrating the Connector into the OpenEngSB environment
37. How To Create an Internal Domain
37.1. Prerequisites
37.2. Creating a new domain project
37.2.1. Using the Maven Archetype
37.2.2. Using mvn openengsb:genDomain
37.2.3. Project structure
37.3. Components
37.4. Connectors
38. Prepare and use Non-OSGi Artifacts
38.1. Create Wrapped Artifacts
38.2. Tips and Tricks
39. Release and Release Process
39.1. Releases and the OpenEngSB
39.2. Git Branches
39.2.1. New Feature Workflow
39.2.2. Milestone Releases
39.2.3. Release Candidates
39.2.4. Final and Support Releases
39.3. Configure Maven
39.4. Adapt Jira
39.5. Perform the release
39.6. Spread the News
39.7. Prepare Changelog
39.7.1. General Description
39.7.2. Highlights
39.7.3. Details
40. Admin
40.1. Infrastructure
40.1.1. OpenEngSB Infrastructure Server
40.1.2. OpenEngSB Build
40.1.3. OpenEngSB Issuetracker
40.1.4. OpenEngSB git
40.1.5. OpenEngSB Maven
40.1.5.1. internal
40.1.5.2. external
40.1.6. OpenEngSB Mailinglist
40.2. Logo Locations and Upgrade
40.2.1. External Infrastructure
40.2.2. Internal Management Application
40.2.3. Documentation
41. Project Roles
41.1. Users
41.2. Contributors
41.3. Commiters
41.4. Project Comitee Members
42. Java Coding Style
42.1. Sun Coding Guidelines
42.1.1. Line length
42.1.2. Wrapping
42.1.3. Number of declarations per line
42.1.4. Declaration placement
42.1.5. Blank lines
42.2. General
42.2.1. File format
42.2.2. Header
42.2.3. Duplication
42.2.4. Use guards
42.2.5. Keep methods short
42.2.6. Use enums
42.2.7. Avoid use of static members
42.2.8. Use fully qualified imports
42.2.9. Never declare implementation types
42.2.10. SerialVersionUID
42.2.11. Restrict scope of suppressed warnings
42.2.12. Use String.format()
42.2.13. Array declaration style
42.2.14. Comments
42.3. Naming
42.3.1. Interfaces
42.3.2. Don't abbreviate
42.4. No clutter
42.5. Exception Handling
42.6. Tests
42.6.1. General
42.6.2. Naming Scheme
42.7. XML Formatting
42.7.1. File Format
42.7.2. Eclipse Settings
42.7.3. Recommended Readings
43. Writing Code
43.1. Maven POM files in the OpenEngSB
43.2. Making UI Tests Localizable
43.3. How to write tests
43.3.1.
43.3.2. Technologies for writing test, and how to use them
44. Recommended Eclipse Plug-ins for Developers
44.1. Properties Editor
44.2. Rinzo XML Editor
44.3. Eclemma code coverage
44.4. Eclipse M2 Plugin
44.5. Egit Eclipse Plugin
44.6. Eclipse CS
44.7. Drools
45. Writing Documentation
45.1. General Documentation Guidelines
45.2. Document a domain or connector
45.2.1. Domain
45.2.2. Connector
45.3. Using Docbook
45.3.1. Tags
45.3.1.1. Including an image
45.3.1.2. Using a table
45.3.1.3. Generating the documentation