| Introduction |
| Understanding the Key Concepts |
| 1 | Models |
| 2 | Meta Models |
| 3 | Model Objects |
| 4 | Resources |
| 5 | Branches |
| 6 | Branch Points |
| 7 | Commits |
| 8 | Revisions |
| 9 | Revision Deltas |
| 10 | Repositories |
| 11 | Sessions |
| 12 | Views |
| 13 | Transactions |
| 14 | Change Notifications |
| Preparing the Workspace |
| 1 | Using the Oomph Setup Engine |
| Preparing the Models |
| 1 | Creating an Ecore Model |
| 2 | Using the CDO Model Importer |
| 3 | Using the CDO Model Migrator |
| 4 | Migrating a GenModel Manually |
| 5 | Generating a Model |
| 6 | Modifying Generated Getters and Setters |
| Developing Client Applications |
| | 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 |
| Developing Server Applications |
| | Server Architecture |
| | 1 | Repository Core |
| | 2 | Store Boundary |
| | 3 | Protocol and Transport Boundary |
| | 4 | Container and Lifecycle |
| | CDO Server Application and Startup |
| | 1 | Startup and Shutdown |
| | 2 | Early Extensions |
| | 3 | Standalone, Embedded, and OSGi Use |
| | The Managed Container |
| | 1 | Factories, Product Groups, and Lookup |
| | 2 | Lifecycle and Configuration |
| | 3 | Standalone Container Example |
| | Application Extensions |
| | 1 | Choosing an Extension Variant |
| | 2 | Lifecycle Discipline |
| | 3 | Repository-aware Extension Example |
| | Creating and Configuring Repositories |
| | 1 | Programmatic Repository Setup |
| | 2 | MEMStore and Embedded Repositories |
| | 3 | Existing Persistent Stores |
| | Repository Services and Events |
| | 1 | Repository Services |
| | 2 | Server Session, View, and Transaction Context |
| | 3 | Events and Listener Lifetimes |
| | Repository Handlers and Commit Processing |
| | 1 | Read and Write Access |
| | 2 | Commit Information and Conflicts |
| | 3 | Application-facing Commit Flow |
| | Security, Queries, and Specialized Extensions |
| | 1 | Repository Protection |
| | 2 | Permission Cache SPI |
| | 3 | Authentication Example |
| | 4 | Query Handlers |
| | 5 | Extension Boundaries |
| | Advanced Server Integration |
| | 1 | Synchronization and Failover |
| | 2 | Monitoring and Activity Logs |
| | 3 | Import and Export |
| | 4 | Net4j and Other Intentional Extensions |
| Installing the Sources |
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