| Architecture of a Client Application |
| 1 | OSGi |
| 2 | EMF |
| 3 | CDO Client |
| 4 | Net4j Core |
| 5 | Models |
| 6 | Protocol |
| 7 | Transport |
| Anatomy of a Model Object |
| 1 | CDOID |
| 2 | CDORevision |
| 3 | CDOView |
| 4 | CDOState |
| Working with Sessions |
| 1 | Creating and Configuring Sessions |
| | 1.1 | Session Configurations |
| | 1.2 | Net4j Connectors |
| | 1.3 | Authentication and Security |
| | 1.4 | Recovering from Disconnects |
| | 1.5 | Passive Updates and Refreshing |
| | 1.6 | Waiting For Updates |
| 2 | View Management |
| | 2.1 | Purpose of Views and Transactions |
| | 2.2 | Branch Points and the View Target |
| | 2.3 | Opening Views and Transactions |
| | 2.4 | Accessing Open Views |
| | 2.5 | Finding Views by ID |
| | 2.6 | Listening for View-Related Events |
| | 2.7 | Closing Views |
| 3 | Authorizable Operations |
| 4 | Client and Server Entities |
| 5 | Session Facilities |
| | 5.1 | Repository Info |
| | 5.2 | Package Registry |
| | 5.3 | Revision Manager |
| | | 5.3.1 | Working with Revisions |
| | | 5.3.2 | Pre-fetching Revisions |
| | 5.4 | Branch Manager |
| | | 5.4.1 | Working with Branches |
| | | 5.4.2 | Working with Tags |
| | 5.5 | Fetch Rule Manager |
| | 5.6 | Commit Info Manager |
| | 5.7 | User Info Manager |
| | 5.8 | Remote Session Manager |
| | | 5.8.1 | Exchanging Messages With Other Sessions |
| | | 5.8.2 | Collaborating on Shared Topics |
| | | 5.8.3 | Integrating Topics With Your User Interface |
| 6 | Session Events |
| 7 | Session Options |
| | 7.1 | Generated Package Emulation |
| | 7.2 | Passive Update Enabled |
| | 7.3 | Passive Update Mode |
| | 7.4 | Lock Notification Enabled |
| | 7.5 | Lock Notification Mode |
| | 7.6 | Collection Loading Configuration |
| | 7.7 | Large Object Cache |
| | 7.8 | Permission Updater |
| | 7.9 | Delegable View Lock Enabled |
| | 7.10 | Prefetch Send Max Revision Keys |
| 8 | Session Properties |
| 9 | Session Registry |
| Working with Views |
| 1 | Understanding Views and Their Types |
| 2 | Opening and Closing Views |
| 3 | Thread Safety |
| | 3.1 | Using Critical Sections |
| | 3.2 | Using a Delegable Lock |
| 4 | Understanding the CDO File System |
| | 4.1 | The Root Resource |
| | 4.2 | Resource Folders |
| | 4.3 | Model Resources |
| | 4.4 | Binary Resources |
| | 4.5 | Text Resources |
| 5 | Resource Sets and Their Usage |
| 6 | Navigating Models |
| 7 | Waiting For Updates |
| 8 | Querying Resources |
| 9 | Querying Model Objects |
| 10 | Querying Cross References |
| 11 | Custom Queries |
| 12 | Units |
| 13 | View Events |
| 14 | View Options |
| 15 | View Properties |
| Working with Transactions |
| 1 | Creating and Managing Transactions |
| 2 | Local Changes and Dirty State |
| 3 | Committing Changes |
| 4 | Commit Retry and Conflicts |
| 5 | Rolling Back Changes |
| 6 | Partial Commits |
| 7 | Savepoints |
| 8 | Nested Transaction Scopes |
| 9 | Merge |
| 10 | Revert |
| 11 | Change Export and Import |
| 12 | File-Backed Transactions |
| 13 | Queries in Transactions |
| 14 | Transaction Options |
| Locking |
| 1 | Lock Types |
| | 1.1 | Read Locks |
| | 1.2 | Write Locks |
| | 1.3 | Write Option Locks |
| 2 | Acquiring, Releasing, and Inspecting Locks |
| 3 | Optimistic Locking |
| 4 | Pessimistic Locking |
| 5 | Lock State |
| 6 | Durable Locking |
| 7 | Lock Notifications and Events |
| 8 | Locking and Transactions |
| 9 | Locking and Reconnection |
| 10 | Performance and Usage Guidance |
| Large Objects |
| 1 | The Large-Object Model |
| 2 | Creating Binary Large Objects |
| 3 | Creating Character Large Objects |
| 4 | Assigning and Persisting Large Objects |
| 5 | Reading and Streaming Contents |
| 6 | Loading and Caching |
| 7 | Repository and Store Support |
| 8 | Large Objects in Model Features |
| 9 | Identity, Equality, and Change Detection |
| 10 | Resource Ownership and Failure Behavior |
| 11 | Performance and Usage Guidance |
| Branching and Versioning |
| 1 | Mental Model |
| 2 | Branches and Branch Points |
| 3 | Versions and Revisions |
| 4 | Historical Views and Navigating History |
| | 4.1 | An object's commit history is available through |
| 5 | Comparing Historical State |
| 6 | Branching, Transactions, and Merge Concepts |
| 7 | Revert, Tags, and Repository Capability |
| 8 | Practical Guidance |
| Notifications and Event Handling |
| 1 | The Notification and Event Model |
| 2 | EMF Model Notifications |
| 3 | CDO Events and Listeners |
| 4 | Session Events |
| 5 | View Events |
| 6 | Transaction Events |
| 7 | Remote Changes, Invalidations, and Subscriptions |
| 8 | Lock Notifications |
| 9 | Event Threading and Delivery |
| 10 | Listener Lifetime, Errors, and Ordering |
| 11 | Choosing the Right Mechanism |
| Integrating with EMF and Other Frameworks |
| 1 | CDO in the EMF Programming Model |
| 2 | ResourceSet Integration |
| 3 | CDO URIs |
| 4 | View Providers |
| 5 | View-Provider Extension Point |
| 6 | Standard EMF Tools and Editing |
| 7 | Adapters and Remote Changes |
| 8 | UI and Other Frameworks |
| 9 | Lifecycle and Choosing an Integration |
| Advanced Topics |
| 1 | Modern Partial Collection Loading |
| 2 | Cache-Aware Revision Requests |
| 3 | Units and Bounded Graph Loading |
| 4 | Queries and Large-Scale Model Access |
| 5 | Reconnect and Session Recovery |
| 6 | Conflict Customization and Diagnostics |
| 7 | Advanced Performance Guidance |
| Best Practices and Common Pitfalls |
| 1 | Own Sessions, Views, Transactions, and Resources Explicitly |
| 2 | Reuse Sessions, Keep Views Purposeful, and Bound Transactions |
| 3 | Use Supported Concurrency Boundaries |
| 4 | Choose Optimistic or Pessimistic Coordination Deliberately |
| 5 | Handle Conflicts and Retries as Business Decisions |
| 6 | Load Only What the Operation Needs |
| 7 | Treat Remote Changes and Recovery as Asynchronous Failure Modes |
| 8 | Preserve Branch, History, and Integration Context |
| 9 | Distinguish Failure Classes and Keep APIs Current |
| 10 | Common CDO Pitfalls |
Copyright (c) 2004-2026 Eike Stepper (Loehne, Germany) and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html