Allow configuration of the model provider's cache expiration timeout
Change-Id: I7fe93911d8cad350e5f5b6fbe53856612bc5b56e
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/EMFModelProvider.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/EMFModelProvider.java
index 5dbf655..c9928d0 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/EMFModelProvider.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/EMFModelProvider.java
@@ -48,6 +48,7 @@
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.emf.compare.ide.ui.internal.EMFCompareIDEUIPlugin;
+import org.eclipse.emf.compare.ide.ui.internal.preferences.EMFCompareUIPreferences;
import org.eclipse.emf.compare.ide.ui.logical.IModelResolver;
import org.eclipse.emf.compare.ide.ui.logical.IStorageProvider;
import org.eclipse.emf.compare.ide.ui.logical.IStorageProviderAccessor;
@@ -84,7 +85,8 @@
* place and hasten the whole process.
* </p>
*/
- public static final long CACHE_EXPIRATION = 120L;
+ public static final long CACHE_EXPIRATION = EMFCompareIDEUIPlugin.getDefault().getPreferenceStore()
+ .getLong(EMFCompareUIPreferences.MODEL_PROVIDER_CACHE_TIMEOUT);
/** The logger. */
private static final Logger LOGGER = Logger.getLogger(EMFModelProvider.class);
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/preferences/EMFCompareUIPreferences.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/preferences/EMFCompareUIPreferences.java
index a348cc6..19d2bf2 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/preferences/EMFCompareUIPreferences.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/preferences/EMFCompareUIPreferences.java
@@ -90,4 +90,11 @@
*/
String SELECT_NEXT_UNRESOLVED_DIFF = EMFCompareIDEUIPlugin.PLUGIN_ID
+ ".preference.selectNextUnresolvedDiff"; //$NON-NLS-1$
+
+ /**
+ * Preference key holding the value for the EMFModelProvider's internal cache expiration time. This can
+ * only be changed at startup.
+ */
+ String MODEL_PROVIDER_CACHE_TIMEOUT = EMFCompareIDEUIPlugin.PLUGIN_ID
+ + ".preference.model.provider.cache.timeout"; //$NON-NLS-1$
}
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/preferences/EMFCompareUIPreferencesInitializer.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/preferences/EMFCompareUIPreferencesInitializer.java
index 7858706..48925c3 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/preferences/EMFCompareUIPreferencesInitializer.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/preferences/EMFCompareUIPreferencesInitializer.java
@@ -38,5 +38,6 @@
store.setDefault(EMFCompareUIPreferences.EDITOR_TREE_AUTO_SELECT_FIRST_CHANGE, true);
store.setDefault(EMFCompareUIPreferences.EDITOR_TREE_HIGHLIGHT_RELATED_CHANGES, true);
store.setDefault(EMFCompareUIPreferences.SELECT_NEXT_UNRESOLVED_DIFF, true);
+ store.setDefault(EMFCompareUIPreferences.MODEL_PROVIDER_CACHE_TIMEOUT, 120L);
}
}