To register an object, you must add an adapter to the object in which you are interested.

eObject.eAdapters().add(anAdapter);

If anAdapter matches the current policy, eObject will be registered to the server and
you will receive all changes from others {@link CDOTransaction}.

By default, the value is set to {@link CDOChangeSubscriptionPolicy#NONE}.

When this feature is activated, every object that has at least one adapter matching the current policy will be registered to the server and will be notified for every change happening in any other CDOTransaction.

In asynchronous mode, objects are returned as soon as they are retrieved from the Server. The query feature does not keep any reference to the results. This means that you could possibly return millions of objects.

The iterator could be closed at any time, resulting in the query being cancelled at the server side.

salesOrders.close();

Support getURIFragment and getEObject

CDOResource now supports the getURIFragment and getEObject methods.

Note: The URIs of temporary objects will change when the CDOTransaction is committed. Objects will no longer be accessible using their temporary URI once the CDOTransaction is committed.

Support external references

CDO supports many resources from different sources in the same resource set. Objects can refer to each other even if they are not from the same store or source.

An object from XMIResource can refer to objects from CDOResource.

An object from CDOResource can refer to objects from XMIResource.

An object from CDOResourceA (repositoryA) can refer to objects from another CDOResourceB(repositoryB)

Each resource set has a CDOViewSet. A CDOViewSet could have many CDOViews but each CDOView refers to one CDOViewSet only.

To use that feature, the same resource set must be used when opening CDOView.

Note: Two CDOViews from the same repository cannot belong to the same resource set.

XATransaction

This feature provides the ability to use many transactions from many repositories as a whole instead of individually. Its three-phase commit allows the clients to commit circular graphs and complex graphs that are from multiple repositories or CDOTransactions.

Support containment proxies

This feature provides the ability to have an object that is in resourceA and its container could be in another resource. The object and container are in different resource and it does support external references as well.This is to be in line with EMF. However, it needs to be define in your model.