diff options
author | Eike Stepper | 2011-06-08 10:11:29 +0000 |
---|---|---|
committer | Eike Stepper | 2011-06-08 10:11:29 +0000 |
commit | b4d8ea3b2d3eec14bb86e3f91a20da3ca95c21da (patch) | |
tree | 4a703eb596facd3f76469fed05f8224ec7e0156b /plugins/org.eclipse.emf.cdo.examples/src | |
parent | 5fd9c80fc14af93061e65e1a6e7bc5845ed27839 (diff) | |
download | cdo-b4d8ea3b2d3eec14bb86e3f91a20da3ca95c21da.tar.gz cdo-b4d8ea3b2d3eec14bb86e3f91a20da3ca95c21da.tar.xz cdo-b4d8ea3b2d3eec14bb86e3f91a20da3ca95c21da.zip |
[346792] OfflineCloneExample fails with IllegalArgumentException: Cannot end transaction with unknown timestamp 1305996854765
https://bugs.eclipse.org/bugs/show_bug.cgi?id=346792
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.examples/src')
2 files changed, 47 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.examples/src/org/eclipse/emf/cdo/examples/server/offline/AbstractOfflineExampleServer.java b/plugins/org.eclipse.emf.cdo.examples/src/org/eclipse/emf/cdo/examples/server/offline/AbstractOfflineExampleServer.java index 74bb166675..ac775d09de 100644 --- a/plugins/org.eclipse.emf.cdo.examples/src/org/eclipse/emf/cdo/examples/server/offline/AbstractOfflineExampleServer.java +++ b/plugins/org.eclipse.emf.cdo.examples/src/org/eclipse/emf/cdo/examples/server/offline/AbstractOfflineExampleServer.java @@ -16,6 +16,7 @@ import org.eclipse.emf.cdo.common.util.RepositoryTypeChangedEvent; import org.eclipse.emf.cdo.examples.company.CompanyPackage;
import org.eclipse.emf.cdo.server.CDOServerUtil;
import org.eclipse.emf.cdo.server.IRepository;
+import org.eclipse.emf.cdo.server.ISession;
import org.eclipse.emf.cdo.server.IStore;
import org.eclipse.emf.cdo.server.db.CDODBUtil;
import org.eclipse.emf.cdo.server.db.mapping.IMappingStrategy;
@@ -25,6 +26,8 @@ import org.eclipse.net4j.db.DBUtil; import org.eclipse.net4j.db.IDBAdapter;
import org.eclipse.net4j.db.IDBConnectionProvider;
import org.eclipse.net4j.db.h2.H2Adapter;
+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.event.IEvent;
import org.eclipse.net4j.util.event.IListener;
@@ -69,6 +72,7 @@ public abstract class AbstractOfflineExampleServer {
this.name = name;
this.port = port;
+
container = OfflineExampleUtil.createContainer();
container.getElement("org.eclipse.emf.cdo.server.browsers", "default", dbBrowserPort + ""); //$NON-NLS-1$ //$NON-NLS-2$
}
@@ -98,6 +102,21 @@ public abstract class AbstractOfflineExampleServer }
});
+ repository.getSessionManager().addListener(new ContainerEventAdapter<ISession>()
+ {
+ @Override
+ protected void onAdded(IContainer<ISession> sessionManager, ISession session)
+ {
+ System.out.println("Registered " + session);
+ }
+
+ @Override
+ protected void onRemoved(IContainer<ISession> sessionManager, ISession session)
+ {
+ System.out.println("Unregistered " + session);
+ }
+ });
+
connect();
}
diff --git a/plugins/org.eclipse.emf.cdo.examples/src/org/eclipse/emf/cdo/examples/server/offline/OfflineExampleClone.java b/plugins/org.eclipse.emf.cdo.examples/src/org/eclipse/emf/cdo/examples/server/offline/OfflineExampleClone.java index da814caf2b..4f7b86c589 100644 --- a/plugins/org.eclipse.emf.cdo.examples/src/org/eclipse/emf/cdo/examples/server/offline/OfflineExampleClone.java +++ b/plugins/org.eclipse.emf.cdo.examples/src/org/eclipse/emf/cdo/examples/server/offline/OfflineExampleClone.java @@ -18,10 +18,16 @@ import org.eclipse.emf.cdo.server.CDOServerUtil; import org.eclipse.emf.cdo.server.IRepository;
import org.eclipse.emf.cdo.server.IRepositorySynchronizer;
import org.eclipse.emf.cdo.server.IStore;
+import org.eclipse.emf.cdo.session.CDOSession;
+import org.eclipse.emf.cdo.session.CDOSessionConfiguration.SessionOpenedEvent;
import org.eclipse.emf.cdo.session.CDOSessionConfigurationFactory;
import org.eclipse.net4j.Net4jUtil;
import org.eclipse.net4j.connector.IConnector;
+import org.eclipse.net4j.util.event.IEvent;
+import org.eclipse.net4j.util.event.IListener;
+import org.eclipse.net4j.util.lifecycle.ILifecycle;
+import org.eclipse.net4j.util.lifecycle.LifecycleEventAdapter;
import java.util.Map;
@@ -89,6 +95,28 @@ public class OfflineExampleClone extends AbstractOfflineExampleServer configuration.setConnector(connector);
configuration.setRepositoryName(repositoryName);
configuration.setRevisionManager(CDORevisionUtil.createRevisionManager(CDORevisionCache.NOOP));
+ configuration.addListener(new IListener()
+ {
+ public void notifyEvent(IEvent event)
+ {
+ if (event instanceof SessionOpenedEvent)
+ {
+ SessionOpenedEvent e = (SessionOpenedEvent)event;
+ CDOSession session = e.getOpenedSession();
+ System.out.println("Opened " + session);
+
+ session.addListener(new LifecycleEventAdapter()
+ {
+ @Override
+ protected void onAboutToDeactivate(ILifecycle lifecycle)
+ {
+ System.out.println("Closing " + lifecycle);
+ }
+ });
+ }
+ }
+ });
+
return configuration;
}
|