[573562] Make the CDOView configuration more customizable

https://bugs.eclipse.org/bugs/show_bug.cgi?id=573562
diff --git a/features/org.eclipse.emf.cdo.server-feature/feature.xml b/features/org.eclipse.emf.cdo.server-feature/feature.xml
index aa08997..e2e46df 100644
--- a/features/org.eclipse.emf.cdo.server-feature/feature.xml
+++ b/features/org.eclipse.emf.cdo.server-feature/feature.xml
@@ -12,7 +12,7 @@
 <feature
       id="org.eclipse.emf.cdo.server"
       label="%featureName"
-      version="4.13.1.qualifier"
+      version="4.14.0.qualifier"
       provider-name="%providerName"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.cdo.license"
diff --git a/features/org.eclipse.emf.cdo.server-feature/pom.xml b/features/org.eclipse.emf.cdo.server-feature/pom.xml
index 2994c1f..5e553aa 100644
--- a/features/org.eclipse.emf.cdo.server-feature/pom.xml
+++ b/features/org.eclipse.emf.cdo.server-feature/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo.features</groupId>
   <artifactId>org.eclipse.emf.cdo.server</artifactId>
-  <version>4.13.1-SNAPSHOT</version>
+  <version>4.14.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
 </project>
diff --git a/features/org.eclipse.emf.cdo.server.db-feature/feature.xml b/features/org.eclipse.emf.cdo.server.db-feature/feature.xml
index e4f67b0..0a9ce21 100644
--- a/features/org.eclipse.emf.cdo.server.db-feature/feature.xml
+++ b/features/org.eclipse.emf.cdo.server.db-feature/feature.xml
@@ -12,7 +12,7 @@
 <feature
       id="org.eclipse.emf.cdo.server.db"
       label="%featureName"
-      version="4.10.1.qualifier"
+      version="4.10.2.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.emf.cdo.license"
       license-feature-version="0.0.0">
diff --git a/features/org.eclipse.emf.cdo.server.db-feature/pom.xml b/features/org.eclipse.emf.cdo.server.db-feature/pom.xml
index e507aee..f87a1b6 100644
--- a/features/org.eclipse.emf.cdo.server.db-feature/pom.xml
+++ b/features/org.eclipse.emf.cdo.server.db-feature/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo.features</groupId>
   <artifactId>org.eclipse.emf.cdo.server.db</artifactId>
-  <version>4.10.1-SNAPSHOT</version>
+  <version>4.10.2-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
 </project>
diff --git a/features/org.eclipse.net4j-feature/feature.xml b/features/org.eclipse.net4j-feature/feature.xml
index f6bb608..65a200f 100644
--- a/features/org.eclipse.net4j-feature/feature.xml
+++ b/features/org.eclipse.net4j-feature/feature.xml
@@ -12,7 +12,7 @@
 <feature
       id="org.eclipse.net4j"
       label="%featureName"
-      version="4.13.1.qualifier"
+      version="4.14.0.qualifier"
       provider-name="%providerName"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.cdo.license"
diff --git a/features/org.eclipse.net4j-feature/pom.xml b/features/org.eclipse.net4j-feature/pom.xml
index 007a407..34fd4c7 100644
--- a/features/org.eclipse.net4j-feature/pom.xml
+++ b/features/org.eclipse.net4j-feature/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo.features</groupId>
   <artifactId>org.eclipse.net4j</artifactId>
-  <version>4.13.1-SNAPSHOT</version>
+  <version>4.14.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
 </project>
diff --git a/features/org.eclipse.net4j.db-feature/feature.xml b/features/org.eclipse.net4j.db-feature/feature.xml
index 81db26a..cd9b66a 100644
--- a/features/org.eclipse.net4j.db-feature/feature.xml
+++ b/features/org.eclipse.net4j.db-feature/feature.xml
@@ -12,7 +12,7 @@
 <feature
       id="org.eclipse.net4j.db"
       label="%featureName"
-      version="4.13.1.qualifier"
+      version="4.14.0.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.emf.cdo.license"
       license-feature-version="0.0.0">
diff --git a/features/org.eclipse.net4j.db-feature/pom.xml b/features/org.eclipse.net4j.db-feature/pom.xml
index e9aae6c..03e2fa7 100644
--- a/features/org.eclipse.net4j.db-feature/pom.xml
+++ b/features/org.eclipse.net4j.db-feature/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo.features</groupId>
   <artifactId>org.eclipse.net4j.db</artifactId>
-  <version>4.13.1-SNAPSHOT</version>
+  <version>4.14.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
 </project>
diff --git a/features/org.eclipse.net4j.sdk-feature/feature.xml b/features/org.eclipse.net4j.sdk-feature/feature.xml
index 64df577..0e557ca 100644
--- a/features/org.eclipse.net4j.sdk-feature/feature.xml
+++ b/features/org.eclipse.net4j.sdk-feature/feature.xml
@@ -12,7 +12,7 @@
 <feature
       id="org.eclipse.net4j.sdk"
       label="%featureName"
-      version="4.13.1.qualifier"
+      version="4.14.0.qualifier"
       provider-name="%providerName"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.cdo.license"
diff --git a/features/org.eclipse.net4j.sdk-feature/pom.xml b/features/org.eclipse.net4j.sdk-feature/pom.xml
index fa431a5..b905a15 100644
--- a/features/org.eclipse.net4j.sdk-feature/pom.xml
+++ b/features/org.eclipse.net4j.sdk-feature/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo.features</groupId>
   <artifactId>org.eclipse.net4j.sdk</artifactId>
-  <version>4.13.1-SNAPSHOT</version>
+  <version>4.14.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
 </project>
diff --git a/features/org.eclipse.net4j.util-feature/feature.xml b/features/org.eclipse.net4j.util-feature/feature.xml
index 8c3c178..83cdb4d 100644
--- a/features/org.eclipse.net4j.util-feature/feature.xml
+++ b/features/org.eclipse.net4j.util-feature/feature.xml
@@ -12,7 +12,7 @@
 <feature
       id="org.eclipse.net4j.util"
       label="%featureName"
-      version="4.13.1.qualifier"
+      version="4.14.0.qualifier"
       provider-name="%providerName"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.cdo.license"
diff --git a/features/org.eclipse.net4j.util-feature/pom.xml b/features/org.eclipse.net4j.util-feature/pom.xml
index 31368f3..415301a 100644
--- a/features/org.eclipse.net4j.util-feature/pom.xml
+++ b/features/org.eclipse.net4j.util-feature/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo.features</groupId>
   <artifactId>org.eclipse.net4j.util</artifactId>
-  <version>4.13.1-SNAPSHOT</version>
+  <version>4.14.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
 </project>
diff --git a/features/org.eclipse.net4j.util.ui-feature/feature.xml b/features/org.eclipse.net4j.util.ui-feature/feature.xml
index 7949c7a..3fa2d22 100644
--- a/features/org.eclipse.net4j.util.ui-feature/feature.xml
+++ b/features/org.eclipse.net4j.util.ui-feature/feature.xml
@@ -12,7 +12,7 @@
 <feature
       id="org.eclipse.net4j.util.ui"
       label="%featureName"
-      version="4.13.1.qualifier"
+      version="4.14.0.qualifier"
       provider-name="%providerName"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.cdo.license"
diff --git a/features/org.eclipse.net4j.util.ui-feature/pom.xml b/features/org.eclipse.net4j.util.ui-feature/pom.xml
index 7a1b006..c1dba48 100644
--- a/features/org.eclipse.net4j.util.ui-feature/pom.xml
+++ b/features/org.eclipse.net4j.util.ui-feature/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo.features</groupId>
   <artifactId>org.eclipse.net4j.util.ui</artifactId>
-  <version>4.13.1-SNAPSHOT</version>
+  <version>4.14.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
 </project>
diff --git a/features/org.eclipse.net4j.ws-feature/feature.xml b/features/org.eclipse.net4j.ws-feature/feature.xml
index 7ea4bae..6988e6a 100644
--- a/features/org.eclipse.net4j.ws-feature/feature.xml
+++ b/features/org.eclipse.net4j.ws-feature/feature.xml
@@ -12,7 +12,7 @@
 <feature
       id="org.eclipse.net4j.ws"
       label="%featureName"
-      version="1.0.1.qualifier"
+      version="1.1.0.qualifier"
       provider-name="%providerName"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.cdo.license"
diff --git a/features/org.eclipse.net4j.ws-feature/pom.xml b/features/org.eclipse.net4j.ws-feature/pom.xml
index 8e063b0..9780a86 100644
--- a/features/org.eclipse.net4j.ws-feature/pom.xml
+++ b/features/org.eclipse.net4j.ws-feature/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo.features</groupId>
   <artifactId>org.eclipse.net4j.ws</artifactId>
-  <version>1.0.1-SNAPSHOT</version>
+  <version>1.1.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.emf.cdo.admin/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.admin/META-INF/MANIFEST.MF
index dd167bf..22e6ebc 100644
--- a/plugins/org.eclipse.emf.cdo.admin/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.admin/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.cdo.admin; singleton:=true
-Bundle-Version: 4.2.0.qualifier
+Bundle-Version: 4.3.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -11,13 +11,13 @@
 Require-Bundle: org.eclipse.emf.cdo;bundle-version="[4.0.0,5.0.0)";visibility:=reexport,
  org.eclipse.emf.cdo.net4j;bundle-version="[4.0.0,5.0.0)";visibility:=reexport,
  org.eclipse.net4j;bundle-version="[4.0.0,5.0.0)";visibility:=reexport
-Export-Package: org.eclipse.emf.cdo.admin;version="4.2.0",
- org.eclipse.emf.cdo.internal.admin;version="4.2.0";
+Export-Package: org.eclipse.emf.cdo.admin;version="4.3.0",
+ org.eclipse.emf.cdo.internal.admin;version="4.3.0";
   x-friends:="org.eclipse.emf.cdo.tests,
    org.eclipse.emf.cdo.ui,
    org.eclipse.emf.cdo.ui.admin,
    org.eclipse.emf.cdo.examples",
- org.eclipse.emf.cdo.internal.admin.bundle;version="4.2.0";x-friends:="org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.internal.admin.protocol;version="4.2.0";x-internal:=true
+ org.eclipse.emf.cdo.internal.admin.bundle;version="4.3.0";x-friends:="org.eclipse.emf.cdo.tests",
+ org.eclipse.emf.cdo.internal.admin.protocol;version="4.3.0";x-internal:=true
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.cdo.admin
diff --git a/plugins/org.eclipse.emf.cdo.admin/pom.xml b/plugins/org.eclipse.emf.cdo.admin/pom.xml
index 32ca2ed..5829213 100644
--- a/plugins/org.eclipse.emf.cdo.admin/pom.xml
+++ b/plugins/org.eclipse.emf.cdo.admin/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.emf.cdo.admin</artifactId>
-  <version>4.2.0-SNAPSHOT</version>
+  <version>4.3.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.emf.cdo.admin/src/org/eclipse/emf/cdo/admin/CDOAdminClientManager.java b/plugins/org.eclipse.emf.cdo.admin/src/org/eclipse/emf/cdo/admin/CDOAdminClientManager.java
index 8c853a5..e7f0965 100644
--- a/plugins/org.eclipse.emf.cdo.admin/src/org/eclipse/emf/cdo/admin/CDOAdminClientManager.java
+++ b/plugins/org.eclipse.emf.cdo.admin/src/org/eclipse/emf/cdo/admin/CDOAdminClientManager.java
@@ -11,7 +11,7 @@
 package org.eclipse.emf.cdo.admin;
 
 import org.eclipse.net4j.util.container.IContainer;
-import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 
 import java.util.Collection;
 import java.util.List;
@@ -23,10 +23,8 @@
  * @noextend This interface is not intended to be extended by clients.
  * @noimplement This interface is not intended to be implemented by clients.
  */
