diff --git a/pom.xml b/pom.xml index 651afd0f30269bab1ffaff9c0f70565e88d08406..1bc638942f91e6786116f6587deee42cc791a97f 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ <jackson.version>2.11.0</jackson.version> <org.mysql.version>5.1.46</org.mysql.version> <org.postgresql.version>42.2.14</org.postgresql.version> - <org.infinispan.version>10.1.8.Final</org.infinispan.version> + <org.infinispan.version>11.0.0.Final</org.infinispan.version> <lucene.version>7.7.0</lucene.version> <version.selenium>3.141.59</version.selenium> <version.drone>2.5.1</version.drone> diff --git a/src/main/java/org/olat/admin/cache/AllCachesController.java b/src/main/java/org/olat/admin/cache/AllCachesController.java index d78c8367286412cdfb2ede36e64e845d4337e137..5a117ff7e32fbb6f441357c0d93b0c73c93b0517 100644 --- a/src/main/java/org/olat/admin/cache/AllCachesController.java +++ b/src/main/java/org/olat/admin/cache/AllCachesController.java @@ -26,12 +26,11 @@ package org.olat.admin.cache; import java.util.ArrayList; -import java.util.Collections; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Set; -import org.apache.logging.log4j.Logger; import org.infinispan.Cache; import org.infinispan.configuration.cache.Configuration; import org.infinispan.configuration.cache.StorageType; @@ -40,23 +39,26 @@ import org.infinispan.stats.Stats; import org.olat.core.CoreSpringFactory; import org.olat.core.commons.persistence.DBFactory; import org.olat.core.commons.persistence.DBImpl; +import org.olat.core.commons.persistence.SortKey; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.table.DefaultColumnDescriptor; -import org.olat.core.gui.components.table.StaticColumnDescriptor; -import org.olat.core.gui.components.table.Table; -import org.olat.core.gui.components.table.TableController; -import org.olat.core.gui.components.table.TableDataModel; -import org.olat.core.gui.components.table.TableEvent; -import org.olat.core.gui.components.table.TableGuiConfiguration; -import org.olat.core.gui.components.velocity.VelocityContainer; +import org.olat.core.gui.components.form.flexible.FormItem; +import org.olat.core.gui.components.form.flexible.FormItemContainer; +import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement; +import org.olat.core.gui.components.form.flexible.impl.FormBasicController; +import org.olat.core.gui.components.form.flexible.impl.FormEvent; +import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiColumnModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiTableDataModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiSortableColumnDef; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory; +import org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent; +import org.olat.core.gui.components.form.flexible.impl.elements.table.SortableFlexiTableDataModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.SortableFlexiTableModelDelegate; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; -import org.olat.core.gui.control.controller.BasicController; import org.olat.core.gui.control.generic.modal.DialogBoxController; import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory; -import org.olat.core.logging.Tracing; import org.olat.core.util.coordinate.Cacher; import org.olat.core.util.coordinate.CoordinatorManager; @@ -69,86 +71,51 @@ import org.olat.core.util.coordinate.CoordinatorManager; * * @author Felix Jost */ -public class AllCachesController extends BasicController { - - private static final Logger log = Tracing.createLoggerFor(AllCachesController.class); - - private VelocityContainer myContent; - private TableController tableCtr; - private TableDataModel<CacheInfos> tdm; +public class AllCachesController extends FormBasicController { + private DialogBoxController dc; + private CachesDataModel tableModel; + private FlexiTableElement tableEl; + /** * @param ureq * @param wControl * */ public AllCachesController(UserRequest ureq, WindowControl wControl) { - super(ureq, wControl); - //create page - myContent = createVelocityContainer("index"); - - TableGuiConfiguration tableConfig = new TableGuiConfiguration(); - tableConfig.setDownloadOffered(true); - tableConfig.setResultsPerPage(200); + super(ureq, wControl, "index"); - tableCtr = new TableController(tableConfig, ureq, getWindowControl(), getTranslator()); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("cache.name", 0, null, getLocale())); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("cache.disk", 1, null, getLocale())); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("cache.hitcnt", 2, null, getLocale())); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("cache.mcexp", 3, null, getLocale())); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("cache.quickcount", 5, null, getLocale())); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("cache.tti", 6, null, getLocale())); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("cache.ttl", 7, null, getLocale())); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("cache.maxElements", 8, null, getLocale())); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("cache.clustered", 9, null, getLocale())); - tableCtr.addColumnDescriptor(new StaticColumnDescriptor("empty", "cache.empty", translate("action.choose"))); - listenTo(tableCtr); - myContent.contextPut("title", translate("caches.title")); - myContent.put("cachetable", tableCtr.getInitialComponent()); + initForm(ureq); loadModel(); - - //returned panel is not needed here, because this controller only shows content with the index.html velocity page - putInitialPanel(myContent); } + @Override + protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { + FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel(); + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(CacheCols.name)); + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(CacheCols.offHeap)); + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(CacheCols.hit)); + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(CacheCols.miss)); + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(CacheCols.size)); + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(CacheCols.maxIdle)); + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(CacheCols.lifespan)); + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(CacheCols.maxEntries)); + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(CacheCols.cacheMode)); + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel("cache.empty", translate("action.choose"), "empty")); + + tableModel = new CachesDataModel(columnsModel, getLocale()); + tableEl = uifactory.addTableElement(getWindowControl(), "table", tableModel, 250, false, getTranslator(), formLayout); + tableEl.setAndLoadPersistedPreferences(ureq, "all-caches"); + tableEl.setExportEnabled(true); + tableEl.setPageSize(250); + } @Override protected void doDispose() { // } - @Override - public void event(UserRequest ureq, Component source, Event event) { - // - } - - @Override - protected void event(UserRequest ureq, Controller source, Event event) { - if (source == tableCtr) { - if (event.getCommand().equals(Table.COMMANDLINK_ROWACTION_CLICKED)) { - TableEvent te = (TableEvent) event; - String actionid = te.getActionId(); - if (actionid.equals("empty")) { - Object cacheInfos = tableCtr.getTableDataModel().getObject(te.getRowId()); - dc = activateYesNoDialog(ureq, null, translate("confirm.emptycache"), dc); - dc.setUserObject(cacheInfos); - } - } - } else if (source == dc) { - if (DialogBoxUIFactory.isYesEvent(event)) { - String cacheName = null; - try { - CacheInfos cacheInfos = (CacheInfos)dc.getUserObject(); - cacheInfos.clear(); - loadModel(); - } catch (IllegalStateException e) { - log.error("Cannot remove Cache:"+cacheName, e); - } - } - } - } - private void loadModel() { Set<String> names = new HashSet<>(); List<CacheInfos> infos = new ArrayList<>(); @@ -159,17 +126,17 @@ public class AllCachesController extends BasicController { Cacher cacher = coordinator.getCoordinator().getCacher(); loadModel(infos, names, cacher.getCacheContainer()); } catch (Exception e) { - log.error("", e); + logError("", e); } try { loadModel(infos, names, ((DBImpl)DBFactory.getInstance()).getCacheContainer()); } catch (Exception e) { - log.error("", e); + logError("", e); } - tdm = new AllCachesTableDataModel(infos); - tableCtr.setTableDataModel(tdm); + tableModel.setObjects(infos); + tableEl.reset(true, true, true); } private void loadModel(List<CacheInfos> infos, Set<String> names, EmbeddedCacheManager cm) { @@ -183,10 +150,48 @@ public class AllCachesController extends BasicController { } names.addAll(cacheNameSet); } + + @Override + protected void event(UserRequest ureq, Controller source, Event event) { + if (source == dc) { + if (DialogBoxUIFactory.isYesEvent(event)) { + doClearCache((CacheInfos)dc.getUserObject()); + } + } + } + + @Override + protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { + if (source == tableEl) { + if (event instanceof SelectionEvent) { + SelectionEvent se = (SelectionEvent) event; + if ("empty".equals(se.getCommand())) { + CacheInfos cacheInfos = tableModel.getObject(se.getIndex()); + dc = activateYesNoDialog(ureq, null, translate("confirm.emptycache"), dc); + dc.setUserObject(cacheInfos); + } + } + } + super.formInnerEvent(ureq, source, event); + } + + @Override + protected void formOK(UserRequest ureq) { + // + } + + private void doClearCache(CacheInfos cacheInfos) { + try { + cacheInfos.clear(); + loadModel(); + } catch (IllegalStateException e) { + logError("Cannot clear cache", e); + } + } private static class CacheInfos { private final String cname; - private final boolean binary; + private final boolean offHeap; private final long hits; private final long misses; private final long size; @@ -199,19 +204,19 @@ public class AllCachesController extends BasicController { public CacheInfos(String cname, Cache<?,?> cache) { this.cache = cache; - Stats stats = cache.getAdvancedCache().getStats(); - this.cname = cname; + Stats stats = cache.getAdvancedCache().getStats(); + Configuration configuration = cache.getCacheConfiguration(); - binary = configuration.memory().storageType() == StorageType.BINARY; + offHeap = configuration.memory().storage() == StorageType.OFF_HEAP; hits = stats.getHits(); misses = stats.getMisses(); size = cache.getAdvancedCache().size(); maxIdle = cache.getCacheConfiguration().expiration().maxIdle(); lifespan = cache.getCacheConfiguration().expiration().lifespan(); - maxEntries = configuration.memory().size(); + maxEntries = configuration.memory().maxCount(); cacheMode = cache.getCacheConfiguration().clustering().cacheModeString(); } @@ -219,8 +224,8 @@ public class AllCachesController extends BasicController { return cname; } - public boolean isBinary() { - return binary; + public boolean isOffHeap() { + return offHeap; } public long getHits() { @@ -255,51 +260,83 @@ public class AllCachesController extends BasicController { cache.clear(); } } + + private static class CachesDataModel extends DefaultFlexiTableDataModel<CacheInfos> + implements SortableFlexiTableDataModel<CacheInfos> { + private static final CacheCols[] COLS = CacheCols.values(); + private final Locale locale; + + public CachesDataModel(FlexiTableColumnModel columnModel, Locale locale) { + super(columnModel); + this.locale = locale; + } - private static class AllCachesTableDataModel implements TableDataModel<CacheInfos> { - private List<CacheInfos> cacheInfos; - - protected AllCachesTableDataModel(List<CacheInfos> cacheInfos) { - this.cacheInfos = cacheInfos; + @Override + public void sort(SortKey orderBy) { + if(orderBy != null) { + List<CacheInfos> views = new SortableFlexiTableModelDelegate<>(orderBy, this, locale).sort(); + super.setObjects(views); + } } - + @Override - public CacheInfos getObject(int row) { - return cacheInfos.get(row); + public Object getValueAt(int row, int col) { + CacheInfos infos = getObject(row); + return getValueAt(infos, col); } - + @Override - public void setObjects(List<CacheInfos> objects) { - this.cacheInfos = objects; + public Object getValueAt(CacheInfos c, int col) { + switch(COLS[col]) { + case name: return c.getCname(); + case offHeap: return c.isOffHeap(); + case hit: return c.getHits(); + case miss: return c.getMisses(); + case size: return c.getSize(); + case maxIdle: return c.getMaxIdle(); + case lifespan: return c.getLifespan(); + case maxEntries: return c.getMaxEntries(); + case cacheMode: return c.getCacheMode(); + default: return "ERROR"; + } } - + @Override - public AllCachesTableDataModel createCopyWithEmptyList() { - return new AllCachesTableDataModel(Collections.<CacheInfos>emptyList()); + public DefaultFlexiTableDataModel<CacheInfos> createCopyWithEmptyList() { + return new CachesDataModel(getTableColumnModel(), locale); } - - public int getColumnCount() { - return 9; + } + + public enum CacheCols implements FlexiSortableColumnDef { + name("cache.name"), + offHeap("cache.off.heap"), + hit("cache.hitcnt"), + miss("cache.mcexp"), + size("cache.quickcount"), + maxIdle("cache.tti"), + lifespan("cache.ttl"), + maxEntries("cache.maxElements"), + cacheMode("cache.clustered"); + + private final String i18nKey; + + private CacheCols(String i18nKey) { + this.i18nKey = i18nKey; } - - public int getRowCount() { - return cacheInfos.size(); + + @Override + public String i18nHeaderKey() { + return i18nKey; } - - public Object getValueAt(int row, int col) { - CacheInfos c = getObject(row); - switch(col) { - case 0: return c.getCname(); - case 1: return c.isBinary(); - case 2: return c.getHits(); - case 3: return c.getMisses(); - case 5: return c.getSize(); - case 6: return c.getMaxIdle(); - case 7: return c.getLifespan(); - case 8: return c.getMaxEntries(); - case 9: return c.getCacheMode(); - default: return ""; - } + + @Override + public boolean sortable() { + return true; + } + + @Override + public String sortKey() { + return name(); } } } \ No newline at end of file diff --git a/src/main/java/org/olat/admin/cache/_content/index.html b/src/main/java/org/olat/admin/cache/_content/index.html index 9bf288c99c523724f0899d6e0af2ef587983c683..bbeec7591b6583fc5aad65c27df0f58e862db072 100644 --- a/src/main/java/org/olat/admin/cache/_content/index.html +++ b/src/main/java/org/olat/admin/cache/_content/index.html @@ -1,2 +1,2 @@ -<h4>$title</h4> -$r.render("cachetable") +<h4>$r.translate("caches.title")</h4> +$r.render("table") diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_ar.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_ar.properties index 4f2fac2b8d8fa0e318fea9b543b22c2878cb5e3c..9bc24f45514803e0c09b4ccd67b8f4d9683d9e3b 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_ar.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_ar.properties @@ -1,6 +1,5 @@ #Mon Feb 22 10:47:11 CET 2010 action.choose=\u0641\u0627\u0631\u063A -cache.disk=\u0641\u0649 \u0627\u0644\u0642\u0631\u0635 cache.empty=\u0627\u0644\u0639\u0645\u0644\u064A\u0629 \u0627\u0644\u0641\u0648\u0631\u064A\u0629 cache.hitcnt=\u062A\u0644\u0645\u064A\u062D\u0627\u062A cache.maxElements=Max el diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_bg.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_bg.properties index cfddbf81e79f09b8cadf2e85bbd402f2d2954999..b18183b8bb00f80f8b9f373e9e505bef4e9965a6 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_bg.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_bg.properties @@ -1,6 +1,5 @@ #Fri Aug 28 04:32:25 CEST 2009 action.choose=\u0418\u0437\u043F\u0440\u0430\u0437\u043D\u0435\u0442\u0435 -cache.disk=\u041D\u0430 \u0434\u0438\u0441\u043A cache.empty=\u041A\u0435\u0448 \u043F\u0430\u043C\u0435\u0442 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F cache.hitcnt=\u041F\u043E\u0441\u0435\u0449\u0435\u043D\u0438\u044F cache.maxElements=Max el diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_cs.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_cs.properties index 92336086528a350095dbcf3f434bb5e1cc02b301..4ade263200cae970bd6ea4db5e90bed4bf7ce614 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_cs.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_cs.properties @@ -1,6 +1,5 @@ #Mon Mar 02 09:54:13 CET 2009 action.choose=Pr\u00E1zdn\u00E1 -cache.disk=Na disku cache.empty=Cache operace cache.hitcnt=Z\u00E1sahy cache.maxElements=Max el diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_da.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_da.properties index cd7d747c20f756e972f5ac69f6b87fcb7490375f..5d1b6f97c6083b68dbe498b6ed72ca183e416826 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_da.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_da.properties @@ -1,6 +1,5 @@ #Mon Mar 02 09:54:08 CET 2009 action.choose=Tom -cache.disk=P\u00E5 harddisk cache.empty=Cache operation cache.hitcnt=Hits cache.mcexp=Miss (exp) diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_de.properties index 35f061f1dc676a04d1907d6f77a47ce9419245d3..42e6723fa34a0a4c27cd7ad6ee4eac4ceecd9ca2 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_de.properties @@ -1,11 +1,11 @@ #Mon Mar 02 09:54:03 CET 2009 action.choose=Leeren -cache.disk=Auf HD cache.empty=Cache Operation cache.hitcnt=Hits cache.maxElements=Max el cache.mcexp=Misses cache.name=Name +cache.off.heap=Off heap cache.quickcount=~ Elemente cache.tti=Max idle (millisec) cache.ttl=Lifespan (millisec) diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_el.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_el.properties index 55aacbb945843b9a36c0d07fd78d47fdb43651c1..ba04fb5d09ec9fadf99fb9d37adbd99028710b5e 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_el.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_el.properties @@ -1,6 +1,5 @@ #Mon Mar 02 09:54:15 CET 2009 action.choose=\u0386\u03B4\u03B5\u03B9\u03B1\u03C3\u03BC\u03B1 -cache.disk=\u03A3\u03C4\u03BF \u03B4\u03AF\u03C3\u03BA\u03BF cache.empty=\u039B\u03B5\u03B9\u03C4\u03BF\u03C5\u03C1\u03B3\u03AF\u03B1 Cache cache.hitcnt=Hits cache.maxElements=Max el diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_en.properties index 49b12a6c1dd795b3fe91bdf7a7c2742c6874f601..d4ec1e5a7aef9447829c5b7015ec98f62696d8f9 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_en.properties @@ -1,11 +1,11 @@ #Sat Jan 22 17:17:46 CET 2011 action.choose=Empty -cache.disk=On HD cache.empty=Cache operation cache.hitcnt=Hits cache.maxElements=Max el cache.mcexp=Misses cache.name=Name +cache.off.heap=Off heap cache.quickcount=~ Elements cache.tti=Max idle (millisec) cache.ttl=Lifespan (millisec) diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_es.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_es.properties index ce770f537981aed65ad89904e3d7c84bad02325f..1b74c35f3ae05b5ec6ad0c2d3229ed563609c312 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_es.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_es.properties @@ -1,6 +1,5 @@ #Mon Mar 02 09:54:20 CET 2009 action.choose=Vac\u00EDo -cache.disk=En Disco cache.empty=Operaci\u00F3n de cach\u00E9 cache.hitcnt=Aciertos cache.maxElements=Max elementos diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_fa.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_fa.properties index 6b3e2b7c586e9f91ac620e82e7f4c6a7109c2d1b..8708760279dd11291c8e46ce42d065e717df2af6 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_fa.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_fa.properties @@ -1,6 +1,5 @@ #Mon Mar 02 09:54:12 CET 2009 action.choose=Empty -cache.disk=On disk cache.empty=Cache operation cache.hitcnt=Hits cache.mcexp=Miss (exp) diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_fr.properties index 628087f8f4df4997759cc9c8df88423c9b116831..74cfd10eaf55ee096c6fa4bed9ea62630e47572f 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_fr.properties @@ -1,7 +1,6 @@ #Sun Oct 27 19:21:24 CET 2013 action.choose=Vider cache.clustered=Clustered -cache.disk=Sur HD cache.empty=Cache op\u00E9ration cache.hitcnt=Hits cache.maxElements=Max. \u00E9l. diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_it.properties index b39ac783218882fa531e6739f86952da3f00db3f..9ea6480f9ed0e087fa1e4d389b083a878db76986 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_it.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_it.properties @@ -1,7 +1,6 @@ #Tue Feb 07 13:49:56 CET 2017 action.choose=vuota cache.clustered=Clustered -cache.disk=Su HD cache.empty=Cache Operation cache.hitcnt=Hit cache.maxElements=Max el diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_jp.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_jp.properties index 955db63acc64c7853e393739b36d48e10570a61f..fba83f93d9c7c7509b046a8d56a470b95532e17d 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_jp.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_jp.properties @@ -1,6 +1,5 @@ #Tue Jul 13 08:03:25 CEST 2010 action.choose=\u7A7A -cache.disk=\u30C7\u30A3\u30B9\u30AF cache.empty=\u30AD\u30E3\u30C3\u30B7\u30E5\u51E6\u7406 cache.hitcnt=\u30D2\u30C3\u30C8 cache.maxElements=\u6700\u5927\u30A8\u30EC\u30E1\u30F3\u30C8 diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_lt.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_lt.properties index 8899828f6146a38e731f304f20d52aa06248bd0f..daf1db4751433e2bab46451aaedde483518bfa47 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_lt.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_lt.properties @@ -1,6 +1,5 @@ #Mon Mar 02 09:54:01 CET 2009 action.choose=Tu\u0161\u010Dia -cache.disk=Diske cache.empty=Pagalbin\u0117s atminties operacija cache.hitcnt=Parodymai cache.mcexp=Nerasta (exp) diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_nl_NL.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_nl_NL.properties index d76fd426718ffe25c6fee45b05bdc60c9ac0d1e7..ee449e2613c747e666cc62f461367a0976c6139b 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_nl_NL.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_nl_NL.properties @@ -1,6 +1,5 @@ #Thu Sep 08 16:42:42 CEST 2011 action.choose=Leeg -cache.disk=In HD cache.empty=Cache operatie cache.hitcnt=Hits cache.maxElements=Max el diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_pl.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_pl.properties index 045761e1eab885e54b1b808d779ffb33a528d744..41df5787f3a42dd4635758d7066586bb8d3fc5cf 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_pl.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_pl.properties @@ -1,6 +1,5 @@ #Mon Mar 02 09:54:16 CET 2009 action.choose=Pusty -cache.disk=Na dysku cache.empty=Operacje cache.hitcnt=U\u017Cycia cache.maxElements=Max el diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_pt_BR.properties index 6c04662c7b471a9759a6cfa2b1cbc766e9acf813..6852855637e23c67a27a18f467d8e2494acf3ed5 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_pt_BR.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_pt_BR.properties @@ -1,7 +1,6 @@ #Fri Sep 06 15:28:54 CEST 2013 action.choose=Vazio cache.clustered=Clustered -cache.disk=No disco cache.empty=Opera\u00E7\u00E3o cache cache.hitcnt=Batidas cache.maxElements=Elementos maximos diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_pt_PT.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_pt_PT.properties index e0b048c41112c165344499d34e8ba300da366759..c05a2b621b3c2943624df104bd65a208f4f94e00 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_pt_PT.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_pt_PT.properties @@ -1,6 +1,5 @@ #Mon Mar 02 09:54:04 CET 2009 action.choose=Vazio -cache.disk=No disco cache.empty=Opera\u00E7\u00E3o cache cache.hitcnt=Batidas cache.mcexp=Falta diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_ru.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_ru.properties index e29e2854eeef73cd3cb9693c935cf539e89c4d25..044bc032d9ee2a3b9451546f87d1b69ab598a72e 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_ru.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_ru.properties @@ -1,6 +1,5 @@ #Thu Sep 24 01:35:52 CEST 2009 action.choose=\u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C -cache.disk=\u041D\u0430 \u0436\u0451\u0441\u0442\u043A\u043E\u043C \u0434\u0438\u0441\u043A\u0435 cache.empty=\u041A\u044D\u0448 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F cache.hitcnt=hit cache.maxElements=\u041C\u0430\u043A\u0441 \u044D\u043B diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_sq.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_sq.properties index d1a305951d2b288a9b3c7f8b2b69ee2958572a87..66d9c014e4d550395bd31233e7d71e3d67e51126 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_sq.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_sq.properties @@ -1,6 +1,5 @@ #Mon Mar 02 09:54:11 CET 2009 action.choose=Bosh -cache.disk=N\u00EB Disk cache.empty=Operacioni i Cashe cache.hitcnt=Goditje cache.maxElements=El maks diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_zh_CN.properties index c4be31911456ac36498a7ee88ea8f10cb92eeb9e..640157edbb4c160dc1da54469e644a60c611e37a 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_zh_CN.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_zh_CN.properties @@ -1,6 +1,5 @@ #Tue Dec 01 19:47:41 CET 2009 action.choose=\u7A7A -cache.disk=\u5728\u78C1\u76D8\u4E0A cache.empty=\u7F13\u5B58\u64CD\u4F5C cache.hitcnt=\u6572\u51FB cache.maxElements=\u6700\u5927\u9AD8\u5EA6 diff --git a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_zh_TW.properties b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_zh_TW.properties index 04fc43706c21b6d5de81a46770c5f3d5b549d9cf..cbc5adfcdd94ff29dd652968d62858ff156d5432 100644 --- a/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_zh_TW.properties +++ b/src/main/java/org/olat/admin/cache/_i18n/LocalStrings_zh_TW.properties @@ -1,6 +1,5 @@ #Mon Mar 02 09:54:05 CET 2009 action.choose=\u6E05\u7A7A -cache.disk=\u5728\u78C1\u789F\u4E0A cache.empty=\u5FEB\u53D6\u64CD\u4F5C cache.hitcnt=\u547D\u4E2D cache.maxElements=\u6700\u5927\u5143\u7D20 diff --git a/src/main/java/org/olat/core/util/cache/infinispan/InfinispanCacher.java b/src/main/java/org/olat/core/util/cache/infinispan/InfinispanCacher.java index 308313b9987374e175c8036db238dfcfe5fbbde7..636c0cf90d2709adf56aeaf21d4ee4c9cb3b1091 100644 --- a/src/main/java/org/olat/core/util/cache/infinispan/InfinispanCacher.java +++ b/src/main/java/org/olat/core/util/cache/infinispan/InfinispanCacher.java @@ -30,7 +30,6 @@ import org.infinispan.configuration.cache.Configuration; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.configuration.cache.StorageType; import org.infinispan.eviction.EvictionStrategy; -import org.infinispan.eviction.EvictionType; import org.infinispan.manager.EmbeddedCacheManager; import org.infinispan.transaction.TransactionMode; import org.infinispan.util.concurrent.IsolationLevel; @@ -74,13 +73,12 @@ public class InfinispanCacher implements Cacher { if(conf == null) { long maxEntries = 10000; long maxIdle = 900000l; - + ConfigurationBuilder builder = new ConfigurationBuilder(); builder.memory() - .evictionStrategy(EvictionStrategy.REMOVE) - .evictionType(EvictionType.COUNT) - .storageType(StorageType.OBJECT) - .size(maxEntries); + .whenFull(EvictionStrategy.REMOVE) + .storage(StorageType.HEAP) + .maxCount(maxEntries); builder.expiration() .maxIdle(maxIdle); builder.transaction() @@ -90,8 +88,9 @@ public class InfinispanCacher implements Cacher { .useLockStriping(false) .lockAcquisitionTimeout(15000) .isolationLevel(IsolationLevel.READ_COMMITTED); - builder.jmxStatistics() + builder.statistics() .enable(); + Configuration configurationOverride = builder.build(); cacheManager.defineConfiguration(cacheName, configurationOverride); } diff --git a/src/main/resources/infinispan-config.xml b/src/main/resources/infinispan-config.xml index 327897d29940caa5b3877c1d2f0758c24a67a6bd..c8232ad6fce4af10d22904aa4b6026393e6cbe71 100644 --- a/src/main/resources/infinispan-config.xml +++ b/src/main/resources/infinispan-config.xml @@ -1,91 +1,72 @@ <?xml version="1.0" encoding="UTF-8"?> <infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="urn:infinispan:config:10.1 https://infinispan.org/schemas/infinispan-config-10.1.xsd" - xmlns="urn:infinispan:config:10.1"> + xsi:schemaLocation="urn:infinispan:config:11.0 https://infinispan.org/schemas/infinispan-config-11.0.xsd" + xmlns="urn:infinispan:config:11.0"> <cache-container name="NonTransactionalCacheManager" default-cache="default"> - <jmx duplicate-domains="true" /> <local-cache name="default" /> <local-cache name="MapperService@mapper" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="10000" strategy="REMOVE"/> - </memory> + <memory max-count="10000" when-full="REMOVE" /> <expiration max-idle="300000" interval="5000" /> </local-cache> <local-cache name="OpenMeetingsManager@session" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="10000" strategy="REMOVE" /> - </memory> + <memory max-count="10000" when-full="REMOVE" /> <expiration max-idle="300000" interval="5000" /> </local-cache> <local-cache name="UserSessionManager@usersession" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object strategy="NONE" /> - </memory> + <memory when-full="NONE" /> <expiration max-idle="-1" interval="5000" /> </local-cache> <local-cache name="VFSLockManager@lock-nulls" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="50000" strategy="REMOVE" /> - </memory> + <memory max-count="50000" when-full="REMOVE" /> <expiration max-idle="21600000" interval="5000" /> </local-cache> <local-cache name="VFSLockManager@file-locks" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="50000" strategy="REMOVE" /> - </memory> + <memory max-count="50000" when-full="REMOVE" /> <expiration max-idle="21600000" interval="5000" /> </local-cache> <local-cache name="CalendarManager@calendar" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="500" strategy="REMOVE"/> - </memory> + <memory max-count="500" when-full="REMOVE" /> <expiration max-idle="900000" interval="5000" /> </local-cache> <local-cache name="AssessmentManager@newpersisting" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="20000" strategy="REMOVE" /> - </memory> + <memory max-count="20000" when-full="REMOVE" /> <expiration max-idle="900000" interval="5000" /> </local-cache> <local-cache name="QTIHelper@QTI_xml_Documents" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="200" strategy="REMOVE" /> - </memory> + <memory max-count="200" when-full="REMOVE" /> <expiration max-idle="180000" interval="15000" /> </local-cache> <local-cache name="WebDAVManager@webdav" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="2013" strategy="REMOVE" /> - </memory> + <memory max-count="2013" when-full="REMOVE" /> <expiration max-idle="300000" interval="5000" /> <!-- max-idle same as session time out for WebDAV session in UserSessionManager --> </local-cache> @@ -93,117 +74,91 @@ <local-cache name="UserManager@username" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="20000" strategy="REMOVE" /> - </memory> + <memory max-count="20000" when-full="REMOVE" /> <expiration max-idle="2700000" interval="15000" /> </local-cache> <local-cache name="UserManager@userfullname" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="20000" strategy="REMOVE" /> - </memory> + <memory max-count="20000" when-full="REMOVE" /> <expiration max-idle="2700000" interval="15000" /> </local-cache> <local-cache name="Velocity@templates" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="7700" strategy="REMOVE" /> - </memory> + <memory max-count="7700" when-full="NONE" /> <expiration max-idle="-1" lifespan="-1" interval="-1" /> </local-cache> <local-cache name="LoginModule@blockafterfailedattempts" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="10000" strategy="REMOVE" /> - </memory> + <memory max-count="10000" when-full="REMOVE" /> <expiration max-idle="300000" lifespan="300000" interval="5000" /> </local-cache> <local-cache name="NotificationHelper@userPropertiesCache" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="2000" strategy="REMOVE" /> - </memory> + <memory max-count="2000" when-full="REMOVE" /> <expiration max-idle="120000" interval="15000" /> </local-cache> <local-cache name="GlossaryItemManager@glossary" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="500" strategy="REMOVE" /> - </memory> + <memory max-count="500" when-full="REMOVE" /> <expiration max-idle="3600000" interval="15000" /> </local-cache> <local-cache name="WikiManager@wiki" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="500" strategy="REMOVE" /> - </memory> + <memory max-count="500" when-full="REMOVE" /> <expiration max-idle="3600000" interval="15000" /> </local-cache> <local-cache name="CollaborationToolsFactory@tools" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="5000" strategy="REMOVE" /> - </memory> + <memory max-count="5000" when-full="REMOVE" /> <expiration max-idle="1800000" interval="15000" /> </local-cache> <local-cache name="CourseFactory@courses" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="1000" strategy="REMOVE" /> - </memory> + <memory max-count="1500" when-full="REMOVE" /> <expiration max-idle="3600000" interval="15000" /> </local-cache> <local-cache name="ProjectBrokerManager@pb" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="100" strategy="REMOVE" /> - </memory> + <memory max-count="100" when-full="REMOVE" /> <expiration max-idle="3600000" interval="15000" /> </local-cache> <local-cache name="Path@feed" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="5000" strategy="REMOVE" /> - </memory> + <memory max-count="5000" when-full="REMOVE" /> <expiration max-idle="900000" interval="15000" /> </local-cache> <local-cache name="PdfService@delivery" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="50000" strategy="REMOVE" /> - </memory> + <memory max-count="50000" when-full="REMOVE" /> <expiration max-idle="900000" interval="15000" /> </local-cache> <local-cache name="GradingService@courseElementsTitle" simple-cache="true" statistics="true" statistics-available="true"> <locking isolation="READ_COMMITTED" concurrency-level="1000" acquire-timeout="15000" striping="false" /> <transaction mode="NONE" auto-commit="true" /> - <memory> - <object size="5000" strategy="REMOVE" /> - </memory> + <memory max-count="5000" when-full="REMOVE" /> <expiration max-idle="3600000" interval="15000" /> </local-cache> diff --git a/src/main/resources/org/infinispan/hibernate/cache/commons/builder/infinispan-configs-local.xml b/src/main/resources/org/infinispan/hibernate/cache/commons/builder/infinispan-configs-local.xml index dc4b87345c72db8afa4a309b67e638bc4c28ee65..8830d03e14e25ac2f8c113f5d84a087a489b8bc5 100644 --- a/src/main/resources/org/infinispan/hibernate/cache/commons/builder/infinispan-configs-local.xml +++ b/src/main/resources/org/infinispan/hibernate/cache/commons/builder/infinispan-configs-local.xml @@ -7,32 +7,26 @@ --> <infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="urn:infinispan:config:10.1 https://infinispan.org/schemas/infinispan-config-10.1.xsd" - xmlns="urn:infinispan:config:10.1"> + xsi:schemaLocation="urn:infinispan:config:11.0 https://infinispan.org/schemas/infinispan-config-11.0.xsd" + xmlns="urn:infinispan:config:11.0"> <!-- This configuration is suitable for non-clustered environments, where only single instance accesses the DB --> <cache-container name="SampleCacheManager" statistics="false" default-cache="the-default-cache" shutdown-hook="DEFAULT"> - <jmx duplicate-domains="true"/> - <local-cache-configuration name="the-default-cache" statistics="false" /> <!-- Default configuration is appropriate for entity/collection caching. --> <local-cache-configuration name="entity" simple-cache="true" statistics="false" statistics-available="false"> <transaction mode="NONE" /> <expiration max-idle="100000" interval="5000"/> - <memory> - <object size="10000" strategy="LRU" /> - </memory> + <memory max-count="10000"/> </local-cache-configuration> <!-- A config appropriate for query caching. Does not replicate queries. --> <local-cache-configuration name="local-query" simple-cache="true" statistics="false" statistics-available="false"> <transaction mode="NONE"/> - <expiration max-idle="10000" interval="5000"/> - <memory> - <object size="10000" strategy="LRU" /> - </memory> + <expiration max-idle="100000" interval="5000"/> + <memory max-count="10000"/> </local-cache-configuration> <local-cache-configuration name="timestamps" simple-cache="true" statistics="false" statistics-available="false"> @@ -41,9 +35,7 @@ <transaction mode="NONE"/> <expiration interval="0"/> <!-- Don't ever evict modification timestamps --> - <memory> - <object strategy="NONE"/> - </memory> + <memory when-full="NONE"/> </local-cache-configuration> <!-- When providing custom configuration, always make this cache local and non-transactional. diff --git a/src/main/resources/org/infinispan/hibernate/cache/commons/builder/infinispan-configs.xml b/src/main/resources/org/infinispan/hibernate/cache/commons/builder/infinispan-configs.xml index 8d3c25d2d738321bd7b19286fd26ae7c1b552b0a..223543025f35c4d93c066aa83e95ea9c55fb8217 100644 --- a/src/main/resources/org/infinispan/hibernate/cache/commons/builder/infinispan-configs.xml +++ b/src/main/resources/org/infinispan/hibernate/cache/commons/builder/infinispan-configs.xml @@ -7,12 +7,16 @@ --> <infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="urn:infinispan:config:10.1 https://infinispan.org/schemas/infinispan-config-10.1.xsd" - xmlns="urn:infinispan:config:10.1"> + xsi:schemaLocation="urn:infinispan:config:11.0 https://infinispan.org/schemas/infinispan-config-11.0.xsd" + xmlns="urn:infinispan:config:11.0"> + <!-- + <jgroups> + <stack-file name="hibernate-jgroups" path="${hibernate.cache.infinispan.jgroups_cfg:default-configs/default-jgroups-tcp.xml}"/> + </jgroups> + --> <cache-container name="SampleCacheManager" statistics="false" default-cache="the-default-cache" shutdown-hook="DEFAULT"> <transport stack="hibernate-jgroups" cluster="infinispan-hibernate-cluster"/> - <jmx duplicate-domains="true"/> <local-cache-configuration name="the-default-cache" statistics="false" /> @@ -21,18 +25,14 @@ <locking concurrency-level="1000" acquire-timeout="15000"/> <transaction mode="NONE" /> <expiration max-idle="100000" interval="5000"/> - <memory> - <object size="10012" strategy="LRU" /> - </memory> + <memory max-count="10012"/> </invalidation-cache-configuration> <replicated-cache-configuration name="replicated-entity" remote-timeout="20000" statistics="false" statistics-available="false"> <locking concurrency-level="1000" acquire-timeout="15000"/> <transaction mode="NONE" /> <expiration max-idle="100000" interval="5000"/> - <memory> - <object size="10012" strategy="LRU" /> - </memory> + <memory max-count="10012"/> </replicated-cache-configuration> <!-- A config appropriate for query caching. Does not replicate queries. --> @@ -40,9 +40,7 @@ <locking concurrency-level="1000" acquire-timeout="15000"/> <transaction mode="NONE" /> <expiration max-idle="100000" interval="5000"/> - <memory> - <object size="10012" strategy="LRU" /> - </memory> + <memory max-count="10012"/> </local-cache-configuration> <!-- A query cache that replicates queries. Replication is asynchronous. --> @@ -50,9 +48,7 @@ <locking concurrency-level="1000" acquire-timeout="15000" isolation="READ_COMMITTED"/> <transaction mode="NONE" /> <expiration max-idle="100000" interval="5000"/> - <memory> - <object size="10000" strategy="LRU" /> - </memory> + <memory max-count="10012"/> </replicated-cache-configuration> <!-- Optimized for timestamp caching. A clustered timestamp cache @@ -64,9 +60,7 @@ <transaction mode="NONE"/> <expiration interval="0"/> <!-- Don't ever evict modification timestamps --> - <memory> - <object strategy="NONE" /> - </memory> + <memory when-full="NONE"/> </replicated-cache-configuration> <!-- When providing custom configuration, always make this cache local and non-transactional.