Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java20
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOSessionImpl.java4
3 files changed, 27 insertions, 1 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java
index 29e29eee61..7169123563 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java
@@ -38,6 +38,10 @@ public class Repository extends Container<IRepositoryElement> implements IReposi
public static final String PROP_REMEMBERING_KNOWN_TYPES = "rememberingKnownTypes";
+ public static final String PROP_CURRENT_LRU_CAPACITY = "currentLRUCapacity";
+
+ public static final String PROP_REVISED_LRU_CAPACITY = "revisedLRUCapacity";
+
private static final long INITIAL_META_ID_VALUE = 1;
private String name;
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java
index 5077568e1f..b16da4f6a9 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java
@@ -38,6 +38,10 @@ import java.util.List;
*/
public class RevisionManager extends CDORevisionResolverImpl implements IRevisionManager
{
+ public static final String PROP_CURRENT_LRU_CAPACITY = "currentLRUCapacity";
+
+ public static final String PROP_REVISED_LRU_CAPACITY = "revisedLRUCapacity";
+
private Repository repository;
private CDOPathFeatureImpl cdoPathFeature;
@@ -239,7 +243,21 @@ public class RevisionManager extends CDORevisionResolverImpl implements IRevisio
return revisions;
}
- private void registerObjectType(CDORevisionImpl revision)
+ @Override
+ protected void doBeforeActivate() throws Exception
+ {
+ super.doBeforeActivate();
+ setCurrentLRUCapacity(getLRUCapacity(PROP_CURRENT_LRU_CAPACITY));
+ setRevisedLRUCapacity(getLRUCapacity(PROP_REVISED_LRU_CAPACITY));
+ }
+
+ protected int getLRUCapacity(String prop)
+ {
+ String capacity = repository.getProperties().get(prop);
+ return capacity == null ? 0 : Integer.valueOf(capacity);
+ }
+
+ protected void registerObjectType(CDORevisionImpl revision)
{
CDOID id = revision.getID();
CDOClassRefImpl type = revision.getCDOClass().createClassRef();
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOSessionImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOSessionImpl.java
index 79e38ebf98..27c0f2cc7e 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOSessionImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOSessionImpl.java
@@ -597,6 +597,8 @@ public class CDOSessionImpl extends Container<CDOView> implements CDOSession
sessionID = result.getSessionID();
repositoryUUID = result.getRepositoryUUID();
packageManager.addPackageProxies(result.getPackageInfos());
+ packageManager.activate();
+ revisionManager.activate();
EventUtil.addListener(channel, channelListener);
}
@@ -604,6 +606,8 @@ public class CDOSessionImpl extends Container<CDOView> implements CDOSession
protected void doDeactivate() throws Exception
{
EventUtil.removeListener(channel, channelListener);
+ revisionManager.deactivate();
+ packageManager.deactivate();
synchronized (views)
{
for (CDOViewImpl view : getViews())

Back to the top