-public interface CDOAdminClientManager extends IContainer<CDOAdminClient>
+public interface CDOAdminClientManager extends IContainer<CDOAdminClient>, IManagedContainerProvider
 {
-  public IManagedContainer getContainer();
-
   public CDOAdminClient[] getConnections();
 
   public List<String> getConnectionURLs();
diff --git a/plugins/org.eclipse.emf.cdo.admin/src/org/eclipse/emf/cdo/internal/admin/CDOAdminClientImpl.java b/plugins/org.eclipse.emf.cdo.admin/src/org/eclipse/emf/cdo/internal/admin/CDOAdminClientImpl.java
index 610eae5..1545c86 100644
--- a/plugins/org.eclipse.emf.cdo.admin/src/org/eclipse/emf/cdo/internal/admin/CDOAdminClientImpl.java
+++ b/plugins/org.eclipse.emf.cdo.admin/src/org/eclipse/emf/cdo/internal/admin/CDOAdminClientImpl.java
@@ -24,6 +24,7 @@
 import org.eclipse.net4j.util.concurrent.ExecutorServiceFactory;
 import org.eclipse.net4j.util.confirmation.IConfirmationProvider;
 import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 import org.eclipse.net4j.util.lifecycle.ILifecycle;
 import org.eclipse.net4j.util.lifecycle.LifecycleEventAdapter;
 import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
@@ -39,7 +40,8 @@
 /**
  * @author Eike Stepper
  */
-public class CDOAdminClientImpl extends AbstractCDOAdmin implements CDOAdminClient, IPasswordCredentialsProvider.Provider, IConfirmationProvider.Provider
+public class CDOAdminClientImpl extends AbstractCDOAdmin
+    implements CDOAdminClient, IPasswordCredentialsProvider.Provider, IConfirmationProvider.Provider, IManagedContainerProvider
 {
   private static final String URL_SEPARATOR = "://";
 
@@ -72,6 +74,7 @@
     return url;
   }
 
+  @Override
   public final IManagedContainer getContainer()
   {
     return container;
diff --git a/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF
index f97d477..f6fac57 100644
--- a/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.emf.cdo.common;singleton:=true
-Bundle-Version: 4.13.1.qualifier
+Bundle-Version: 4.14.0.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -15,21 +15,21 @@
  org.eclipse.emf.ecore.change;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
  org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)";visibility:=reexport
-Export-Package: org.eclipse.emf.cdo.common;version="4.13.1",
- org.eclipse.emf.cdo.common.admin;version="4.13.1",
- org.eclipse.emf.cdo.common.branch;version="4.13.1",
- org.eclipse.emf.cdo.common.commit;version="4.13.1",
- org.eclipse.emf.cdo.common.commit.handler;version="4.13.1",
- org.eclipse.emf.cdo.common.id;version="4.13.1",
- org.eclipse.emf.cdo.common.lob;version="4.13.1",
- org.eclipse.emf.cdo.common.lock;version="4.13.1",
- org.eclipse.emf.cdo.common.model;version="4.13.1",
- org.eclipse.emf.cdo.common.protocol;version="4.13.1",
- org.eclipse.emf.cdo.common.revision;version="4.13.1",
- org.eclipse.emf.cdo.common.revision.delta;version="4.13.1",
- org.eclipse.emf.cdo.common.security;version="4.13.1",
- org.eclipse.emf.cdo.common.util;version="4.13.1",
- org.eclipse.emf.cdo.internal.common;version="4.13.1";
+Export-Package: org.eclipse.emf.cdo.common;version="4.14.0",
+ org.eclipse.emf.cdo.common.admin;version="4.14.0",
+ org.eclipse.emf.cdo.common.branch;version="4.14.0",
+ org.eclipse.emf.cdo.common.commit;version="4.14.0",
+ org.eclipse.emf.cdo.common.commit.handler;version="4.14.0",
+ org.eclipse.emf.cdo.common.id;version="4.14.0",
+ org.eclipse.emf.cdo.common.lob;version="4.14.0",
+ org.eclipse.emf.cdo.common.lock;version="4.14.0",
+ org.eclipse.emf.cdo.common.model;version="4.14.0",
+ org.eclipse.emf.cdo.common.protocol;version="4.14.0",
+ org.eclipse.emf.cdo.common.revision;version="4.14.0",
+ org.eclipse.emf.cdo.common.revision.delta;version="4.14.0",
+ org.eclipse.emf.cdo.common.security;version="4.14.0",
+ org.eclipse.emf.cdo.common.util;version="4.14.0",
+ org.eclipse.emf.cdo.internal.common;version="4.14.0";
   x-friends:="org.eclipse.emf.cdo.common,
    org.eclipse.emf.cdo.common.db,
    org.eclipse.emf.cdo,
@@ -38,9 +38,9 @@
    org.eclipse.emf.cdo.server.net4j,
    org.eclipse.emf.cdo.ui,
    org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.internal.common.branch;version="4.13.1";x-friends:="org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.internal.common.bundle;version="4.13.1";x-internal:=true,
- org.eclipse.emf.cdo.internal.common.commit;version="4.13.1";
+ org.eclipse.emf.cdo.internal.common.branch;version="4.14.0";x-friends:="org.eclipse.emf.cdo.tests",
+ org.eclipse.emf.cdo.internal.common.bundle;version="4.14.0";x-internal:=true,
+ org.eclipse.emf.cdo.internal.common.commit;version="4.14.0";
   x-friends:="org.eclipse.emf.cdo.common,
    org.eclipse.emf.cdo.common.db,
    org.eclipse.emf.cdo,
@@ -49,7 +49,7 @@
    org.eclipse.emf.cdo.server.net4j,
    org.eclipse.emf.cdo.ui,
    org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.internal.common.id;version="4.13.1";
+ org.eclipse.emf.cdo.internal.common.id;version="4.14.0";
   x-friends:="org.eclipse.emf.cdo.common,
    org.eclipse.emf.cdo.common.db,
    org.eclipse.emf.cdo,
@@ -60,9 +60,9 @@
    org.eclipse.emf.cdo.tests,
    org.eclipse.emf.cdo.admin,
    org.eclipse.emf.cdo.server.admin",
- org.eclipse.emf.cdo.internal.common.lock;version="4.13.1";x-internal:=true,
- org.eclipse.emf.cdo.internal.common.messages;version="4.13.1";x-internal:=true,
- org.eclipse.emf.cdo.internal.common.model;version="4.13.1";
+ org.eclipse.emf.cdo.internal.common.lock;version="4.14.0";x-internal:=true,
+ org.eclipse.emf.cdo.internal.common.messages;version="4.14.0";x-internal:=true,
+ org.eclipse.emf.cdo.internal.common.model;version="4.14.0";
   x-friends:="org.eclipse.emf.cdo.common,
    org.eclipse.emf.cdo.common.db,
    org.eclipse.emf.cdo,
@@ -71,7 +71,7 @@
    org.eclipse.emf.cdo.server.net4j,
    org.eclipse.emf.cdo.ui,
    org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.internal.common.revision;version="4.13.1";
+ org.eclipse.emf.cdo.internal.common.revision;version="4.14.0";
   x-friends:="org.eclipse.emf.cdo.common,
    org.eclipse.emf.cdo.common.db,
    org.eclipse.emf.cdo,
@@ -80,7 +80,7 @@
    org.eclipse.emf.cdo.server.net4j,
    org.eclipse.emf.cdo.ui,
    org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.internal.common.revision.delta;version="4.13.1";
+ org.eclipse.emf.cdo.internal.common.revision.delta;version="4.14.0";
   x-friends:="org.eclipse.emf.cdo.common,
    org.eclipse.emf.cdo.common.db,
    org.eclipse.emf.cdo,
@@ -89,7 +89,7 @@
    org.eclipse.emf.cdo.server.net4j,
    org.eclipse.emf.cdo.ui,
    org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.internal.common.util;version="4.13.1";
+ org.eclipse.emf.cdo.internal.common.util;version="4.14.0";
   x-friends:="org.eclipse.emf.cdo.common,
    org.eclipse.emf.cdo.common.db,
    org.eclipse.emf.cdo,
@@ -98,15 +98,15 @@
    org.eclipse.emf.cdo.server.net4j,
    org.eclipse.emf.cdo.ui,
    org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.spi.common;version="4.13.1",
- org.eclipse.emf.cdo.spi.common.admin;version="4.13.1",
- org.eclipse.emf.cdo.spi.common.branch;version="4.13.1",
- org.eclipse.emf.cdo.spi.common.commit;version="4.13.1",
- org.eclipse.emf.cdo.spi.common.id;version="4.13.1",
- org.eclipse.emf.cdo.spi.common.lock;version="4.13.1",
- org.eclipse.emf.cdo.spi.common.model;version="4.13.1",
- org.eclipse.emf.cdo.spi.common.protocol;version="4.13.1",
- org.eclipse.emf.cdo.spi.common.revision;version="4.13.1",
- org.eclipse.emf.cdo.spi.common.util;version="4.13.1"
+ org.eclipse.emf.cdo.spi.common;version="4.14.0",
+ org.eclipse.emf.cdo.spi.common.admin;version="4.14.0",
+ org.eclipse.emf.cdo.spi.common.branch;version="4.14.0",
+ org.eclipse.emf.cdo.spi.common.commit;version="4.14.0",
+ org.eclipse.emf.cdo.spi.common.id;version="4.14.0",
+ org.eclipse.emf.cdo.spi.common.lock;version="4.14.0",
+ org.eclipse.emf.cdo.spi.common.model;version="4.14.0",
+ org.eclipse.emf.cdo.spi.common.protocol;version="4.14.0",
+ org.eclipse.emf.cdo.spi.common.revision;version="4.14.0",
+ org.eclipse.emf.cdo.spi.common.util;version="4.14.0"
 Automatic-Module-Name: org.eclipse.emf.cdo.common
 Eclipse-RegisterBuddy: org.eclipse.net4j.util
diff --git a/plugins/org.eclipse.emf.cdo.common/pom.xml b/plugins/org.eclipse.emf.cdo.common/pom.xml
index f181ce5..d0574ab 100644
--- a/plugins/org.eclipse.emf.cdo.common/pom.xml
+++ b/plugins/org.eclipse.emf.cdo.common/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.emf.cdo.common</artifactId>
-  <version>4.13.1-SNAPSHOT</version>
+  <version>4.14.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/lock/CDOLockChangeInfoHandler.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/lock/CDOLockChangeInfoHandler.java
index 866fd79..f84f6f8 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/lock/CDOLockChangeInfoHandler.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/lock/CDOLockChangeInfoHandler.java
@@ -17,6 +17,7 @@
  * @author Caspar De Groot
  * @since 4.1
  */
+@FunctionalInterface
 public interface CDOLockChangeInfoHandler
 {
   public void handleLockChangeInfo(CDOLockChangeInfo lockChangeInfo);
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/lock/IDurableLockingManager.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/lock/IDurableLockingManager.java
index 2b57942..508d449 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/lock/IDurableLockingManager.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/lock/IDurableLockingManager.java
@@ -77,6 +77,7 @@
      *
      * @author Eike Stepper
      */
+    @FunctionalInterface
     public interface Handler
     {
       public boolean handleLockArea(LockArea area);
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/util/ResourceSetConfigurer.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/util/ResourceSetConfigurer.java
index d09237b..49571ff 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/util/ResourceSetConfigurer.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/util/ResourceSetConfigurer.java
@@ -13,6 +13,7 @@
 import org.eclipse.emf.cdo.internal.common.bundle.OM;
 
 import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 import org.eclipse.net4j.util.container.IPluginContainer;
 import org.eclipse.net4j.util.factory.ProductCreationException;
 import org.eclipse.net4j.util.lifecycle.IDeactivateable;
@@ -92,7 +93,7 @@
     /**
      * @author Eike Stepper
      */
-    public static final class ResourceSetConfiguration extends AdapterImpl implements IDeactivateable
+    public static final class ResourceSetConfiguration extends AdapterImpl implements IDeactivateable, IManagedContainerProvider
     {
       private final ResourceSet resourceSet;
 
@@ -123,6 +124,7 @@
         return context;
       }
 
+      @Override
       public IManagedContainer getContainer()
       {
         return container;
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/protocol/CDODataOutputImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/protocol/CDODataOutputImpl.java
index 3e5d23e..b5188aa 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/protocol/CDODataOutputImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/protocol/CDODataOutputImpl.java
@@ -348,8 +348,10 @@
     writeString(lockArea.getUserID());
     writeBoolean(lockArea.isReadOnly());
 
-    writeXInt(lockArea.getLocks().size());
-    for (Map.Entry<CDOID, LockGrade> entry : lockArea.getLocks().entrySet())
+    Map<CDOID, LockGrade> locks = lockArea.getLocks();
+    writeXInt(locks.size());
+
+    for (Map.Entry<CDOID, LockGrade> entry : locks.entrySet())
     {
       writeCDOID(entry.getKey());
       writeEnum(entry.getValue());
diff --git a/plugins/org.eclipse.emf.cdo.explorer/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.explorer/META-INF/MANIFEST.MF
index 36bac19..69ad166 100644
--- a/plugins/org.eclipse.emf.cdo.explorer/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.explorer/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.cdo.explorer;singleton:=true
-Bundle-Version: 4.9.0.qualifier
+Bundle-Version: 4.10.0.qualifier
 Bundle-Activator: org.eclipse.emf.cdo.internal.explorer.bundle.OM$Activator
 Bundle-Vendor: %providerName
 Bundle-ClassPath: .
@@ -26,13 +26,13 @@
  org.h2.jdbcx;version="[1.0.0,2.0.0)";resolution:=optional,
  org.h2.util;version="[1.0.0,2.0.0)";resolution:=optional,
  org.h2.value;version="[1.0.0,2.0.0)";resolution:=optional
-Export-Package: org.eclipse.emf.cdo.explorer;version="4.9.0",
- org.eclipse.emf.cdo.explorer.checkouts;version="4.9.0",
- org.eclipse.emf.cdo.explorer.repositories;version="4.9.0",
- org.eclipse.emf.cdo.internal.explorer;version="4.9.0";x-friends:="org.eclipse.emf.cdo.explorer.ui",
- org.eclipse.emf.cdo.internal.explorer.bundle;version="4.9.0";x-internal:=true,
- org.eclipse.emf.cdo.internal.explorer.checkouts;version="4.9.0";x-friends:="org.eclipse.emf.cdo.explorer.ui",
- org.eclipse.emf.cdo.internal.explorer.repositories;version="4.9.0";x-friends:="org.eclipse.emf.cdo.explorer.ui",
- org.eclipse.emf.cdo.internal.explorer.resources;version="4.9.0";x-friends:="org.eclipse.emf.cdo.explorer.ui"
+Export-Package: org.eclipse.emf.cdo.explorer;version="4.10.0",
+ org.eclipse.emf.cdo.explorer.checkouts;version="4.10.0",
+ org.eclipse.emf.cdo.explorer.repositories;version="4.10.0",
+ org.eclipse.emf.cdo.internal.explorer;version="4.10.0";x-friends:="org.eclipse.emf.cdo.explorer.ui",
+ org.eclipse.emf.cdo.internal.explorer.bundle;version="4.10.0";x-internal:=true,
+ org.eclipse.emf.cdo.internal.explorer.checkouts;version="4.10.0";x-friends:="org.eclipse.emf.cdo.explorer.ui",
+ org.eclipse.emf.cdo.internal.explorer.repositories;version="4.10.0";x-friends:="org.eclipse.emf.cdo.explorer.ui",
+ org.eclipse.emf.cdo.internal.explorer.resources;version="4.10.0";x-friends:="org.eclipse.emf.cdo.explorer.ui"
 Eclipse-BuddyPolicy: registered
 Automatic-Module-Name: org.eclipse.emf.cdo.explorer
diff --git a/plugins/org.eclipse.emf.cdo.explorer/pom.xml b/plugins/org.eclipse.emf.cdo.explorer/pom.xml
index 0b416f4..c3e5206 100644
--- a/plugins/org.eclipse.emf.cdo.explorer/pom.xml
+++ b/plugins/org.eclipse.emf.cdo.explorer/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.emf.cdo.explorer</artifactId>
-  <version>4.9.0-SNAPSHOT</version>
+  <version>4.10.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/repositories/CDORepository.java b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/repositories/CDORepository.java
index 9ba9e41..bbf2244 100644
--- a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/repositories/CDORepository.java
+++ b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/repositories/CDORepository.java
@@ -22,6 +22,7 @@
 
 import org.eclipse.net4j.util.container.IContainer;
 import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 import org.eclipse.net4j.util.security.IPasswordCredentials;
 import org.eclipse.net4j.util.security.IPasswordCredentialsProvider2;
 import org.eclipse.net4j.util.security.IPasswordCredentialsUpdateProvider;
@@ -38,6 +39,7 @@
     IContainer<CDOBranch>, //
     IPasswordCredentialsProvider2, //
     IPasswordCredentialsUpdateProvider, //
+    IManagedContainerProvider, //
     CDOSessionProvider, //
     CDOViewOpener, //
     CDOTransactionOpener
@@ -57,6 +59,7 @@
   /**
    * @since 4.7
    */
+  @Override
   public IManagedContainer getContainer();
 
   public String getConnectorType();
diff --git a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/AbstractElement.java b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/AbstractElement.java
index 05c779c..209cbb0 100644
--- a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/AbstractElement.java
+++ b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/AbstractElement.java
@@ -17,6 +17,9 @@
 import org.eclipse.net4j.util.AdapterUtil;
 import org.eclipse.net4j.util.ObjectUtil;
 import org.eclipse.net4j.util.StringUtil;
+import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
+import org.eclipse.net4j.util.container.IPluginContainer;
 import org.eclipse.net4j.util.event.Notifier;
 import org.eclipse.net4j.util.io.IOUtil;
 
@@ -32,7 +35,7 @@
 /**
  * @author Eike Stepper
  */
-public abstract class AbstractElement extends Notifier implements CDOExplorerElement, Adapter.Internal
+public abstract class AbstractElement extends Notifier implements CDOExplorerElement, Adapter.Internal, IManagedContainerProvider
 {
   public static final String ILLEGAL_LABEL_CHARACTERS = "/\\:;,";
 
@@ -65,6 +68,12 @@
   public abstract AbstractManager<?> getManager();
 
   @Override
+  public IManagedContainer getContainer()
+  {
+    return IPluginContainer.INSTANCE;
+  }
+
+  @Override
   public final File getFolder()
   {
     return folder;
diff --git a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/checkouts/CDOCheckoutImpl.java b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/checkouts/CDOCheckoutImpl.java
index 7ae47d4..a48b2b6 100644
--- a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/checkouts/CDOCheckoutImpl.java
+++ b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/checkouts/CDOCheckoutImpl.java
@@ -36,7 +36,6 @@
 import org.eclipse.net4j.util.ObjectUtil;
 import org.eclipse.net4j.util.StringUtil;
 import org.eclipse.net4j.util.container.IManagedContainer;
-import org.eclipse.net4j.util.container.IPluginContainer;
 import org.eclipse.net4j.util.event.IEvent;
 import org.eclipse.net4j.util.event.IListener;
 import org.eclipse.net4j.util.lifecycle.ILifecycle;
@@ -975,11 +974,6 @@
     }
   }
 
-  protected IManagedContainer getContainer()
-  {
-    return IPluginContainer.INSTANCE;
-  }
-
   protected EObject loadRootObject()
   {
     if (CDOIDUtil.isNull(rootID))
diff --git a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/repositories/CDORepositoryImpl.java b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/repositories/CDORepositoryImpl.java
index ffefa0c..00a9dab 100644
--- a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/repositories/CDORepositoryImpl.java
+++ b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/repositories/CDORepositoryImpl.java
@@ -45,7 +45,6 @@
 import org.eclipse.net4j.util.container.ContainerEvent;
 import org.eclipse.net4j.util.container.IContainerEvent;
 import org.eclipse.net4j.util.container.IManagedContainer;
-import org.eclipse.net4j.util.container.IPluginContainer;
 import org.eclipse.net4j.util.event.IEvent;
 import org.eclipse.net4j.util.event.IListener;
 import org.eclipse.net4j.util.lifecycle.ILifecycle;
@@ -167,12 +166,6 @@
   }
 
   @Override
-  public IManagedContainer getContainer()
-  {
-    return IPluginContainer.INSTANCE;
-  }
-
-  @Override
   public CDORepositoryManagerImpl getManager()
   {
     return OM.getRepositoryManager();
diff --git a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/CDONet4jSessionImpl.java b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/CDONet4jSessionImpl.java
index 726ad33..dbf3d25 100644
--- a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/CDONet4jSessionImpl.java
+++ b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/CDONet4jSessionImpl.java
@@ -42,6 +42,8 @@
 import org.eclipse.net4j.signal.ISignalProtocol;
 import org.eclipse.net4j.signal.RemoteException;
 import org.eclipse.net4j.signal.SignalProtocol;
+import org.eclipse.net4j.util.container.ContainerUtil;
+import org.eclipse.net4j.util.container.IManagedContainer;
 import org.eclipse.net4j.util.io.IStreamWrapper;
 
 import org.eclipse.emf.spi.cdo.CDOSessionProtocol;
@@ -67,6 +69,18 @@
   {
   }
 
+  @Override
+  public IManagedContainer getContainer()
+  {
+    IManagedContainer container = ContainerUtil.getContainer(connector);
+    if (container != null)
+    {
+      return container;
+    }
+
+    return super.getContainer();
+  }
+
   public IStreamWrapper getStreamWrapper()
   {
     return streamWrapper;
diff --git a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/RecoveringCDOSessionImpl.java b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/RecoveringCDOSessionImpl.java
index 1a07c23..3794bf5 100644
--- a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/RecoveringCDOSessionImpl.java
+++ b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/RecoveringCDOSessionImpl.java
@@ -76,6 +76,7 @@
     this.container = container;
   }
 
+  @Override
   public IManagedContainer getContainer()
   {
     return container;
diff --git a/plugins/org.eclipse.emf.cdo.server.admin/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.server.admin/META-INF/MANIFEST.MF
index f62ffc3..687cf82 100644
--- a/plugins/org.eclipse.emf.cdo.server.admin/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.server.admin/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.emf.cdo.server.admin;singleton:=true
-Bundle-Version: 4.3.1.qualifier
+Bundle-Version: 4.3.2.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -17,12 +17,12 @@
  org.eclipse.emf.cdo.server.security;bundle-version="[4.3.0,5.0.0)",
  org.eclipse.emf.cdo.security;bundle-version="[4.3.0,5.0.0)",
  org.eclipse.net4j.jvm;bundle-version="[4.1.100,5.0.0)";resolution:=optional
-Export-Package: org.eclipse.emf.cdo.server.admin;version="4.3.1",
- org.eclipse.emf.cdo.server.internal.admin;x-internal:=true;version="4.3.1",
- org.eclipse.emf.cdo.server.internal.admin.bundle;x-internal:=true;version="4.3.1",
- org.eclipse.emf.cdo.server.internal.admin.protocol;x-internal:=true;version="4.3.1",
- org.eclipse.emf.cdo.server.spi.admin;version="4.3.1",
- org.eclipse.emf.cdo.server.internal.admin.catalog;x-internal:=true;version="4.3.1",
- org.eclipse.emf.cdo.server.internal.admin.catalog.impl;x-internal:=true;version="4.3.1",
- org.eclipse.emf.cdo.server.internal.admin.catalog.util;x-internal:=true;version="4.3.1"
+Export-Package: org.eclipse.emf.cdo.server.admin;version="4.3.2",
+ org.eclipse.emf.cdo.server.internal.admin;x-internal:=true;version="4.3.2",
+ org.eclipse.emf.cdo.server.internal.admin.bundle;x-internal:=true;version="4.3.2",
+ org.eclipse.emf.cdo.server.internal.admin.protocol;x-internal:=true;version="4.3.2",
+ org.eclipse.emf.cdo.server.spi.admin;version="4.3.2",
+ org.eclipse.emf.cdo.server.internal.admin.catalog;x-internal:=true;version="4.3.2",
+ org.eclipse.emf.cdo.server.internal.admin.catalog.impl;x-internal:=true;version="4.3.2",
+ org.eclipse.emf.cdo.server.internal.admin.catalog.util;x-internal:=true;version="4.3.2"
 Automatic-Module-Name: org.eclipse.emf.cdo.server.admin
diff --git a/plugins/org.eclipse.emf.cdo.server.admin/pom.xml b/plugins/org.eclipse.emf.cdo.server.admin/pom.xml
index 02e4d86..9dcd80d 100644
--- a/plugins/org.eclipse.emf.cdo.server.admin/pom.xml
+++ b/plugins/org.eclipse.emf.cdo.server.admin/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.emf.cdo.server.admin</artifactId>
-  <version>4.3.1-SNAPSHOT</version>
+  <version>4.3.2-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.emf.cdo.server.admin/src/org/eclipse/emf/cdo/server/internal/admin/CDOAdminServer.java b/plugins/org.eclipse.emf.cdo.server.admin/src/org/eclipse/emf/cdo/server/internal/admin/CDOAdminServer.java
index d4d27cf..e2d756e 100644
--- a/plugins/org.eclipse.emf.cdo.server.admin/src/org/eclipse/emf/cdo/server/internal/admin/CDOAdminServer.java
+++ b/plugins/org.eclipse.emf.cdo.server.admin/src/org/eclipse/emf/cdo/server/internal/admin/CDOAdminServer.java
@@ -33,6 +33,7 @@
 import org.eclipse.net4j.util.container.ContainerEventAdapter;
 import org.eclipse.net4j.util.container.IContainer;
 import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 import org.eclipse.net4j.util.container.IPluginContainer;
 import org.eclipse.net4j.util.event.IListener;
 import org.eclipse.net4j.util.lifecycle.ILifecycle;
@@ -49,7 +50,7 @@
 /**
  * @author Eike Stepper
  */
-public class CDOAdminServer extends AbstractCDOAdmin
+public class CDOAdminServer extends AbstractCDOAdmin implements IManagedContainerProvider
 {
   public static final String PROP_IGNORE = "org.eclipse.emf.cdo.server.admin.ignore";
 
@@ -90,6 +91,7 @@
     this.container = container;
   }
 
+  @Override
   public final IManagedContainer getContainer()
   {
     return container;
@@ -408,7 +410,7 @@
   /**
    * @author Eike Stepper
    */
-  public static class Factory extends org.eclipse.net4j.util.factory.Factory
+  public static class Factory extends org.eclipse.net4j.util.factory.Factory implements IManagedContainerProvider
   {
     public static final String PRODUCT_GROUP = "org.eclipse.emf.cdo.server.admin.adminServers";
 
@@ -430,6 +432,7 @@
       this.timeout = timeout;
     }
 
+    @Override
     public final IManagedContainer getContainer()
     {
       return container;
diff --git a/plugins/org.eclipse.emf.cdo.server.admin/src/org/eclipse/emf/cdo/server/internal/admin/protocol/CDOAdminServerProtocol.java b/plugins/org.eclipse.emf.cdo.server.admin/src/org/eclipse/emf/cdo/server/internal/admin/protocol/CDOAdminServerProtocol.java
index b2a4a2e..a7ba833 100644
--- a/plugins/org.eclipse.emf.cdo.server.admin/src/org/eclipse/emf/cdo/server/internal/admin/protocol/CDOAdminServerProtocol.java
+++ b/plugins/org.eclipse.emf.cdo.server.admin/src/org/eclipse/emf/cdo/server/internal/admin/protocol/CDOAdminServerProtocol.java
@@ -25,6 +25,7 @@
 import org.eclipse.net4j.signal.security.AuthenticationRequest;
 import org.eclipse.net4j.util.confirmation.Confirmation;
 import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 import org.eclipse.net4j.util.container.IPluginContainer;
 import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
 import org.eclipse.net4j.util.om.monitor.Monitor;
@@ -37,7 +38,7 @@
 /**
  * @author Eike Stepper
  */
-public class CDOAdminServerProtocol extends SignalProtocol<CDOAdminServer> implements IAuthenticationProtocol
+public class CDOAdminServerProtocol extends SignalProtocol<CDOAdminServer> implements IAuthenticationProtocol, IManagedContainerProvider
 {
   public static final long DEFAULT_NEGOTIATION_TIMEOUT = 15 * 1000;
 
@@ -53,6 +54,7 @@
     admin.registerProtocol(this);
   }
 
+  @Override
   public final IManagedContainer getContainer()
   {
     return container;
@@ -156,7 +158,7 @@
   /**
    * @author Eike Stepper
    */
-  public static class Factory extends ServerProtocolFactory
+  public static class Factory extends ServerProtocolFactory implements IManagedContainerProvider
   {
     public static final String TYPE = CDOAdminProtocolConstants.PROTOCOL_NAME;
 
@@ -168,6 +170,7 @@
       this.container = container;
     }
 
+    @Override
     public IManagedContainer getContainer()
     {
       return container;
diff --git a/plugins/org.eclipse.emf.cdo.server.db/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.server.db/META-INF/MANIFEST.MF
index 3eff0d6..591fc59 100644
--- a/plugins/org.eclipse.emf.cdo.server.db/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.server.db/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.emf.cdo.server.db;singleton:=true
-Bundle-Version: 4.10.1.qualifier
+Bundle-Version: 4.10.2.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -12,11 +12,11 @@
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.net4j.db;bundle-version="[4.0.0,5.0.0)";visibility:=reexport,
  org.eclipse.emf.cdo.server;bundle-version="[4.0.0,5.0.0)";visibility:=reexport
-Export-Package: org.eclipse.emf.cdo.server.db;version="4.10.1",
- org.eclipse.emf.cdo.server.db.mapping;version="4.10.1",
- org.eclipse.emf.cdo.server.internal.db;version="4.10.1";x-friends:="org.eclipse.emf.cdo.tests,org.eclipse.emf.cdo.tests.db,org.eclipse.emf.cdo.explorer.ui",
- org.eclipse.emf.cdo.server.internal.db.bundle;version="4.10.1";x-internal:=true,
- org.eclipse.emf.cdo.server.internal.db.mapping;version="4.10.1";x-friends:="org.eclipse.emf.cdo.tests,org.eclipse.emf.cdo.tests.db",
- org.eclipse.emf.cdo.server.internal.db.mapping.horizontal;version="4.10.1";x-friends:="org.eclipse.emf.cdo.tests,org.eclipse.emf.cdo.tests.db",
- org.eclipse.emf.cdo.server.internal.db.messages;version="4.10.1";x-internal:=true
+Export-Package: org.eclipse.emf.cdo.server.db;version="4.10.2",
+ org.eclipse.emf.cdo.server.db.mapping;version="4.10.2",
+ org.eclipse.emf.cdo.server.internal.db;version="4.10.2";x-friends:="org.eclipse.emf.cdo.tests,org.eclipse.emf.cdo.tests.db,org.eclipse.emf.cdo.explorer.ui",
+ org.eclipse.emf.cdo.server.internal.db.bundle;version="4.10.2";x-internal:=true,
+ org.eclipse.emf.cdo.server.internal.db.mapping;version="4.10.2";x-friends:="org.eclipse.emf.cdo.tests,org.eclipse.emf.cdo.tests.db",
+ org.eclipse.emf.cdo.server.internal.db.mapping.horizontal;version="4.10.2";x-friends:="org.eclipse.emf.cdo.tests,org.eclipse.emf.cdo.tests.db",
+ org.eclipse.emf.cdo.server.internal.db.messages;version="4.10.2";x-internal:=true
 Automatic-Module-Name: org.eclipse.emf.cdo.server.db
diff --git a/plugins/org.eclipse.emf.cdo.server.db/pom.xml b/plugins/org.eclipse.emf.cdo.server.db/pom.xml
index 3d8d6cd..524bccd 100644
--- a/plugins/org.eclipse.emf.cdo.server.db/pom.xml
+++ b/plugins/org.eclipse.emf.cdo.server.db/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.emf.cdo.server.db</artifactId>
-  <version>4.10.1-SNAPSHOT</version>
+  <version>4.10.2-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/TypeMappingRegistry.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/TypeMappingRegistry.java
index 8bc2839..b610cd6 100644
--- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/TypeMappingRegistry.java
+++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/TypeMappingRegistry.java
@@ -31,6 +31,7 @@
 import org.eclipse.net4j.util.container.IContainerDelta;
 import org.eclipse.net4j.util.container.IContainerDelta.Kind;
 import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 import org.eclipse.net4j.util.container.IPluginContainer;
 import org.eclipse.net4j.util.event.IEvent;
 import org.eclipse.net4j.util.event.IListener;
@@ -62,7 +63,7 @@
  *
  * @author Stefan Winkler
  */
-public class TypeMappingRegistry implements ITypeMapping.Registry, ITypeMapping.Provider
+public class TypeMappingRegistry implements ITypeMapping.Registry, ITypeMapping.Provider, IManagedContainerProvider
 {
   public static final EClass CUSTOM_DATA_TYPE = EcorePackage.Literals.EDATA_TYPE;
 
@@ -221,7 +222,8 @@
     classifierDefaultMapping.put(EtypesPackage.Literals.CLOB, DBType.VARCHAR); // TODO Should be DBType.CLOB?
   }
 
-  protected IManagedContainer getContainer()
+  @Override
+  public IManagedContainer getContainer()
   {
     return IPluginContainer.INSTANCE;
   }
diff --git a/plugins/org.eclipse.emf.cdo.server.embedded/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.server.embedded/META-INF/MANIFEST.MF
index 4b2c00f..b732e87 100644
--- a/plugins/org.eclipse.emf.cdo.server.embedded/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.server.embedded/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.emf.cdo.server.embedded;singleton:=true
-Bundle-Version: 4.9.0.qualifier
+Bundle-Version: 4.10.0.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -13,7 +13,7 @@
  org.eclipse.emf.cdo.net4j;bundle-version="[4.0.0,5.0.0)";visibility:=reexport,
  org.eclipse.emf.cdo.server.net4j;bundle-version="[4.0.0,5.0.0)";visibility:=reexport,
  org.eclipse.net4j.jvm;bundle-version="[4.0.0,5.0.0)";visibility:=reexport
-Export-Package: org.eclipse.emf.cdo.server.embedded;version="4.9.0",
- org.eclipse.emf.cdo.server.internal.embedded;version="4.9.0";x-friends:="org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.server.internal.embedded.bundle;version="4.9.0";x-internal:=true
+Export-Package: org.eclipse.emf.cdo.server.embedded;version="4.10.0",
+ org.eclipse.emf.cdo.server.internal.embedded;version="4.10.0";x-friends:="org.eclipse.emf.cdo.tests",
+ org.eclipse.emf.cdo.server.internal.embedded.bundle;version="4.10.0";x-internal:=true
 Automatic-Module-Name: org.eclipse.emf.cdo.server.embedded
diff --git a/plugins/org.eclipse.emf.cdo.server.embedded/pom.xml b/plugins/org.eclipse.emf.cdo.server.embedded/pom.xml
index 58957dc..a8af2bb 100644
--- a/plugins/org.eclipse.emf.cdo.server.embedded/pom.xml
+++ b/plugins/org.eclipse.emf.cdo.server.embedded/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.emf.cdo.server.embedded</artifactId>
-  <version>4.9.0-SNAPSHOT</version>
+  <version>4.10.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.emf.cdo.server.embedded/src/org/eclipse/emf/cdo/server/embedded/CDOEmbeddedRepositoryConfig.java b/plugins/org.eclipse.emf.cdo.server.embedded/src/org/eclipse/emf/cdo/server/embedded/CDOEmbeddedRepositoryConfig.java
index a987107..17e603a 100644
--- a/plugins/org.eclipse.emf.cdo.server.embedded/src/org/eclipse/emf/cdo/server/embedded/CDOEmbeddedRepositoryConfig.java
+++ b/plugins/org.eclipse.emf.cdo.server.embedded/src/org/eclipse/emf/cdo/server/embedded/CDOEmbeddedRepositoryConfig.java
@@ -25,6 +25,7 @@
 import org.eclipse.net4j.connector.IConnector;
 import org.eclipse.net4j.jvm.JVMUtil;
 import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 import org.eclipse.net4j.util.container.IPluginContainer;
 import org.eclipse.net4j.util.lifecycle.ILifecycle;
 import org.eclipse.net4j.util.lifecycle.Lifecycle;
@@ -42,7 +43,7 @@
  * @author Eike Stepper
  * @since 4.6
  */
-public abstract class CDOEmbeddedRepositoryConfig extends Lifecycle
+public abstract class CDOEmbeddedRepositoryConfig extends Lifecycle implements IManagedContainerProvider
 {
   private static final String JVM_ACCEPTOR_PREFIX = "cdo_embedded_repo_";
 
@@ -76,6 +77,7 @@
   /**
    * Subclasses may override.
    */
+  @Override
   public IManagedContainer getContainer()
   {
     return IPluginContainer.INSTANCE;
diff --git a/plugins/org.eclipse.emf.cdo.server.net4j/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.server.net4j/META-INF/MANIFEST.MF
index c41b566..8b705f4 100644
--- a/plugins/org.eclipse.emf.cdo.server.net4j/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.server.net4j/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.emf.cdo.server.net4j;singleton:=true
-Bundle-Version: 4.3.2.qualifier
+Bundle-Version: 4.4.0.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -12,7 +12,7 @@
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)";resolution:=optional,
  org.eclipse.emf.cdo.server;bundle-version="[4.0.0,5.0.0)";visibility:=reexport,
  org.eclipse.net4j;bundle-version="[4.0.0,5.0.0)";visibility:=reexport
-Export-Package: org.eclipse.emf.cdo.server.internal.net4j.bundle;version="4.3.2";x-internal:=true,
- org.eclipse.emf.cdo.server.internal.net4j.protocol;version="4.3.2";x-friends:="org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.server.net4j;version="4.3.2"
+Export-Package: org.eclipse.emf.cdo.server.internal.net4j.bundle;version="4.4.0";x-internal:=true,
+ org.eclipse.emf.cdo.server.internal.net4j.protocol;version="4.4.0";x-friends:="org.eclipse.emf.cdo.tests",
+ org.eclipse.emf.cdo.server.net4j;version="4.4.0"
 Automatic-Module-Name: org.eclipse.emf.cdo.server.net4j
diff --git a/plugins/org.eclipse.emf.cdo.server.net4j/pom.xml b/plugins/org.eclipse.emf.cdo.server.net4j/pom.xml
index f73555e..8eb0688 100644
--- a/plugins/org.eclipse.emf.cdo.server.net4j/pom.xml
+++ b/plugins/org.eclipse.emf.cdo.server.net4j/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.emf.cdo.server.net4j</artifactId>
-  <version>4.3.2-SNAPSHOT</version>
+  <version>4.4.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/net4j/FailoverAgent.java b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/net4j/FailoverAgent.java
index 7e6590b..d9a08e2 100644
--- a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/net4j/FailoverAgent.java
+++ b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/net4j/FailoverAgent.java
@@ -27,6 +27,7 @@
 import org.eclipse.net4j.util.concurrent.TimerLifecycle;
 import org.eclipse.net4j.util.concurrent.TimerLifecycle.DaemonFactory;
 import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 import org.eclipse.net4j.util.container.IPluginContainer;
 import org.eclipse.net4j.util.io.ExtendedDataInputStream;
 import org.eclipse.net4j.util.io.ExtendedDataOutputStream;
@@ -42,7 +43,7 @@
  * @author Eike Stepper
  * @since 4.0
  */
-public abstract class FailoverAgent extends Lifecycle implements CDOSessionConfigurationFactory
+public abstract class FailoverAgent extends Lifecycle implements CDOSessionConfigurationFactory, IManagedContainerProvider
 {
   private IConnector monitorConnector;
 
@@ -75,6 +76,7 @@
   /**
    * @since 4.1
    */
+  @Override
   public IManagedContainer getContainer()
   {
     return IPluginContainer.INSTANCE;
diff --git a/plugins/org.eclipse.emf.cdo.server.security/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.server.security/META-INF/MANIFEST.MF
index 89a7da1..20f7458 100644
--- a/plugins/org.eclipse.emf.cdo.server.security/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.server.security/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.emf.cdo.server.security;singleton:=true
 Bundle-Name: %pluginName
-Bundle-Version: 4.6.0.qualifier
+Bundle-Version: 4.7.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -12,13 +12,13 @@
  org.eclipse.emf.cdo.security;bundle-version="[4.1.0,5.0.0)";visibility:=reexport,
  org.eclipse.emf.cdo.net4j;bundle-version="[4.1.0,5.0.0)",
  org.eclipse.net4j.jvm;bundle-version="[4.1.0,5.0.0)"
-Export-Package: org.eclipse.emf.cdo.server.internal.security;version="4.6.0";
+Export-Package: org.eclipse.emf.cdo.server.internal.security;version="4.7.0";
   x-friends:="org.eclipse.emf.cdo.tests,
    org.eclipse.emf.cdo.tests.db,
    org.eclipse.emf.cdo.tests.mongodb",
- org.eclipse.emf.cdo.server.internal.security.bundle;version="4.6.0";x-internal:=true,
- org.eclipse.emf.cdo.server.security;version="4.6.0",
- org.eclipse.emf.cdo.server.spi.security;version="4.6.0"
+ org.eclipse.emf.cdo.server.internal.security.bundle;version="4.7.0";x-internal:=true,
+ org.eclipse.emf.cdo.server.security;version="4.7.0",
+ org.eclipse.emf.cdo.server.spi.security;version="4.7.0"
 Bundle-ActivationPolicy: lazy
 Bundle-Activator: org.eclipse.emf.cdo.server.internal.security.bundle.OM$Activator
 Automatic-Module-Name: org.eclipse.emf.cdo.server.security
diff --git a/plugins/org.eclipse.emf.cdo.server.security/pom.xml b/plugins/org.eclipse.emf.cdo.server.security/pom.xml
index 1951fa1..7b7d57d 100644
--- a/plugins/org.eclipse.emf.cdo.server.security/pom.xml
+++ b/plugins/org.eclipse.emf.cdo.server.security/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.emf.cdo.server.security</artifactId>
-  <version>4.6.0-SNAPSHOT</version>
+  <version>4.7.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/spi/security/InternalSecurityManager.java b/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/spi/security/InternalSecurityManager.java
index 4bee9af..852ee1e 100644
--- a/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/spi/security/InternalSecurityManager.java
+++ b/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/spi/security/InternalSecurityManager.java
@@ -15,7 +15,7 @@
 import org.eclipse.emf.cdo.server.security.ISecurityManager;
 import org.eclipse.emf.cdo.spi.server.InternalRepository;
 
-import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 import org.eclipse.net4j.util.factory.ProductCreationException;
 
 /**
@@ -25,10 +25,8 @@
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
  */
-public interface InternalSecurityManager extends ISecurityManager
+public interface InternalSecurityManager extends ISecurityManager, IManagedContainerProvider
 {
-  public IManagedContainer getContainer();
-
   public void setRepository(InternalRepository repository);
 
   /**
diff --git a/plugins/org.eclipse.emf.cdo.server/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.server/META-INF/MANIFEST.MF
index 34052a8..c31a5b3 100644
--- a/plugins/org.eclipse.emf.cdo.server/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.server/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.emf.cdo.server;singleton:=true
-Bundle-Version: 4.12.1.qualifier
+Bundle-Version: 4.13.0.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -10,17 +10,17 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ClassPath: .
 Require-Bundle: org.eclipse.emf.cdo;bundle-version="[4.0.0,5.0.0)";visibility:=reexport
-Export-Package: org.eclipse.emf.cdo.internal.server;version="4.12.1";
+Export-Package: org.eclipse.emf.cdo.internal.server;version="4.13.0";
   x-friends:="org.eclipse.emf.cdo.server.db,
    org.eclipse.emf.cdo.server.net4j,
    org.eclipse.emf.cdo.tests,
    org.eclipse.emf.cdo.workspace,
    org.eclipse.emf.cdo.server.embedded",
- org.eclipse.emf.cdo.internal.server.bundle;version="4.12.1";x-internal:=true,
- org.eclipse.emf.cdo.internal.server.mem;version="4.12.1";x-friends:="org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.internal.server.messages;version="4.12.1";x-internal:=true,
- org.eclipse.emf.cdo.internal.server.syncing;version="4.12.1";x-friends:="org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.server;version="4.12.1",
- org.eclipse.emf.cdo.server.mem;version="4.12.1",
- org.eclipse.emf.cdo.spi.server;version="4.12.1"
+ org.eclipse.emf.cdo.internal.server.bundle;version="4.13.0";x-internal:=true,
+ org.eclipse.emf.cdo.internal.server.mem;version="4.13.0";x-friends:="org.eclipse.emf.cdo.tests",
+ org.eclipse.emf.cdo.internal.server.messages;version="4.13.0";x-internal:=true,
+ org.eclipse.emf.cdo.internal.server.syncing;version="4.13.0";x-friends:="org.eclipse.emf.cdo.tests",
+ org.eclipse.emf.cdo.server;version="4.13.0",
+ org.eclipse.emf.cdo.server.mem;version="4.13.0",
+ org.eclipse.emf.cdo.spi.server;version="4.13.0"
 Automatic-Module-Name: org.eclipse.emf.cdo.server
diff --git a/plugins/org.eclipse.emf.cdo.server/pom.xml b/plugins/org.eclipse.emf.cdo.server/pom.xml
index 16e656b..5722cbc 100644
--- a/plugins/org.eclipse.emf.cdo.server/pom.xml
+++ b/plugins/org.eclipse.emf.cdo.server/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.emf.cdo.server</artifactId>
-  <version>4.12.1-SNAPSHOT</version>
+  <version>4.13.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/ServerCDOView.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/ServerCDOView.java
index 0da5976..a4d1eb0 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/ServerCDOView.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/ServerCDOView.java
@@ -606,14 +606,7 @@
    */
   private final class ServerCDOSession extends PlatformObject implements InternalCDOSession, CDORepositoryInfo, org.eclipse.emf.cdo.session.CDOSession.Options
   {
-    private final IRegistry<String, Object> properties = new HashMapRegistry<String, Object>()
-    {
-      @Override
-      public void setAutoCommit(boolean autoCommit)
-      {
-        throw new UnsupportedOperationException();
-      }
-    };
+    private final IRegistry<String, Object> properties = new HashMapRegistry.AutoCommit<>();
 
     private final InternalSession internalSession;
 
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java
index 965e425..69d8d46 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java
@@ -112,14 +112,7 @@
 
   private AtomicInteger lastTempViewID = new AtomicInteger();
 
-  private final IRegistry<String, Object> properties = new HashMapRegistry<String, Object>()
-  {
-    @Override
-    public void setAutoCommit(boolean autoCommit)
-    {
-      throw new UnsupportedOperationException();
-    }
-  };
+  private final IRegistry<String, Object> properties = new HashMapRegistry.AutoCommit<>();
 
   @ExcludeFromDump
   private IListener protocolListener = new LifecycleEventAdapter()
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/View.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/View.java
index 717fb55..b1b82c3 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/View.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/View.java
@@ -76,14 +76,7 @@
 
   private boolean closed;
 
-  private final IRegistry<String, Object> properties = new HashMapRegistry<String, Object>()
-  {
-    @Override
-    public void setAutoCommit(boolean autoCommit)
-    {
-      throw new UnsupportedOperationException();
-    }
-  };
+  private final IRegistry<String, Object> properties = new HashMapRegistry.AutoCommit<>();
 
   /**
    * @since 2.0
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/SynchronizableRepository.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/SynchronizableRepository.java
index 411f39c..4c21245 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/SynchronizableRepository.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/SynchronizableRepository.java
@@ -238,19 +238,17 @@
   @Override
   public String[] getLockAreaIDs()
   {
+    StoreThreadLocal.setSession(replicatorSession);
+
     try
     {
-      StoreThreadLocal.setSession(replicatorSession);
-      final List<String> areaIDs = new LinkedList<>();
-      getLockingManager().getLockAreas(null, new LockArea.Handler()
-      {
-        @Override
-        public boolean handleLockArea(LockArea area)
-        {
-          areaIDs.add(area.getDurableLockingID());
-          return true;
-        }
+      List<String> areaIDs = new LinkedList<>();
+
+      getLockingManager().getLockAreas(null, area -> {
+        areaIDs.add(area.getDurableLockingID());
+        return true;
       });
+
       return areaIDs.toArray(new String[areaIDs.size()]);
     }
     finally
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/ContainerQueryHandlerProvider.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/ContainerQueryHandlerProvider.java
index f4154b6..6acfbeb 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/ContainerQueryHandlerProvider.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/ContainerQueryHandlerProvider.java
@@ -15,6 +15,7 @@
 import org.eclipse.emf.cdo.server.IQueryHandlerProvider;
 
 import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 
 /**
  * If the meaning of this type isn't clear, there really should be more of a description here...
@@ -22,7 +23,7 @@
  * @author Eike Stepper
  * @since 2.0
  */
-public class ContainerQueryHandlerProvider implements IQueryHandlerProvider
+public class ContainerQueryHandlerProvider implements IQueryHandlerProvider, IManagedContainerProvider
 {
   private IManagedContainer container;
 
@@ -31,6 +32,7 @@
     this.container = container;
   }
 
+  @Override
   public IManagedContainer getContainer()
   {
     return container;
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/ContainerRepositoryProvider.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/ContainerRepositoryProvider.java
index da12f88..1c1d6fa 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/ContainerRepositoryProvider.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/ContainerRepositoryProvider.java
@@ -14,6 +14,7 @@
 import org.eclipse.emf.cdo.server.IRepositoryProvider;
 
 import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 
 /**
  * If the meaning of this type isn't clear, there really should be more of a description here...
@@ -21,7 +22,7 @@
  * @author Eike Stepper
  * @since 2.0
  */
-public class ContainerRepositoryProvider implements IRepositoryProvider
+public class ContainerRepositoryProvider implements IRepositoryProvider, IManagedContainerProvider
 {
   private IManagedContainer container;
 
@@ -30,6 +31,7 @@
     this.container = container;
   }
 
+  @Override
   public IManagedContainer getContainer()
   {
     return container;
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/InternalRepository.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/InternalRepository.java
index fb5af18..b4c17f3 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/InternalRepository.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/InternalRepository.java
@@ -45,6 +45,7 @@
 import org.eclipse.net4j.util.concurrent.IExecutorServiceProvider;
 import org.eclipse.net4j.util.concurrent.IRWLockManager.LockType;
 import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 import org.eclipse.net4j.util.event.IEvent;
 import org.eclipse.net4j.util.om.monitor.OMMonitor;
 
@@ -69,8 +70,15 @@
  * @noextend This interface is not intended to be extended by clients.
  * @noimplement This interface is not intended to be implemented by clients.
  */
-public interface InternalRepository
-    extends IRepository, PackageProcessor, PackageLoader, BranchLoader4, RevisionLoader2, CommitInfoLoader, CDORevisionUnchunker, IExecutorServiceProvider
+public interface InternalRepository extends IRepository, //
+    PackageProcessor, //
+    PackageLoader, //
+    BranchLoader4, //
+    RevisionLoader2, //
+    CommitInfoLoader, //
+    CDORevisionUnchunker, //
+    IExecutorServiceProvider, //
+    IManagedContainerProvider
 {
   public void setName(String name);
 
@@ -162,11 +170,6 @@
   /**
    * @since 4.3
    */
-  public IManagedContainer getContainer();
-
-  /**
-   * @since 4.3
-   */
   public void setContainer(IManagedContainer container);
 
   public InternalCommitManager getCommitManager();
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/RepositoryConfigurator.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/RepositoryConfigurator.java
index 259de56..cb6009f 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/RepositoryConfigurator.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/RepositoryConfigurator.java
@@ -25,6 +25,7 @@
 import org.eclipse.net4j.util.StringUtil;
 import org.eclipse.net4j.util.container.IManagedContainer;
 import org.eclipse.net4j.util.container.IManagedContainer.ContainerAware;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 import org.eclipse.net4j.util.factory.ProductCreationException;
 import org.eclipse.net4j.util.factory.PropertiesFactory;
 import org.eclipse.net4j.util.om.OMPlatform;
@@ -67,7 +68,7 @@
  * @author Eike Stepper
  * @since 4.0
  */
-public class RepositoryConfigurator
+public class RepositoryConfigurator implements IManagedContainerProvider
 {
   private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_REPOSITORY, RepositoryConfigurator.class);
 
@@ -89,6 +90,7 @@
     this.container = container;
   }
 
+  @Override
   public IManagedContainer getContainer()
   {
     return container;
diff --git a/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF
index 39552b2..d375698 100644
--- a/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.cdo.ui;singleton:=true
-Bundle-Version: 4.9.1.qualifier
+Bundle-Version: 4.10.0.qualifier
 Bundle-Activator: org.eclipse.emf.cdo.internal.ui.bundle.OM$Activator
 Bundle-Vendor: %providerName
 Bundle-ClassPath: .
@@ -29,7 +29,7 @@
  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)";resolution:=optional;x-installation:=greedy,
  org.eclipse.jdt.ui;bundle-version="[3.5.0,4.0.0)";resolution:=optional,
  org.eclipse.ui.editors;bundle-version="[3.5.0,4.0.0)";resolution:=optional
-Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.9.1";
+Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.10.0";
   x-friends:="org.eclipse.emf.cdo.ui.ide,
    org.eclipse.emf.cdo.ui.location,
    org.eclipse.emf.cdo.tests.ui,
@@ -38,7 +38,7 @@
    org.eclipse.emf.cdo.explorer.ui,
    org.eclipse.emf.cdo.ui.team,
    org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.actions;version="4.9.1";
+ org.eclipse.emf.cdo.internal.ui.actions;version="4.10.0";
   x-friends:="org.eclipse.emf.cdo.ui.ide,
    org.eclipse.emf.cdo.ui.location,
    org.eclipse.emf.cdo.tests.ui,
@@ -47,7 +47,7 @@
    org.eclipse.emf.cdo.explorer.ui,
    org.eclipse.emf.cdo.ui.team,
    org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.handlers;version="4.9.1";
+ org.eclipse.emf.cdo.internal.ui.handlers;version="4.10.0";
   x-friends:="org.eclipse.emf.cdo.ui.ide,
    org.eclipse.emf.cdo.ui.location,
    org.eclipse.emf.cdo.tests.ui,
@@ -56,9 +56,9 @@
    org.eclipse.emf.cdo.explorer.ui,
    org.eclipse.emf.cdo.ui.team,
    org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.actions.delegates;version="4.9.1";x-internal:=true,
- org.eclipse.emf.cdo.internal.ui.bundle;version="4.9.1";x-internal:=true,
- org.eclipse.emf.cdo.internal.ui.dialogs;version="4.9.1";
+ org.eclipse.emf.cdo.internal.ui.actions.delegates;version="4.10.0";x-internal:=true,
+ org.eclipse.emf.cdo.internal.ui.bundle;version="4.10.0";x-internal:=true,
+ org.eclipse.emf.cdo.internal.ui.dialogs;version="4.10.0";
   x-friends:="org.eclipse.emf.cdo.ui.ide,
    org.eclipse.emf.cdo.ui.location,
    org.eclipse.emf.cdo.tests.ui,
@@ -67,7 +67,7 @@
    org.eclipse.emf.cdo.explorer.ui,
    org.eclipse.emf.cdo.ui.team,
    org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.dnd;version="4.9.1";
+ org.eclipse.emf.cdo.internal.ui.dnd;version="4.10.0";
   x-friends:="org.eclipse.emf.cdo.ui.ide,
    org.eclipse.emf.cdo.ui.location,
    org.eclipse.emf.cdo.tests.ui,
@@ -76,7 +76,7 @@
    org.eclipse.emf.cdo.explorer.ui,
    org.eclipse.emf.cdo.ui.team,
    org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.editor;version="4.9.1";
+ org.eclipse.emf.cdo.internal.ui.editor;version="4.10.0";
   x-friends:="org.eclipse.emf.cdo.ui.ide,
    org.eclipse.emf.cdo.ui.location,
    org.eclipse.emf.cdo.tests.ui,
@@ -85,7 +85,7 @@
    org.eclipse.emf.cdo.explorer.ui,
    org.eclipse.emf.cdo.ui.team,
    org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.filters;version="4.9.1";
+ org.eclipse.emf.cdo.internal.ui.filters;version="4.10.0";
   x-friends:="org.eclipse.emf.cdo.ui.ide,
    org.eclipse.emf.cdo.ui.location,
    org.eclipse.emf.cdo.tests.ui,
@@ -94,7 +94,7 @@
    org.eclipse.emf.cdo.explorer.ui,
    org.eclipse.emf.cdo.ui.team,
    org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.history;version="4.9.1";
+ org.eclipse.emf.cdo.internal.ui.history;version="4.10.0";
   x-friends:="org.eclipse.emf.cdo.ui.ide,
    org.eclipse.emf.cdo.ui.location,
    org.eclipse.emf.cdo.tests.ui,
@@ -103,7 +103,7 @@
    org.eclipse.emf.cdo.explorer.ui,
    org.eclipse.emf.cdo.ui.team,
    org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.messages;version="4.9.1";
+ org.eclipse.emf.cdo.internal.ui.messages;version="4.10.0";
   x-friends:="org.eclipse.emf.cdo.ui.ide,
    org.eclipse.emf.cdo.ui.location,
    org.eclipse.emf.cdo.tests.ui,
@@ -112,7 +112,7 @@
    org.eclipse.emf.cdo.explorer.ui,
    org.eclipse.emf.cdo.ui.team,
    org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.perspectives;version="4.9.1";
+ org.eclipse.emf.cdo.internal.ui.perspectives;version="4.10.0";
   x-friends:="org.eclipse.emf.cdo.ui.ide,
    org.eclipse.emf.cdo.ui.location,
    org.eclipse.emf.cdo.tests.ui,
@@ -121,7 +121,7 @@
    org.eclipse.emf.cdo.explorer.ui,
    org.eclipse.emf.cdo.ui.team,
    org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.preferences;version="4.9.1";
+ org.eclipse.emf.cdo.internal.ui.preferences;version="4.10.0";
   x-friends:="org.eclipse.emf.cdo.ui.ide,
    org.eclipse.emf.cdo.ui.location,
    org.eclipse.emf.cdo.tests.ui,
@@ -130,7 +130,7 @@
    org.eclipse.emf.cdo.explorer.ui,
    org.eclipse.emf.cdo.ui.team,
    org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.transfer;version="4.9.1";
+ org.eclipse.emf.cdo.internal.ui.transfer;version="4.10.0";
   x-friends:="org.eclipse.emf.cdo.ui.ide,
    org.eclipse.emf.cdo.ui.location,
    org.eclipse.emf.cdo.tests.ui,
@@ -139,7 +139,7 @@
    org.eclipse.emf.cdo.explorer.ui,
    org.eclipse.emf.cdo.ui.team,
    org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.views;version="4.9.1";
+ org.eclipse.emf.cdo.internal.ui.views;version="4.10.0";
   x-friends:="org.eclipse.emf.cdo.ui.ide,
    org.eclipse.emf.cdo.ui.location,
    org.eclipse.emf.cdo.tests.ui,
@@ -148,6 +148,6 @@
    org.eclipse.emf.cdo.explorer.ui,
    org.eclipse.emf.cdo.ui.team,
    org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.ui;version="4.9.1",
- org.eclipse.emf.cdo.ui.widgets;version="4.9.1"
+ org.eclipse.emf.cdo.ui;version="4.10.0",
+ org.eclipse.emf.cdo.ui.widgets;version="4.10.0"
 Automatic-Module-Name: org.eclipse.emf.cdo.ui
diff --git a/plugins/org.eclipse.emf.cdo.ui/pom.xml b/plugins/org.eclipse.emf.cdo.ui/pom.xml
index f75ae2f..7a50a9d 100644
--- a/plugins/org.eclipse.emf.cdo.ui/pom.xml
+++ b/plugins/org.eclipse.emf.cdo.ui/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.emf.cdo.ui</artifactId>
-  <version>4.9.1-SNAPSHOT</version>
+  <version>4.10.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/editor/CDOActionBarContributor.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/editor/CDOActionBarContributor.java
index d9ff2ef..28e7c27 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/editor/CDOActionBarContributor.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/editor/CDOActionBarContributor.java
@@ -585,7 +585,7 @@
   public void activate()
   {
     CDOEditor cdoEditor = (CDOEditor)activeEditor;
-    if (cdoEditor.pagesCreated.get())
+    if (cdoEditor != null && cdoEditor.pagesCreated.get())
     {
       importRootsAction.setActiveWorkbenchPart(activeEditor);
 
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/messages/messages.properties b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/messages/messages.properties
index 7d028c7..63bc93e 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/messages/messages.properties
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/messages/messages.properties
@@ -41,6 +41,7 @@
 CDOEditor.29=Other
 CDOEditorInputImpl.0=View closed
 CDOEditorInputImpl.1=View opening
+CDOCommitCommentPrompter.0=Enter Commit Comment
 CDOInteractiveExceptionHandler.0=CDO Session Protocol Problem
 CDOInteractiveExceptionHandler.1=attempt
 CDOInteractiveExceptionHandler.2=attempts
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/ui/CDOCommitCommentPrompter.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/ui/CDOCommitCommentPrompter.java
new file mode 100644
index 0000000..64f0a48
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/ui/CDOCommitCommentPrompter.java
@@ -0,0 +1,162 @@
+/*
+ * Copyright (c) 2021 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
+ *
+ * Contributors:
+ *    Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.ui;
+
+import org.eclipse.emf.cdo.CDOObject;
+import org.eclipse.emf.cdo.internal.ui.messages.Messages;
+import org.eclipse.emf.cdo.transaction.CDOConflictResolver3;
+import org.eclipse.emf.cdo.transaction.CDOTransaction;
+import org.eclipse.emf.cdo.ui.shared.SharedIcons;
+
+import org.eclipse.net4j.util.StringUtil;
+import org.eclipse.net4j.util.ui.UIUtil;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.TitleAreaDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+import java.util.Set;
+
+/**
+ * @author Eike Stepper
+ * @since 4.10
+ */
+public class CDOCommitCommentPrompter
+{
+  private final CDOConflictResolver3 impl = new CDOConflictResolver3()
+  {
+    @Override
+    public CDOTransaction getTransaction()
+    {
+      return transaction;
+    }
+
+    @Override
+    public void setTransaction(CDOTransaction tx)
+    {
+      transaction = tx;
+      comment = StringUtil.EMPTY;
+    }
+
+    @Override
+    public boolean preCommit()
+    {
+      CommentDialog dialog = createDialog(comment);
+
+      int[] result = { Dialog.OK };
+      UIUtil.syncExec(() -> result[0] = dialog.open());
+
+      if (result[0] != Dialog.OK)
+      {
+        return false;
+      }
+
+      comment = dialog.getComment();
+      transaction.setCommitComment(comment.length() == 0 ? null : comment.trim());
+      return true;
+    }
+
+    @Override
+    public void resolveConflicts(Set<CDOObject> conflicts)
+    {
+      // Do nothing.
+    }
+  };
+
+  private CDOTransaction transaction;
+
+  private String comment;
+
+  public CDOCommitCommentPrompter(CDOTransaction transaction)
+  {
+    transaction.options().addConflictResolver(impl);
+  }
+
+  public final CDOTransaction getTransaction()
+  {
+    return transaction;
+  }
+
+  public void dispose()
+  {
+    transaction.options().removeConflictResolver(impl);
+    transaction = null;
+  }
+
+  protected CommentDialog createDialog(String defaultComment)
+  {
+    return new CommentDialog(getParentShell(), defaultComment);
+  }
+
+  protected Shell getParentShell()
+  {
+    return UIUtil.getShell();
+  }
+
+  /**
+   * @author Eike Stepper
+   */
+  public static class CommentDialog extends TitleAreaDialog
+  {
+    public static final String TITLE = Messages.getString("CDOCommitCommentPrompter.0"); //$NON-NLS-1$
+
+    private String comment;
+
+    public CommentDialog(Shell parentShell, String defaultComment)
+    {
+      super(parentShell);
+      setShellStyle(getShellStyle() | SWT.APPLICATION_MODAL | SWT.MAX | SWT.TITLE | SWT.RESIZE);
+      comment = defaultComment == null ? StringUtil.EMPTY : defaultComment;
+    }
+
+    public String getComment()
+    {
+      return comment;
+    }
+
+    @Override
+    protected Control createDialogArea(Composite parent)
+    {
+      getShell().setText(TITLE);
+      setTitle(TITLE);
+      setTitleImage(SharedIcons.getImage(SharedIcons.WIZBAN_COMMIT));
+
+      GridLayout layout = UIUtil.createGridLayout(1);
+      layout.marginWidth = 10;
+      layout.marginHeight = 10;
+
+      Composite composite = new Composite((Composite)super.createDialogArea(parent), SWT.NONE);
+      composite.setLayoutData(UIUtil.createGridData());
+      composite.setLayout(layout);
+
+      Text text = new Text(composite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
+      text.setLayoutData(UIUtil.createGridData());
+      text.setBackground(text.getDisplay().getSystemColor(SWT.COLOR_WHITE));
+      text.setText(comment);
+      text.selectAll();
+      text.addModifyListener(e -> comment = text.getText());
+      text.addTraverseListener(e -> {
+        if (e.detail == SWT.TRAVERSE_RETURN && (e.stateMask & SWT.CTRL) != 0)
+        {
+          close();
+          e.doit = true;
+        }
+      });
+
+      return composite;
+    }
+  }
+}
diff --git a/plugins/org.eclipse.emf.cdo.workspace/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.workspace/META-INF/MANIFEST.MF
index aad576d..e40994d 100644
--- a/plugins/org.eclipse.emf.cdo.workspace/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.workspace/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.emf.cdo.workspace;singleton:=true
-Bundle-Version: 4.3.0.qualifier
+Bundle-Version: 4.4.0.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -13,8 +13,8 @@
  org.eclipse.emf.cdo.server.net4j;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.emf.cdo.net4j;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.net4j.jvm;bundle-version="[4.0.0,5.0.0)"
-Export-Package: org.eclipse.emf.cdo.internal.workspace;version="4.3.0";x-friends:="org.eclipse.emf.cdo.tests,org.eclipse.emf.cdo.tests.db,org.eclipse.emf.cdo.ui.workspace",
- org.eclipse.emf.cdo.internal.workspace.bundle;version="4.3.0";x-internal:=true,
- org.eclipse.emf.cdo.spi.workspace;version="4.3.0",
- org.eclipse.emf.cdo.workspace;version="4.3.0"
+Export-Package: org.eclipse.emf.cdo.internal.workspace;version="4.4.0";x-friends:="org.eclipse.emf.cdo.tests,org.eclipse.emf.cdo.tests.db,org.eclipse.emf.cdo.ui.workspace",
+ org.eclipse.emf.cdo.internal.workspace.bundle;version="4.4.0";x-internal:=true,
+ org.eclipse.emf.cdo.spi.workspace;version="4.4.0",
+ org.eclipse.emf.cdo.workspace;version="4.4.0"
 Automatic-Module-Name: org.eclipse.emf.cdo.workspace
diff --git a/plugins/org.eclipse.emf.cdo.workspace/pom.xml b/plugins/org.eclipse.emf.cdo.workspace/pom.xml
index f1e6023..3be066d 100644
--- a/plugins/org.eclipse.emf.cdo.workspace/pom.xml
+++ b/plugins/org.eclipse.emf.cdo.workspace/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.emf.cdo.workspace</artifactId>
-  <version>4.3.0-SNAPSHOT</version>
+  <version>4.4.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/spi/workspace/InternalCDOWorkspace.java b/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/spi/workspace/InternalCDOWorkspace.java
index 10ddc8f..d6ebf6e 100644
--- a/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/spi/workspace/InternalCDOWorkspace.java
+++ b/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/spi/workspace/InternalCDOWorkspace.java
@@ -16,7 +16,7 @@
 import org.eclipse.emf.cdo.spi.server.InternalRepository;
 import org.eclipse.emf.cdo.workspace.CDOWorkspace;
 
-import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 
 import org.eclipse.emf.spi.cdo.InternalCDOSession;
 import org.eclipse.emf.spi.cdo.InternalCDOView;
@@ -28,7 +28,7 @@
  * @noextend This interface is not intended to be extended by clients.
  * @noimplement This interface is not intended to be implemented by clients.
  */
-public interface InternalCDOWorkspace extends CDOWorkspace
+public interface InternalCDOWorkspace extends CDOWorkspace, IManagedContainerProvider
 {
   /**
    * @since 4.2
@@ -38,11 +38,6 @@
   /**
    * @since 4.2
    */
-  public IManagedContainer getContainer();
-
-  /**
-   * @since 4.2
-   */
   public InternalCDOView[] getViews();
 
   /**
diff --git a/plugins/org.eclipse.emf.cdo/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo/META-INF/MANIFEST.MF
index 1040dbb..5d693aa 100644
--- a/plugins/org.eclipse.emf.cdo/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.cdo; singleton:=true
-Bundle-Version: 4.13.1.qualifier
+Bundle-Version: 4.14.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -10,28 +10,28 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)";resolution:=optional,
  org.eclipse.emf.cdo.common;bundle-version="[4.0.0,5.0.0)";visibility:=reexport
-Export-Package: org.eclipse.emf.cdo;version="4.13.1",
- org.eclipse.emf.cdo.eresource;version="4.13.1",
- org.eclipse.emf.cdo.eresource.impl;version="4.13.1",
- org.eclipse.emf.cdo.eresource.util;version="4.13.1",
- org.eclipse.emf.cdo.eresource.validation;version="4.13.1",
- org.eclipse.emf.cdo.etypes;version="4.13.1",
- org.eclipse.emf.cdo.etypes.impl;version="4.13.1",
- org.eclipse.emf.cdo.etypes.util;version="4.13.1",
- org.eclipse.emf.cdo.session;version="4.13.1",
- org.eclipse.emf.cdo.session.remote;version="4.13.1",
- org.eclipse.emf.cdo.transaction;version="4.13.1",
- org.eclipse.emf.cdo.util;version="4.13.1",
- org.eclipse.emf.cdo.view;version="4.13.1",
- org.eclipse.emf.internal.cdo;version="4.13.1",
- org.eclipse.emf.internal.cdo.analyzer;version="4.13.1";
+Export-Package: org.eclipse.emf.cdo;version="4.14.0",
+ org.eclipse.emf.cdo.eresource;version="4.14.0",
+ org.eclipse.emf.cdo.eresource.impl;version="4.14.0",
+ org.eclipse.emf.cdo.eresource.util;version="4.14.0",
+ org.eclipse.emf.cdo.eresource.validation;version="4.14.0",
+ org.eclipse.emf.cdo.etypes;version="4.14.0",
+ org.eclipse.emf.cdo.etypes.impl;version="4.14.0",
+ org.eclipse.emf.cdo.etypes.util;version="4.14.0",
+ org.eclipse.emf.cdo.session;version="4.14.0",
+ org.eclipse.emf.cdo.session.remote;version="4.14.0",
+ org.eclipse.emf.cdo.transaction;version="4.14.0",
+ org.eclipse.emf.cdo.util;version="4.14.0",
+ org.eclipse.emf.cdo.view;version="4.14.0",
+ org.eclipse.emf.internal.cdo;version="4.14.0",
+ org.eclipse.emf.internal.cdo.analyzer;version="4.14.0";
   x-friends:="org.eclipse.emf.cdo.net4j,
    org.eclipse.emf.cdo.server,
    org.eclipse.emf.cdo.tests,
    org.eclipse.emf.cdo.ui",
- org.eclipse.emf.internal.cdo.bundle;version="4.13.1";x-friends:="org.eclipse.emf.cdo.ui",
- org.eclipse.emf.internal.cdo.messages;version="4.13.1";x-internal:=true,
- org.eclipse.emf.internal.cdo.object;version="4.13.1";
+ org.eclipse.emf.internal.cdo.bundle;version="4.14.0";x-friends:="org.eclipse.emf.cdo.ui",
+ org.eclipse.emf.internal.cdo.messages;version="4.14.0";x-internal:=true,
+ org.eclipse.emf.internal.cdo.object;version="4.14.0";
   x-friends:="org.eclipse.emf.cdo.net4j,
    org.eclipse.emf.cdo.server,
    org.eclipse.emf.cdo.tests,
@@ -40,12 +40,12 @@
    org.eclipse.emf.cdo.explorer,
    org.eclipse.emf.cdo.explorer.ui,
    org.eclipse.emf.cdo.edit",
- org.eclipse.emf.internal.cdo.query;version="4.13.1";
+ org.eclipse.emf.internal.cdo.query;version="4.14.0";
   x-friends:="org.eclipse.emf.cdo.net4j,
    org.eclipse.emf.cdo.server,
    org.eclipse.emf.cdo.tests,
    org.eclipse.emf.cdo.ui",
- org.eclipse.emf.internal.cdo.session;version="4.13.1";
+ org.eclipse.emf.internal.cdo.session;version="4.14.0";
   x-friends:="org.eclipse.emf.cdo.net4j,
    org.eclipse.emf.cdo.server,
    org.eclipse.emf.cdo.tests,
@@ -55,23 +55,23 @@
    org.eclipse.emf.cdo.security.ui,
    org.eclipse.emf.cdo.explorer,
    org.eclipse.emf.cdo.explorer.ui",
- org.eclipse.emf.internal.cdo.session.remote;version="4.13.1";
+ org.eclipse.emf.internal.cdo.session.remote;version="4.14.0";
   x-friends:="org.eclipse.emf.cdo.net4j,
    org.eclipse.emf.cdo.server,
    org.eclipse.emf.cdo.tests,
    org.eclipse.emf.cdo.ui",
- org.eclipse.emf.internal.cdo.transaction;version="4.13.1";
+ org.eclipse.emf.internal.cdo.transaction;version="4.14.0";
   x-friends:="org.eclipse.emf.cdo.net4j,
    org.eclipse.emf.cdo.server,
    org.eclipse.emf.cdo.tests,
    org.eclipse.emf.cdo.ui,
    org.eclipse.emf.cdo.explorer.ui",
- org.eclipse.emf.internal.cdo.util;version="4.13.1";
+ org.eclipse.emf.internal.cdo.util;version="4.14.0";
   x-friends:="org.eclipse.emf.cdo.net4j,
    org.eclipse.emf.cdo.server,
    org.eclipse.emf.cdo.tests,
    org.eclipse.emf.cdo.ui",
- org.eclipse.emf.internal.cdo.view;version="4.13.1";
+ org.eclipse.emf.internal.cdo.view;version="4.14.0";
   x-friends:="org.eclipse.emf.cdo.net4j,
    org.eclipse.emf.cdo.server,
    org.eclipse.emf.cdo.tests,
@@ -79,6 +79,6 @@
    org.eclipse.emf.cdo.ui.ide,
    org.eclipse.emf.cdo.explorer,
    org.eclipse.emf.cdo.explorer.ui",
- org.eclipse.emf.spi.cdo;version="4.13.1"
+ org.eclipse.emf.spi.cdo;version="4.14.0"
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.cdo
diff --git a/plugins/org.eclipse.emf.cdo/pom.xml b/plugins/org.eclipse.emf.cdo/pom.xml
index 5a01ba2..a7495c1 100644
--- a/plugins/org.eclipse.emf.cdo/pom.xml
+++ b/plugins/org.eclipse.emf.cdo/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.emf.cdo</artifactId>
-  <version>4.13.1-SNAPSHOT</version>
+  <version>4.14.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransactionCommentator.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransactionCommentator.java
index 771e31a..f809e5d 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransactionCommentator.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/transaction/CDOTransactionCommentator.java
@@ -246,5 +246,4 @@
 
     return false;
   }
-
 }
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java
index d4011ff..834ff02 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java
@@ -104,6 +104,9 @@
 import org.eclipse.net4j.util.concurrent.IRWOLockManager;
 import org.eclipse.net4j.util.concurrent.RWOLockManager;
 import org.eclipse.net4j.util.concurrent.RunnableWithName;
+import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
+import org.eclipse.net4j.util.container.IPluginContainer;
 import org.eclipse.net4j.util.event.Event;
 import org.eclipse.net4j.util.event.EventUtil;
 import org.eclipse.net4j.util.event.IEvent;
@@ -161,7 +164,7 @@
 /**
  * @author Eike Stepper
  */
-public abstract class CDOSessionImpl extends CDOTransactionContainerImpl implements InternalCDOSession
+public abstract class CDOSessionImpl extends CDOTransactionContainerImpl implements InternalCDOSession, IManagedContainerProvider
 {
   private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_SESSION, CDOSessionImpl.class);
 
@@ -205,14 +208,7 @@
 
   private CDOSession.Options options = createOptions();
 
-  private final IRegistry<String, Object> properties = new HashMapRegistry<String, Object>()
-  {
-    @Override
-    public void setAutoCommit(boolean autoCommit)
-    {
-      throw new UnsupportedOperationException();
-    }
-  };
+  private final IRegistry<String, Object> properties = new HashMapRegistry.AutoCommit<>();
 
   private final SessionInvalidator invalidator = new SessionInvalidator();
 
@@ -250,6 +246,12 @@
   }
 
   @Override
+  public IManagedContainer getContainer()
+  {
+    return IPluginContainer.INSTANCE;
+  }
+
+  @Override
   public CDORepositoryInfo getRepositoryInfo()
   {
     return repositoryInfo;
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java
index d225bf3..1cbe0a9 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java
@@ -210,14 +210,7 @@
     }
   };
 
-  private final IRegistry<String, Object> properties = new HashMapRegistry<String, Object>()
-  {
-    @Override
-    public void setAutoCommit(boolean autoCommit)
-    {
-      throw new UnsupportedOperationException();
-    }
-  };
+  private final IRegistry<String, Object> properties = new HashMapRegistry.AutoCommit<>();
 
   @ExcludeFromDump
   private transient Map<String, CDOID> resourcePathCache = new HashMap<>();
diff --git a/plugins/org.eclipse.net4j.http.common/META-INF/MANIFEST.MF b/plugins/org.eclipse.net4j.http.common/META-INF/MANIFEST.MF
index f00ab8e..b26f4ba 100644
--- a/plugins/org.eclipse.net4j.http.common/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.net4j.http.common/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.net4j.http.common
-Bundle-Version: 4.1.1.qualifier
+Bundle-Version: 4.2.0.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -11,11 +11,11 @@
 Bundle-ClassPath: .
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)";resolution:=optional,
  org.eclipse.net4j;bundle-version="[4.0.0,5.0.0)";visibility:=reexport
-Export-Package: org.eclipse.net4j.http.common;version="4.1.1";uses:="org.eclipse.net4j.connector",
- org.eclipse.net4j.http.internal.common;version="4.1.1";
+Export-Package: org.eclipse.net4j.http.common;version="4.2.0";uses:="org.eclipse.net4j.connector",
+ org.eclipse.net4j.http.internal.common;version="4.2.0";
   x-friends:="org.eclipse.net4j.http,
    org.eclipse.net4j.http.server,
    org.eclipse.net4j.http.tests",
- org.eclipse.net4j.http.internal.common.bundle;version="4.1.1";x-friends:="org.eclipse.net4j.http,org.eclipse.net4j.http.server,org.eclipse.net4j.http.tests",
- org.eclipse.net4j.http.internal.common.messages;version="4.1.1";x-internal:=true
+ org.eclipse.net4j.http.internal.common.bundle;version="4.2.0";x-friends:="org.eclipse.net4j.http,org.eclipse.net4j.http.server,org.eclipse.net4j.http.tests",
+ org.eclipse.net4j.http.internal.common.messages;version="4.2.0";x-internal:=true
 Automatic-Module-Name: org.eclipse.net4j.http.common
diff --git a/plugins/org.eclipse.net4j.http.common/pom.xml b/plugins/org.eclipse.net4j.http.common/pom.xml
index 5421fbb..54a2cf6b 100644
--- a/plugins/org.eclipse.net4j.http.common/pom.xml
+++ b/plugins/org.eclipse.net4j.http.common/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.net4j.http.common</artifactId>
-  <version>4.1.1-SNAPSHOT</version>
+  <version>4.2.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.net4j.http.server/.settings/.api_filters b/plugins/org.eclipse.net4j.http.server/.settings/.api_filters
new file mode 100644
index 0000000..b5b585a
--- /dev/null
+++ b/plugins/org.eclipse.net4j.http.server/.settings/.api_filters
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.net4j.http.server" version="2">
+    <resource path="src/org/eclipse/net4j/http/internal/server/HTTPServerConnector.java" type="org.eclipse.net4j.http.internal.server.HTTPServerConnector">
+        <filter id="574619656">
+            <message_arguments>
+                <message_argument value="IServerConnector"/>
+                <message_argument value="HTTPServerConnector"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/net4j/http/server/IHTTPAcceptor.java" type="org.eclipse.net4j.http.server.IHTTPAcceptor">
+        <filter id="571473929">
+            <message_arguments>
+                <message_argument value="IAcceptor"/>
+                <message_argument value="IHTTPAcceptor"/>
+            </message_arguments>
+        </filter>
+    </resource>
+</component>
diff --git a/plugins/org.eclipse.net4j.http.server/META-INF/MANIFEST.MF b/plugins/org.eclipse.net4j.http.server/META-INF/MANIFEST.MF
index 8d1e423..e72999f 100644
--- a/plugins/org.eclipse.net4j.http.server/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.net4j.http.server/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.net4j.http.server;singleton:=true
-Bundle-Version: 4.1.1.qualifier
+Bundle-Version: 4.2.0.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -14,8 +14,8 @@
  org.eclipse.equinox.http.registry;bundle-version="[1.0.0,2.0.0)"
 Import-Package: javax.servlet;version="[2.3.0,4.0.0)",
  javax.servlet.http;version="[2.3.0,4.0.0)"
-Export-Package: org.eclipse.net4j.http.internal.server;version="4.1.1";x-friends:="org.eclipse.net4j.http.tests",
- org.eclipse.net4j.http.internal.server.bundle;version="4.1.1";x-internal:=true,
- org.eclipse.net4j.http.internal.server.messages;version="4.1.1";x-internal:=true,
- org.eclipse.net4j.http.server;version="4.1.1"
+Export-Package: org.eclipse.net4j.http.internal.server;version="4.2.0";x-friends:="org.eclipse.net4j.http.tests",
+ org.eclipse.net4j.http.internal.server.bundle;version="4.2.0";x-internal:=true,
+ org.eclipse.net4j.http.internal.server.messages;version="4.2.0";x-internal:=true,
+ org.eclipse.net4j.http.server;version="4.2.0"
 Automatic-Module-Name: org.eclipse.net4j.http.server
diff --git a/plugins/org.eclipse.net4j.http.server/pom.xml b/plugins/org.eclipse.net4j.http.server/pom.xml
index 94b753c..d8e920c 100644
--- a/plugins/org.eclipse.net4j.http.server/pom.xml
+++ b/plugins/org.eclipse.net4j.http.server/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.net4j.http.server</artifactId>
-  <version>4.1.1-SNAPSHOT</version>
+  <version>4.2.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.net4j.jvm/.settings/.api_filters b/plugins/org.eclipse.net4j.jvm/.settings/.api_filters
index 328fae4..f8944a6 100644
--- a/plugins/org.eclipse.net4j.jvm/.settings/.api_filters
+++ b/plugins/org.eclipse.net4j.jvm/.settings/.api_filters
@@ -79,6 +79,12 @@
         </filter>
     </resource>
     <resource path="src/org/eclipse/net4j/internal/jvm/JVMServerConnector.java" type="org.eclipse.net4j.internal.jvm.JVMServerConnector">
+        <filter id="574619656">
+            <message_arguments>
+                <message_argument value="IServerConnector"/>
+                <message_argument value="JVMServerConnector"/>
+            </message_arguments>
+        </filter>
         <filter id="643842064">
             <message_arguments>
                 <message_argument value="JVMAcceptor"/>
@@ -101,6 +107,14 @@
             </message_arguments>
         </filter>
     </resource>
+    <resource path="src/org/eclipse/net4j/jvm/IJVMAcceptor.java" type="org.eclipse.net4j.jvm.IJVMAcceptor">
+        <filter id="571473929">
+            <message_arguments>
+                <message_argument value="IAcceptor"/>
+                <message_argument value="IJVMAcceptor"/>
+            </message_arguments>
+        </filter>
+    </resource>
     <resource path="src/org/eclipse/net4j/jvm/IJVMChannel.java" type="org.eclipse.net4j.jvm.IJVMChannel">
         <filter id="571473929">
             <message_arguments>
diff --git a/plugins/org.eclipse.net4j.jvm/META-INF/MANIFEST.MF b/plugins/org.eclipse.net4j.jvm/META-INF/MANIFEST.MF
index 19c7f9e..cc8f88d 100644
--- a/plugins/org.eclipse.net4j.jvm/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.net4j.jvm/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.net4j.jvm;singleton:=true
-Bundle-Version: 4.2.1.qualifier
+Bundle-Version: 4.3.0.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -12,8 +12,8 @@
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)";resolution:=optional,
  org.eclipse.net4j;bundle-version="[4.0.0,5.0.0)";visibility:=reexport
 Import-Package: org.osgi.framework;version="[1.3.0,2.0.0)";resolution:=optional
-Export-Package: org.eclipse.net4j.internal.jvm;version="4.2.1";x-friends:="org.eclipse.net4j.tests,org.eclipse.net4j.ui",
- org.eclipse.net4j.internal.jvm.bundle;version="4.2.1";x-internal:=true,
- org.eclipse.net4j.internal.jvm.messages;version="4.2.1";x-internal:=true,
- org.eclipse.net4j.jvm;version="4.2.1"
+Export-Package: org.eclipse.net4j.internal.jvm;version="4.3.0";x-friends:="org.eclipse.net4j.tests,org.eclipse.net4j.ui",
+ org.eclipse.net4j.internal.jvm.bundle;version="4.3.0";x-internal:=true,
+ org.eclipse.net4j.internal.jvm.messages;version="4.3.0";x-internal:=true,
+ org.eclipse.net4j.jvm;version="4.3.0"
 Automatic-Module-Name: org.eclipse.net4j.jvm
diff --git a/plugins/org.eclipse.net4j.jvm/pom.xml b/plugins/org.eclipse.net4j.jvm/pom.xml
index 71b0b5d..02106f8 100644
--- a/plugins/org.eclipse.net4j.jvm/pom.xml
+++ b/plugins/org.eclipse.net4j.jvm/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.net4j.jvm</artifactId>
-  <version>4.2.1-SNAPSHOT</version>
+  <version>4.3.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.net4j.tcp/.settings/.api_filters b/plugins/org.eclipse.net4j.tcp/.settings/.api_filters
index 9b7d074..7281694 100644
--- a/plugins/org.eclipse.net4j.tcp/.settings/.api_filters
+++ b/plugins/org.eclipse.net4j.tcp/.settings/.api_filters
@@ -123,6 +123,12 @@
         </filter>
     </resource>
     <resource path="src/org/eclipse/net4j/internal/tcp/TCPServerConnector.java" type="org.eclipse.net4j.internal.tcp.TCPServerConnector">
+        <filter id="574619656">
+            <message_arguments>
+                <message_argument value="IServerConnector"/>
+                <message_argument value="TCPServerConnector"/>
+            </message_arguments>
+        </filter>
         <filter id="643842064">
             <message_arguments>
                 <message_argument value="TCPAcceptor"/>
@@ -157,6 +163,12 @@
         </filter>
     </resource>
     <resource path="src/org/eclipse/net4j/internal/tcp/ssl/SSLServerConnector.java" type="org.eclipse.net4j.internal.tcp.ssl.SSLServerConnector">
+        <filter id="574619656">
+            <message_arguments>
+                <message_argument value="IServerConnector"/>
+                <message_argument value="SSLServerConnector"/>
+            </message_arguments>
+        </filter>
         <filter id="643842064">
             <message_arguments>
                 <message_argument value="SSLAcceptor"/>
@@ -172,6 +184,14 @@
             </message_arguments>
         </filter>
     </resource>
+    <resource path="src/org/eclipse/net4j/tcp/ITCPAcceptor.java" type="org.eclipse.net4j.tcp.ITCPAcceptor">
+        <filter id="571473929">
+            <message_arguments>
+                <message_argument value="IAcceptor"/>
+                <message_argument value="ITCPAcceptor"/>
+            </message_arguments>
+        </filter>
+    </resource>
     <resource path="src/org/eclipse/net4j/tcp/ITCPConnector.java" type="org.eclipse.net4j.tcp.ITCPConnector">
         <filter id="571473929">
             <message_arguments>
diff --git a/plugins/org.eclipse.net4j.tcp/META-INF/MANIFEST.MF b/plugins/org.eclipse.net4j.tcp/META-INF/MANIFEST.MF
index cdd1a74..202bb1e 100644
--- a/plugins/org.eclipse.net4j.tcp/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.net4j.tcp/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.net4j.tcp;singleton:=true
-Bundle-Version: 4.2.1.qualifier
+Bundle-Version: 4.3.0.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -12,13 +12,13 @@
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)";resolution:=optional,
  org.eclipse.net4j;bundle-version="[4.0.0,5.0.0)";visibility:=reexport
 Import-Package: org.osgi.framework;version="[1.3.0,2.0.0)";resolution:=optional
-Export-Package: org.eclipse.net4j.internal.tcp;version="4.2.1";
+Export-Package: org.eclipse.net4j.internal.tcp;version="4.3.0";
   x-friends:="org.eclipse.net4j.tests,
    org.eclipse.emf.cdo.examples,
    org.eclipse.net4j.ui",
- org.eclipse.net4j.internal.tcp.bundle;version="4.2.1";x-internal:=true,
- org.eclipse.net4j.internal.tcp.messages;version="4.2.1";x-internal:=true,
- org.eclipse.net4j.internal.tcp.ssl;version="4.2.1";x-friends:="org.eclipse.net4j.tests,org.eclipse.emf.cdo.examples",
- org.eclipse.net4j.tcp;version="4.2.1",
- org.eclipse.net4j.tcp.ssl;version="4.2.1"
+ org.eclipse.net4j.internal.tcp.bundle;version="4.3.0";x-internal:=true,
+ org.eclipse.net4j.internal.tcp.messages;version="4.3.0";x-internal:=true,
+ org.eclipse.net4j.internal.tcp.ssl;version="4.3.0";x-friends:="org.eclipse.net4j.tests,org.eclipse.emf.cdo.examples",
+ org.eclipse.net4j.tcp;version="4.3.0",
+ org.eclipse.net4j.tcp.ssl;version="4.3.0"
 Automatic-Module-Name: org.eclipse.net4j.tcp
diff --git a/plugins/org.eclipse.net4j.tcp/pom.xml b/plugins/org.eclipse.net4j.tcp/pom.xml
index 31d2f4b..d369430 100644
--- a/plugins/org.eclipse.net4j.tcp/pom.xml
+++ b/plugins/org.eclipse.net4j.tcp/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.net4j.tcp</artifactId>
-  <version>4.2.1-SNAPSHOT</version>
+  <version>4.3.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.net4j.util.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.net4j.util.ui/META-INF/MANIFEST.MF
index 5636419..8194573 100644
--- a/plugins/org.eclipse.net4j.util.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.net4j.util.ui/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.net4j.util.ui;singleton:=true
-Bundle-Version: 3.10.0.qualifier
+Bundle-Version: 3.11.0.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-ActivationPolicy: lazy
@@ -15,20 +15,20 @@
  org.eclipse.ui;bundle-version="[3.5.0,4.0.0)";visibility:=reexport,
  org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)";visibility:=reexport,
  org.eclipse.net4j.ui.shared;bundle-version="[4.0.0,5.0.0)"
-Export-Package: org.eclipse.net4j.util.internal.ui;version="3.10.0";x-internal:=true,
- org.eclipse.net4j.util.internal.ui.actions;version="3.10.0";x-internal:=true,
- org.eclipse.net4j.util.internal.ui.bundle;version="3.10.0";x-internal:=true,
- org.eclipse.net4j.util.internal.ui.messages;version="3.10.0";x-internal:=true,
- org.eclipse.net4j.util.internal.ui.views;version="3.10.0";x-internal:=true,
- org.eclipse.net4j.util.ui;version="3.10.0",
- org.eclipse.net4j.util.ui.actions;version="3.10.0",
- org.eclipse.net4j.util.ui.confirmation;version="3.10.0",
- org.eclipse.net4j.util.ui.container;version="3.10.0",
- org.eclipse.net4j.util.ui.dnd;version="3.10.0",
- org.eclipse.net4j.util.ui.handlers;version="3.10.0",
- org.eclipse.net4j.util.ui.prefs;version="3.10.0",
- org.eclipse.net4j.util.ui.proposals;version="3.10.0",
- org.eclipse.net4j.util.ui.security;version="3.10.0",
- org.eclipse.net4j.util.ui.views;version="3.10.0",
- org.eclipse.net4j.util.ui.widgets;version="3.10.0"
+Export-Package: org.eclipse.net4j.util.internal.ui;version="3.11.0";x-internal:=true,
+ org.eclipse.net4j.util.internal.ui.actions;version="3.11.0";x-internal:=true,
+ org.eclipse.net4j.util.internal.ui.bundle;version="3.11.0";x-internal:=true,
+ org.eclipse.net4j.util.internal.ui.messages;version="3.11.0";x-internal:=true,
+ org.eclipse.net4j.util.internal.ui.views;version="3.11.0";x-internal:=true,
+ org.eclipse.net4j.util.ui;version="3.11.0",
+ org.eclipse.net4j.util.ui.actions;version="3.11.0",
+ org.eclipse.net4j.util.ui.confirmation;version="3.11.0",
+ org.eclipse.net4j.util.ui.container;version="3.11.0",
+ org.eclipse.net4j.util.ui.dnd;version="3.11.0",
+ org.eclipse.net4j.util.ui.handlers;version="3.11.0",
+ org.eclipse.net4j.util.ui.prefs;version="3.11.0",
+ org.eclipse.net4j.util.ui.proposals;version="3.11.0",
+ org.eclipse.net4j.util.ui.security;version="3.11.0",
+ org.eclipse.net4j.util.ui.views;version="3.11.0",
+ org.eclipse.net4j.util.ui.widgets;version="3.11.0"
 Automatic-Module-Name: org.eclipse.net4j.util.ui
diff --git a/plugins/org.eclipse.net4j.util.ui/pom.xml b/plugins/org.eclipse.net4j.util.ui/pom.xml
index 2643771..4b1628c 100644
--- a/plugins/org.eclipse.net4j.util.ui/pom.xml
+++ b/plugins/org.eclipse.net4j.util.ui/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.net4j.util.ui</artifactId>
-  <version>3.10.0-SNAPSHOT</version>
+  <version>3.11.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/widgets/CustomizeableComposite.java b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/widgets/CustomizeableComposite.java
index 305eb3f..ab70636 100644
--- a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/widgets/CustomizeableComposite.java
+++ b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/widgets/CustomizeableComposite.java
@@ -11,6 +11,7 @@
 package org.eclipse.net4j.util.ui.widgets;
 
 import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 import org.eclipse.net4j.util.container.IPluginContainer;
 
 import org.eclipse.swt.SWT;
@@ -22,7 +23,7 @@
  * @author Eike Stepper
  * @since 3.3
  */
-public class CustomizeableComposite extends Composite
+public class CustomizeableComposite extends Composite implements IManagedContainerProvider
 {
   private final String productGroup;
 
@@ -43,6 +44,7 @@
     return productGroup;
   }
 
+  @Override
   public IManagedContainer getContainer()
   {
     return IPluginContainer.INSTANCE;
diff --git a/plugins/org.eclipse.net4j.util/META-INF/MANIFEST.MF b/plugins/org.eclipse.net4j.util/META-INF/MANIFEST.MF
index f91d66d..2d1fda7 100644
--- a/plugins/org.eclipse.net4j.util/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.net4j.util/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.net4j.util;singleton:=true
-Bundle-Version: 3.14.1.qualifier
+Bundle-Version: 3.15.0.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -15,36 +15,36 @@
  org.osgi.framework;version="[1.3.0,2.0.0)";resolution:=optional,
  org.osgi.service.log;version="[1.3.0,2.0.0)";resolution:=optional,
  org.osgi.util.tracker;version="[1.3.0,2.0.0)";resolution:=optional
-Export-Package: org.eclipse.net4j.internal.util.bundle;version="3.14.1";x-friends:="org.eclipse.net4j.util.ui,org.eclipse.net4j.tests",
- org.eclipse.net4j.internal.util.container;version="3.14.1";x-internal:=true,
- org.eclipse.net4j.internal.util.factory;version="3.14.1";x-internal:=true,
- org.eclipse.net4j.internal.util.om;version="3.14.1";x-internal:=true,
- org.eclipse.net4j.internal.util.om.pref;version="3.14.1";x-internal:=true,
- org.eclipse.net4j.internal.util.table;version="3.14.1";x-internal:=true,
- org.eclipse.net4j.internal.util.test;version="3.14.1";x-friends:="org.eclipse.net4j.tests",
- org.eclipse.net4j.util;version="3.14.1",
- org.eclipse.net4j.util.cache;version="3.14.1",
- org.eclipse.net4j.util.collection;version="3.14.1",
- org.eclipse.net4j.util.concurrent;version="3.14.1",
- org.eclipse.net4j.util.confirmation;version="3.14.1",
- org.eclipse.net4j.util.container;version="3.14.1",
- org.eclipse.net4j.util.container.delegate;version="3.14.1",
- org.eclipse.net4j.util.event;version="3.14.1",
- org.eclipse.net4j.util.factory;version="3.14.1",
- org.eclipse.net4j.util.fsm;version="3.14.1",
- org.eclipse.net4j.util.io;version="3.14.1",
- org.eclipse.net4j.util.lifecycle;version="3.14.1",
- org.eclipse.net4j.util.om;version="3.14.1",
- org.eclipse.net4j.util.om.job;version="3.14.1",
- org.eclipse.net4j.util.om.log;version="3.14.1",
- org.eclipse.net4j.util.om.monitor;version="3.14.1",
- org.eclipse.net4j.util.om.pref;version="3.14.1",
- org.eclipse.net4j.util.om.trace;version="3.14.1",
- org.eclipse.net4j.util.options;version="3.14.1",
- org.eclipse.net4j.util.properties;version="3.14.1",
- org.eclipse.net4j.util.ref;version="3.14.1",
- org.eclipse.net4j.util.registry;version="3.14.1",
- org.eclipse.net4j.util.security;version="3.14.1",
- org.eclipse.net4j.util.transaction;version="3.14.1"
+Export-Package: org.eclipse.net4j.internal.util.bundle;version="3.15.0";x-friends:="org.eclipse.net4j.util.ui,org.eclipse.net4j.tests",
+ org.eclipse.net4j.internal.util.container;version="3.15.0";x-internal:=true,
+ org.eclipse.net4j.internal.util.factory;version="3.15.0";x-internal:=true,
+ org.eclipse.net4j.internal.util.om;version="3.15.0";x-internal:=true,
+ org.eclipse.net4j.internal.util.om.pref;version="3.15.0";x-internal:=true,
+ org.eclipse.net4j.internal.util.table;version="3.15.0";x-internal:=true,
+ org.eclipse.net4j.internal.util.test;version="3.15.0";x-friends:="org.eclipse.net4j.tests",
+ org.eclipse.net4j.util;version="3.15.0",
+ org.eclipse.net4j.util.cache;version="3.15.0",
+ org.eclipse.net4j.util.collection;version="3.15.0",
+ org.eclipse.net4j.util.concurrent;version="3.15.0",
+ org.eclipse.net4j.util.confirmation;version="3.15.0",
+ org.eclipse.net4j.util.container;version="3.15.0",
+ org.eclipse.net4j.util.container.delegate;version="3.15.0",
+ org.eclipse.net4j.util.event;version="3.15.0",
+ org.eclipse.net4j.util.factory;version="3.15.0",
+ org.eclipse.net4j.util.fsm;version="3.15.0",
+ org.eclipse.net4j.util.io;version="3.15.0",
+ org.eclipse.net4j.util.lifecycle;version="3.15.0",
+ org.eclipse.net4j.util.om;version="3.15.0",
+ org.eclipse.net4j.util.om.job;version="3.15.0",
+ org.eclipse.net4j.util.om.log;version="3.15.0",
+ org.eclipse.net4j.util.om.monitor;version="3.15.0",
+ org.eclipse.net4j.util.om.pref;version="3.15.0",
+ org.eclipse.net4j.util.om.trace;version="3.15.0",
+ org.eclipse.net4j.util.options;version="3.15.0",
+ org.eclipse.net4j.util.properties;version="3.15.0",
+ org.eclipse.net4j.util.ref;version="3.15.0",
+ org.eclipse.net4j.util.registry;version="3.15.0",
+ org.eclipse.net4j.util.security;version="3.15.0",
+ org.eclipse.net4j.util.transaction;version="3.15.0"
 Eclipse-BuddyPolicy: registered
 Automatic-Module-Name: org.eclipse.net4j.util
diff --git a/plugins/org.eclipse.net4j.util/pom.xml b/plugins/org.eclipse.net4j.util/pom.xml
index 9e99e68..931efa8 100644
--- a/plugins/org.eclipse.net4j.util/pom.xml
+++ b/plugins/org.eclipse.net4j.util/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.net4j.util</artifactId>
-  <version>3.14.1-SNAPSHOT</version>
+  <version>3.15.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/DelegableReentrantLock.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/DelegableReentrantLock.java
index c011746..f537a1b 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/DelegableReentrantLock.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/DelegableReentrantLock.java
@@ -13,6 +13,7 @@
 import org.eclipse.net4j.util.container.ContainerEventAdapter;
 import org.eclipse.net4j.util.container.IContainer;
 import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 import org.eclipse.net4j.util.container.IPluginContainer;
 import org.eclipse.net4j.util.event.EventUtil;
 import org.eclipse.net4j.util.event.IListener;
@@ -28,7 +29,7 @@
  * @author Eike Stepper
  * @since 3.6
  */
-public class DelegableReentrantLock extends NonFairReentrantLock implements ILifecycle
+public class DelegableReentrantLock extends NonFairReentrantLock implements ILifecycle, IManagedContainerProvider
 {
   private static final long serialVersionUID = 1L;
 
@@ -63,6 +64,7 @@
     this(IPluginContainer.INSTANCE);
   }
 
+  @Override
   public final IManagedContainer getContainer()
   {
     return container;
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/ContainerUtil.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/ContainerUtil.java
index 825e169..70ff151 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/ContainerUtil.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/ContainerUtil.java
@@ -16,6 +16,7 @@
 import org.eclipse.net4j.util.concurrent.TimerLifecycle;
 import org.eclipse.net4j.util.event.EventUtil;
 import org.eclipse.net4j.util.event.IListener;
+import org.eclipse.net4j.util.properties.PropertiesContainerUtil;
 import org.eclipse.net4j.util.security.FileUserManagerFactory;
 import org.eclipse.net4j.util.security.RandomizerFactory;
 
@@ -26,6 +27,11 @@
  */
 public final class ContainerUtil
 {
+  /**
+   * @since 3.15
+   */
+  public static final String PROP_CONTAINER = "org.eclipse.net4j.util.container";
+
   private static final Object[] NO_ELEMENTS = {};
 
   private static final IContainer<Object> EMPTY = new IContainer<Object>()
@@ -76,6 +82,19 @@
   }
 
   /**
+   * @since 3.15
+   */
+  public static IManagedContainer getContainer(Object object)
+  {
+    if (object instanceof IManagedContainerProvider)
+    {
+      return ((IManagedContainerProvider)object).getContainer();
+    }
+
+    return PropertiesContainerUtil.getProperty(object, PROP_CONTAINER, IManagedContainer.class);
+  }
+
+  /**
    * @since 2.0
    */
   public static void prepareContainer(IManagedContainer container)
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/IManagedContainerProvider.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/IManagedContainerProvider.java
new file mode 100644
index 0000000..2e24790
--- /dev/null
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/IManagedContainerProvider.java
@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2021 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
+ *
+ * Contributors:
+ *    Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.container;
+
+/**
+ * @author Eike Stepper
+ * @since 3.15
+ */
+@FunctionalInterface
+public interface IManagedContainerProvider
+{
+  public IManagedContainer getContainer();
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/ManagedContainer.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/ManagedContainer.java
index caba6da..e8c5ce3 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/ManagedContainer.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/container/ManagedContainer.java
@@ -26,6 +26,7 @@
 import org.eclipse.net4j.util.lifecycle.LifecycleEventAdapter;
 import org.eclipse.net4j.util.lifecycle.LifecycleException;
 import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.properties.PropertiesContainerUtil;
 import org.eclipse.net4j.util.registry.HashMapRegistry;
 import org.eclipse.net4j.util.registry.IRegistry;
 
@@ -431,6 +432,15 @@
         ((ContainerAware)element).setManagedContainer(this);
       }
 
+      IRegistry<String, Object> properties = PropertiesContainerUtil.getProperties(element);
+      if (properties != null)
+      {
+        if (!properties.containsKey(ContainerUtil.PROP_CONTAINER))
+        {
+          properties.put(ContainerUtil.PROP_CONTAINER, this);
+        }
+      }
+
       EventUtil.addUniqueListener(element, elementListener);
 
       if (oldElement != null)
@@ -471,6 +481,16 @@
       {
         ((ContainerAware)element).setManagedContainer(null);
       }
+
+      IRegistry<String, Object> properties = PropertiesContainerUtil.getProperties(element);
+      if (properties != null)
+      {
+        Object container = properties.get(ContainerUtil.PROP_CONTAINER);
+        if (container == this)
+        {
+          properties.remove(ContainerUtil.PROP_CONTAINER);
+        }
+      }
     }
 
     return element;
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/properties/PropertiesContainerUtil.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/properties/PropertiesContainerUtil.java
new file mode 100644
index 0000000..47fdcf1
--- /dev/null
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/properties/PropertiesContainerUtil.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2021 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
+ *
+ * Contributors:
+ *    Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.properties;
+
+import org.eclipse.net4j.util.registry.IRegistry;
+
+/**
+ * @author Eike Stepper
+ * @since 3.15
+ */
+public final class PropertiesContainerUtil
+{
+  private PropertiesContainerUtil()
+  {
+  }
+
+  public static IRegistry<String, Object> getProperties(Object object)
+  {
+    if (object instanceof IPropertiesContainer)
+    {
+      return ((IPropertiesContainer)object).properties();
+    }
+
+    return null;
+  }
+
+  public static <T> T getProperty(Object object, String key, Class<T> type)
+  {
+    return getProperty(getProperties(object), key, type);
+  }
+
+  public static <T> T getProperty(IRegistry<String, Object> properties, String key, Class<T> type)
+  {
+    if (properties != null)
+    {
+      Object value = properties.get(key);
+      if (type.isInstance(value))
+      {
+        return type.cast(value);
+      }
+    }
+
+    return null;
+  }
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/registry/HashMapRegistry.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/registry/HashMapRegistry.java
index 037418a..390d7a9 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/registry/HashMapRegistry.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/registry/HashMapRegistry.java
@@ -45,4 +45,36 @@
   {
     return map;
   }
+
+  /**
+   * @author Eike Stepper
+   * @since 3.15
+   */
+  public static class AutoCommit<K, V> extends HashMapRegistry<K, V>
+  {
+    public AutoCommit()
+    {
+    }
+
+    public AutoCommit(int initialCapacity, float loadFactor)
+    {
+      super(initialCapacity, loadFactor);
+    }
+
+    public AutoCommit(int initialCapacity)
+    {
+      super(initialCapacity);
+    }
+
+    public AutoCommit(Map<? extends K, ? extends V> m)
+    {
+      super(m);
+    }
+
+    @Override
+    public final void setAutoCommit(boolean autoCommit)
+    {
+      throw new UnsupportedOperationException();
+    }
+  }
 }
diff --git a/plugins/org.eclipse.net4j.ws/.settings/.api_filters b/plugins/org.eclipse.net4j.ws/.settings/.api_filters
index a79409f..77d0381 100644
--- a/plugins/org.eclipse.net4j.ws/.settings/.api_filters
+++ b/plugins/org.eclipse.net4j.ws/.settings/.api_filters
@@ -1,5 +1,21 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.net4j.ws" version="2">
+    <resource path="src/org/eclipse/net4j/internal/ws/WSServerConnector.java" type="org.eclipse.net4j.internal.ws.WSServerConnector">
+        <filter id="574619656">
+            <message_arguments>
+                <message_argument value="IServerConnector"/>
+                <message_argument value="WSServerConnector"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/net4j/ws/IWSAcceptor.java" type="org.eclipse.net4j.ws.IWSAcceptor">
+        <filter id="571473929">
+            <message_arguments>
+                <message_argument value="IAcceptor"/>
+                <message_argument value="IWSAcceptor"/>
+            </message_arguments>
+        </filter>
+    </resource>
     <resource path="src/org/eclipse/net4j/ws/IWSConnector.java" type="org.eclipse.net4j.ws.IWSConnector">
         <filter id="571473929">
             <message_arguments>
diff --git a/plugins/org.eclipse.net4j.ws/META-INF/MANIFEST.MF b/plugins/org.eclipse.net4j.ws/META-INF/MANIFEST.MF
index d976903..d6207ce 100644
--- a/plugins/org.eclipse.net4j.ws/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.net4j.ws/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.net4j.ws;singleton:=true
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 1.1.0.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -23,8 +23,8 @@
 Import-Package: org.osgi.framework;version="[1.3.0,2.0.0)";resolution:=optional,
  javax.servlet;version="[2.3.0,4.0.0)",
  javax.servlet.http;version="[2.3.0,4.0.0)"
-Export-Package: org.eclipse.net4j.internal.ws;version="1.0.0";x-friends:="org.eclipse.net4j.tests,org.eclipse.emf.cdo.examples,org.eclipse.net4j.ui",
- org.eclipse.net4j.internal.ws.bundle;version="1.0.0";x-internal:=true,
- org.eclipse.net4j.ws;version="1.0.0",
- org.eclipse.net4j.ws.jetty;version="1.0.0"
+Export-Package: org.eclipse.net4j.internal.ws;version="1.1.0";x-friends:="org.eclipse.net4j.tests,org.eclipse.emf.cdo.examples,org.eclipse.net4j.ui",
+ org.eclipse.net4j.internal.ws.bundle;version="1.1.0";x-internal:=true,
+ org.eclipse.net4j.ws;version="1.1.0",
+ org.eclipse.net4j.ws.jetty;version="1.1.0"
 Automatic-Module-Name: org.eclipse.net4j.ws
diff --git a/plugins/org.eclipse.net4j.ws/pom.xml b/plugins/org.eclipse.net4j.ws/pom.xml
index 6e5ba36..1524545 100644
--- a/plugins/org.eclipse.net4j.ws/pom.xml
+++ b/plugins/org.eclipse.net4j.ws/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.net4j.ws</artifactId>
-  <version>1.0.0-SNAPSHOT</version>
+  <version>1.1.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.net4j/.settings/.api_filters b/plugins/org.eclipse.net4j/.settings/.api_filters
index 1af0378..c9fece8 100644
--- a/plugins/org.eclipse.net4j/.settings/.api_filters
+++ b/plugins/org.eclipse.net4j/.settings/.api_filters
@@ -99,6 +99,12 @@
                 <message_argument value="IAcceptor"/>
             </message_arguments>
         </filter>
+        <filter id="576725006">
+            <message_arguments>
+                <message_argument value="InternalAcceptor"/>
+                <message_argument value="Acceptor"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/spi/net4j/Channel.java" type="org.eclipse.spi.net4j.Channel">
         <filter id="574668824">
@@ -139,6 +145,12 @@
                 <message_argument value="IChannelMultiplexer"/>
             </message_arguments>
         </filter>
+        <filter id="576725006">
+            <message_arguments>
+                <message_argument value="InternalChannelMultiplexer"/>
+                <message_argument value="ChannelMultiplexer"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/spi/net4j/Connector.java" type="org.eclipse.spi.net4j.Connector">
         <filter id="574668824">
@@ -148,6 +160,12 @@
                 <message_argument value="IConnector"/>
             </message_arguments>
         </filter>
+        <filter id="576725006">
+            <message_arguments>
+                <message_argument value="InternalConnector"/>
+                <message_argument value="Connector"/>
+            </message_arguments>
+        </filter>
     </resource>
     <resource path="src/org/eclipse/spi/net4j/Connector.java" type="org.eclipse.spi.net4j.Connector$ConnectorStateEvent">
         <filter id="574619656">
diff --git a/plugins/org.eclipse.net4j/META-INF/MANIFEST.MF b/plugins/org.eclipse.net4j/META-INF/MANIFEST.MF
index cbcd167..5432e2e 100644
--- a/plugins/org.eclipse.net4j/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.net4j/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.net4j;singleton:=true
-Bundle-Version: 4.11.1.qualifier
+Bundle-Version: 4.12.0.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -11,7 +11,7 @@
 Bundle-ClassPath: .
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)";resolution:=optional,
  org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)";visibility:=reexport
-Export-Package: org.eclipse.internal.net4j;version="4.11.1";
+Export-Package: org.eclipse.internal.net4j;version="4.12.0";
   x-friends:="org.eclipse.net4j.http.server,
    org.eclipse.net4j.jvm,
    org.eclipse.net4j.tcp,
@@ -21,7 +21,7 @@
    org.eclipse.net4j.http.tests,
    org.eclipse.net4j.tests,
    org.eclipse.net4j.trace",
- org.eclipse.internal.net4j.buffer;version="4.11.1";
+ org.eclipse.internal.net4j.buffer;version="4.12.0";
   x-friends:="org.eclipse.net4j.http.server,
    org.eclipse.net4j.jvm,
    org.eclipse.net4j.tcp,
@@ -31,18 +31,18 @@
    org.eclipse.net4j.http.tests,
    org.eclipse.net4j.tests,
    org.eclipse.net4j.trace",
- org.eclipse.internal.net4j.bundle;version="4.11.1";x-internal:=true,
- org.eclipse.net4j;version="4.11.1",
- org.eclipse.net4j.acceptor;version="4.11.1",
- org.eclipse.net4j.buffer;version="4.11.1",
- org.eclipse.net4j.channel;version="4.11.1",
- org.eclipse.net4j.connector;version="4.11.1",
- org.eclipse.net4j.protocol;version="4.11.1",
- org.eclipse.net4j.signal;version="4.11.1",
- org.eclipse.net4j.signal.confirmation;version="4.11.1",
- org.eclipse.net4j.signal.heartbeat;version="4.11.1",
- org.eclipse.net4j.signal.security;version="4.11.1",
- org.eclipse.net4j.signal.wrapping;version="4.11.1",
- org.eclipse.spi.net4j;version="4.11.1"
+ org.eclipse.internal.net4j.bundle;version="4.12.0";x-internal:=true,
+ org.eclipse.net4j;version="4.12.0",
+ org.eclipse.net4j.acceptor;version="4.12.0",
+ org.eclipse.net4j.buffer;version="4.12.0",
+ org.eclipse.net4j.channel;version="4.12.0",
+ org.eclipse.net4j.connector;version="4.12.0",
+ org.eclipse.net4j.protocol;version="4.12.0",
+ org.eclipse.net4j.signal;version="4.12.0",
+ org.eclipse.net4j.signal.confirmation;version="4.12.0",
+ org.eclipse.net4j.signal.heartbeat;version="4.12.0",
+ org.eclipse.net4j.signal.security;version="4.12.0",
+ org.eclipse.net4j.signal.wrapping;version="4.12.0",
+ org.eclipse.spi.net4j;version="4.12.0"
 Eclipse-BuddyPolicy: registered
 Automatic-Module-Name: org.eclipse.net4j
diff --git a/plugins/org.eclipse.net4j/pom.xml b/plugins/org.eclipse.net4j/pom.xml
index 3181e83..9b143fd 100644
--- a/plugins/org.eclipse.net4j/pom.xml
+++ b/plugins/org.eclipse.net4j/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.eclipse.emf.cdo</groupId>
   <artifactId>org.eclipse.net4j</artifactId>
-  <version>4.11.1-SNAPSHOT</version>
+  <version>4.12.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/ContainerProtocolProvider.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/ContainerProtocolProvider.java
index b6b2b02..faf5ca9 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/ContainerProtocolProvider.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/ContainerProtocolProvider.java
@@ -14,6 +14,7 @@
 import org.eclipse.net4j.protocol.IProtocolProvider;
 import org.eclipse.net4j.util.concurrent.NonBlockingLongCounter;
 import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 
 import org.eclipse.spi.net4j.ClientProtocolFactory;
 import org.eclipse.spi.net4j.ServerProtocolFactory;
@@ -24,7 +25,7 @@
  * @author Eike Stepper
  * @since 2.0
  */
-public abstract class ContainerProtocolProvider implements IProtocolProvider
+public abstract class ContainerProtocolProvider implements IProtocolProvider, IManagedContainerProvider
 {
   private static NonBlockingLongCounter counter = new NonBlockingLongCounter();
 
@@ -38,6 +39,7 @@
     this.productGroup = productGroup;
   }
 
+  @Override
   public IManagedContainer getContainer()
   {
     return container;
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/TransportConfigurator.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/TransportConfigurator.java
index 2ad376c..6322a91 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/TransportConfigurator.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/TransportConfigurator.java
@@ -18,6 +18,7 @@
 import org.eclipse.net4j.util.container.FactoryNotFoundException;
 import org.eclipse.net4j.util.container.IElementProcessor;
 import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 import org.eclipse.net4j.util.factory.ProductCreationException;
 import org.eclipse.net4j.util.io.IStreamWrapper;
 import org.eclipse.net4j.util.om.trace.ContextTracer;
@@ -54,7 +55,7 @@
  * @author Eike Stepper
  * @since 2.0
  */
-public class TransportConfigurator
+public class TransportConfigurator implements IManagedContainerProvider
 {
   private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG, TransportConfigurator.class);
 
@@ -65,6 +66,7 @@
     this.container = container;
   }
 
+  @Override
   public IManagedContainer getContainer()
   {
     return container;
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/acceptor/IAcceptor.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/acceptor/IAcceptor.java
index edb715c..2e5c65d 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/acceptor/IAcceptor.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/acceptor/IAcceptor.java
@@ -14,6 +14,7 @@
 import org.eclipse.net4j.connector.IConnector;
 import org.eclipse.net4j.util.collection.Closeable;
 import org.eclipse.net4j.util.container.IContainer;
+import org.eclipse.net4j.util.properties.IPropertiesContainer;
 
 import org.eclipse.spi.net4j.Acceptor;
 
@@ -29,8 +30,9 @@
  *
  * @author Eike Stepper
  * @noimplement This interface is not intended to be implemented by clients.
+ * @noextend This interface is not intended to be extended by clients.
  */
-public interface IAcceptor extends IContainer<IConnector>, Closeable
+public interface IAcceptor extends IContainer<IConnector>, IPropertiesContainer, Closeable
 {
   /**
    * Returns an array of the connectors that have been accepted by this acceptor and not been closed since.
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/channel/IChannelMultiplexer.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/channel/IChannelMultiplexer.java
index 84a2a06..65be487 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/channel/IChannelMultiplexer.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/channel/IChannelMultiplexer.java
@@ -17,6 +17,7 @@
 import org.eclipse.net4j.util.event.IListener;
 import org.eclipse.net4j.util.factory.IFactory;
 import org.eclipse.net4j.util.lifecycle.ILifecycle;
+import org.eclipse.net4j.util.properties.IPropertiesContainer;
 
 import java.util.Collection;
 
@@ -27,7 +28,7 @@
  * @noimplement This interface is not intended to be implemented by clients.
  * @noextend This interface is not intended to be extended by clients.
  */
-public interface IChannelMultiplexer extends ILocationAware, IContainer<IChannel>
+public interface IChannelMultiplexer extends ILocationAware, IContainer<IChannel>, IPropertiesContainer
 {
   /**
    * @since 2.0
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/connector/IServerConnector.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/connector/IServerConnector.java
index 1cb53fc..123a417 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/connector/IServerConnector.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/connector/IServerConnector.java
@@ -15,6 +15,8 @@
 /**
  * @author Eike Stepper
  * @since 4.5
+ * @noimplement This interface is not intended to be implemented by clients.
+ * @noextend This interface is not intended to be extended by clients.
  */
 public interface IServerConnector extends IConnector
 {
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Acceptor.java b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Acceptor.java
index b3db2d7..3e42b7f 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Acceptor.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Acceptor.java
@@ -20,6 +20,8 @@
 import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
 import org.eclipse.net4j.util.om.log.OMLogger;
 import org.eclipse.net4j.util.om.trace.ContextTracer;
+import org.eclipse.net4j.util.registry.HashMapRegistry;
+import org.eclipse.net4j.util.registry.IRegistry;
 import org.eclipse.net4j.util.security.INegotiator;
 
 import org.eclipse.internal.net4j.TransportConfig;
@@ -38,6 +40,8 @@
 {
   private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_ACCEPTOR, Acceptor.class);
 
+  private final IRegistry<String, Object> properties = new HashMapRegistry.AutoCommit<>();
+
   private ITransportConfig config;
 
   private ConnectorPreparer connectorPreparer;
@@ -58,6 +62,12 @@
   }
 
   @Override
+  public final IRegistry<String, Object> properties()
+  {
+    return properties;
+  }
+
+  @Override
   public synchronized ITransportConfig getConfig()
   {
     if (config == null)
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Channel.java b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Channel.java
index 78fbb8b..de4b221 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Channel.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Channel.java
@@ -20,6 +20,9 @@
 import org.eclipse.net4j.util.concurrent.ConcurrencyUtil;
 import org.eclipse.net4j.util.concurrent.IExecutorServiceProvider;
 import org.eclipse.net4j.util.concurrent.RunnableWithName;
+import org.eclipse.net4j.util.container.ContainerUtil;
+import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IManagedContainerProvider;
 import org.eclipse.net4j.util.event.Event;
 import org.eclipse.net4j.util.event.IListener;
 import org.eclipse.net4j.util.lifecycle.Lifecycle;
@@ -44,7 +47,7 @@
  * @author Eike Stepper
  * @since 2.0
  */
-public class Channel extends Lifecycle implements InternalChannel, IExecutorServiceProvider
+public class Channel extends Lifecycle implements InternalChannel, IExecutorServiceProvider, IManagedContainerProvider
 {
   private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_CHANNEL, Channel.class);
 
@@ -70,6 +73,12 @@
   }
 
   @Override
+  public IManagedContainer getContainer()
+  {
+    return ContainerUtil.getContainer(channelMultiplexer);
+  }
+
+  @Override
   public String getUserID()
   {
     return userID;
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/ChannelMultiplexer.java b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/ChannelMultiplexer.java
index f634d3a..094a7a0 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/ChannelMultiplexer.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/ChannelMultiplexer.java
@@ -30,6 +30,8 @@
 import org.eclipse.net4j.util.factory.IFactoryKey;
 import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
 import org.eclipse.net4j.util.om.trace.ContextTracer;
+import org.eclipse.net4j.util.registry.HashMapRegistry;
+import org.eclipse.net4j.util.registry.IRegistry;
 import org.eclipse.net4j.util.security.INegotiationContext;
 
 import org.eclipse.internal.net4j.TransportConfig;
@@ -56,6 +58,8 @@
 
   private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_CONNECTOR, ChannelMultiplexer.class);
 
+  private final IRegistry<String, Object> properties = new HashMapRegistry.AutoCommit<>();
+
   private ITransportConfig config;
 
   private long openChannelTimeout = IChannelMultiplexer.DEFAULT_OPEN_CHANNEL_TIMEOUT;
@@ -72,6 +76,15 @@
   {
   }
 
+  /**
+   * @since 4.12
+   */
+  @Override
+  public final IRegistry<String, Object> properties()
+  {
+    return properties;
+  }
+
   @Override
   public synchronized ITransportConfig getConfig()
   {
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/InternalAcceptor.java b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/InternalAcceptor.java
index 95d8708..3d24b13 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/InternalAcceptor.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/InternalAcceptor.java
@@ -18,6 +18,8 @@
  * If the meaning of this type isn't clear, there really should be more of a description here...
  *
  * @author Eike Stepper
+ * @noimplement This interface is not intended to be implemented by clients.
+ * @noextend This interface is not intended to be extended by clients.
  */
 public interface InternalAcceptor extends IAcceptor, ITransportConfigAware, INegotiatorAware
 {
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/InternalChannelMultiplexer.java b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/InternalChannelMultiplexer.java
index 8f7f07d..ba8c764 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/InternalChannelMultiplexer.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/InternalChannelMultiplexer.java
@@ -21,6 +21,8 @@
  *
  * @author Eike Stepper
  * @since 2.0
+ * @noimplement This interface is not intended to be implemented by clients.
+ * @noextend This interface is not intended to be extended by clients.
  */
 public interface InternalChannelMultiplexer extends IChannelMultiplexer, IBufferProvider, ITransportConfigAware
 {
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/InternalConnector.java b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/InternalConnector.java
index 05cc171..93ec88b 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/InternalConnector.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/InternalConnector.java
@@ -17,6 +17,8 @@
  * If the meaning of this type isn't clear, there really should be more of a description here...
  *
  * @author Eike Stepper
+ * @noimplement This interface is not intended to be implemented by clients.
+ * @noextend This interface is not intended to be extended by clients.
  */
 public interface InternalConnector extends IConnector, INegotiatorAware, InternalChannelMultiplexer
 {