OpenEngSB Manual

1.2.0.M5 "Pink Panther"

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 - Create a connector for an already existing domain for the OpenEngSB
4.1. Goal
4.2. Time to Complete
4.3. Prerequisites
4.4. Step 1 - Use the archetype
4.5. Step 2 - Add the dependencies
4.6. Step 3 - Configure the connector
4.7. Step 4 - Implement the connector
4.8. Step 5 - Spring Setup and Internationalization
4.9. Step 6 - Start the OpenEngSB with your Connector
4.10. Step 7 - Test the new connector
5. HowTo - Create a Client-Project for the OpenEngSB
5.1. Goal
5.2. Time to Complete
5.3. Step 2 - Needed tools
5.3.1. Java Development Kit 6
5.3.2. Maven 3
5.4. Step 2 - Using the archetype
5.5. Step 3 - The result
5.6. Step 4 - Install features
5.7. Step 5 - Start the Client-Project
5.8. Step 6 - Shutdown
6. HowTo - Interact with the OPENENGSB Remotely
6.1. Using JMS proxying
6.1.1. Proxying internal Connector calls
6.1.1.1. HowTo call an external service via proxies
6.1.2. Calling internal Services
6.1.3. Examples
6.1.3.1. Connect With Python
6.1.3.2. Connect With CSharp
6.1.3.3. Connect With Perl
7. HowTo - Integrate services with OpenEngSB
7.1. Goal
7.2. Time to Complete
7.3. Prerequisites
7.4. Setting up OpenEngSB
7.5. Step 1 - Source repository
7.6. Step 2 - Building the source code
7.7. Step 3 - Testing binaries
7.8. Step 4 - Notification Process
7.9. Further Reading
III. OpenEngSB Framework
8. Quickstart
8.1. Writing new projects using the OpenEngSB
8.2. Writing Domains for the OpenEngSB
8.3. Writing Connectors for the OpenEngSB
9. Architecture of the OpenEngSB
9.1. OpenEngSB Enterprise Service Bus (ESB)
9.2. OpenEngSB Infrastructure
9.3. OpenEngSB Components
9.4. OpenEngSB Tool Domains
9.5. Client Tools (Service Consumer)
9.6. Domain Tools (Service Provider)
9.7. Domain- and Client Tool Connectors
10. Context Management
10.1. Wiring services
11. Persistence in the OpenEngSB
11.1. Core Persistence
11.2. Configuration Persistence
12. Security in the OpenEngSB
12.1. Usermanagement
12.2. Access control
12.3. Authentication
13. Workflows
13.1. Workflow service
13.2. Rulemanager
13.3. Processes
14. Taskbox
14.1. Core Functionality
14.2. UI Functionality
15. External Domains and Connectors
15.1. Proxying
15.1.1. Proxying internal Connector calls
16. Deployer services
16.1. Connector configuration
16.1.1. Root services
16.2. Context configuration
17. Client Projects and Embedding The OpenEngSB
17.1. Using the same dependencies as the OPENENGSB
18. OpenEngSB Platform
IV. Administration User Interface
19. Testclient
19.1. Managing global variables
19.2. Managing imports
V. OpenEngSB Available Domains & Connectors
20. Notification Domain
20.1. Description
20.2. Functional Interface
20.3. Connectors
20.3.1. Email Connector
20.3.1.1. External Tool Configuration
21. SCM Domain
21.1. Description
21.2. Functional Interface
21.3. Connectors
21.3.1. Git Connector
21.3.1.1. External Tool Configuration
22. Issue Domain
22.1. Description
22.2. Functional Interface
22.3. Connectors
22.3.1. Trac Connector
22.3.1.1. External Tool Configuration
22.3.2. Jira Connector
22.3.2.1. External Tool Configuration
23. Report Domain
23.1. Description
23.2. Functional Interface
23.3. Connectors
23.3.1. Plaintext Report Connector
23.3.1.1. External Tool Configuration
23.3.2. ProM Report Connector
23.3.2.1. External Tool Configuration
24. Build Domain
24.1. Description
24.2. Functional Interface
24.3. Connectors
25. Test Domain
25.1. Description
25.2. Functional Interface
25.3. Connectors
26. Deploy Domain
26.1. Description
26.2. Functional Interface
26.3. Connectors
27. Auditing Domain
27.1. Description
27.2. Functional Interface
27.3. Connectors
27.3.1. Memory Auditing Connector
28. Appointment Domain
28.1. Description
28.2. Functional Interface
28.3. Connectors
28.3.1. Gcalendar Connector
28.3.1.1. External Tool Configuration
29. Contact Domain
29.1. Description
29.2. Functional Interface
29.3. Connectors
29.3.1. Gcontacts Connector
29.3.1.1. External Tool Configuration
30. Multi-Domain Connectors
30.1. Connectors
30.1.1. Maven Connector
30.1.1.1. External Tool Configuration
VI. OpenEngSB Commiters & Contributors
31. Getting Started as a Developer
31.1. Getting comfortable with the infrastructure
31.1.1. Mailing Lists
31.1.2. Jira Issue Tracker
31.1.3. Code Repository
31.1.4. Maven Repository
31.1.5. Build Server
31.2. Prerequisites
31.2.1. Installing Git
31.2.2. Installing Maven
31.3. Starting OpenEngSB
31.4. Using Eclipse
31.5. Using Other IDEs than Eclipse
31.6. Git Documentation
31.6.1. Usage
31.6.2. Github
31.6.3. Starting up and configure
31.6.4. Contributor Workflow
31.6.5. Commiter Workflow
31.6.6. Additional Rules
31.7. Useful Tools
31.7.1. openengsb-maven-plugin
31.7.1.1. Configuring the openengsb-maven-plugin for your project
31.7.1.2. Purpose of the openengsb-maven-plugin
31.7.1.3. Changing the default configuration of the mojos
31.7.1.4. Available Goals
32. How To Create an Internal Connector
32.1. Prerequisites
32.2. Creating a new connector project
32.2.1. Using the Maven Archetype
32.2.2. Using mvn openengsb:genConnector
32.3. Project Structure
32.4. Integrating the Connector into the OpenEngSB environment
33. How To Create an Internal Domain
33.1. Prerequisites
33.2. Creating a new domain project
33.2.1. Using the Maven Archetype
33.2.2. Using mvn openengsb:genDomain
33.2.3. Project structure
33.3. Components
33.4. Connectors
34. Prepare and use Non-OSGi Artifacts
34.1. Create Wrapped Artifacts
34.2. Tips and Tricks
35. Release and Release Process
35.1. Releases and the OpenEngSB
35.2. Git Branches
35.2.1. New Feature Workflow
35.2.2. Milestone Releases
35.2.3. Release Candidates
35.2.4. Final and Support Releases
35.3. Configure Maven
35.4. Adapt Jira
35.5. Perform the release
35.6. Spread the News
35.7. Prepare Changelog
35.7.1. General Description
35.7.2. Highlights
35.7.3. Details
36. Admin
36.1. Infrastructure
36.1.1. OpenEngSB Infrastructure Server
36.1.2. OpenEngSB Build
36.1.3. OpenEngSB Issuetracker
36.1.4. OpenEngSB git
36.1.5. OpenEngSB Maven
36.1.5.1. internal
36.1.5.2. external
36.1.6. OpenEngSB Mailinglist
36.2. Logo Locations and Upgrade
36.2.1. External Infrastructure
36.2.2. Internal Management Application
36.2.3. Documentation
37. Project Roles
37.1. Users
37.2. Contributors
37.3. Commiters
37.4. Project Comitee Members
38. Java Coding Style
38.1. Sun Coding Guidelines
38.1.1. Line length
38.1.2. Wrapping
38.1.3. Number of declarations per line
38.1.4. Declaration placement
38.1.5. Blank lines
38.2. General
38.2.1. File format
38.2.2. Header
38.2.3. Duplication
38.2.4. Use guards
38.2.5. Keep methods short
38.2.6. Use enums
38.2.7. Avoid use of static members
38.2.8. Use fully qualified imports
38.2.9. Never declare implementation types
38.2.10. SerialVersionUID
38.2.11. Restrict scope of suppressed warnings
38.2.12. Use String.format()
38.2.13. Array declaration style
38.2.14. Comments
38.3. Naming
38.3.1. Interfaces
38.3.2. Don't abbreviate
38.4. No clutter
38.5. Exception Handling
38.6. Tests
38.6.1. General
38.6.2. Naming Scheme
38.7. XML Formatting
38.7.1. File Format
38.7.2. Eclipse Settings
38.7.3. Recommended Readings
39. Writing Code
39.1. Maven POM files in the OpenEngSB
39.2. Making UI Tests Localizable
39.3. How to write tests
39.3.1.
39.3.2. Technologies for writing test, and how to use them
40. Recommended Eclipse Plug-ins for Developers
40.1. Properties Editor
40.2. Spring IDE
40.3. Eclipse CS
40.4. Drools
41. Writing Documentation
41.1. General Documentation Guidelines
41.2. Document a domain or connector
41.2.1. Domain
41.2.2. Connector
41.3. Using Docbook
41.3.1. Tags
41.3.1.1. Including an image
41.3.1.2. Using a table
41.3.1.3. Generating the documentation