mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-09 11:03:12 +00:00

* Refactor READ ONLY mode in Context and adjust hibernate settings accordingly * Set Context in READ-ONLY mode when retrieving community lists * Fix Hibernate EHCache configuration + fix some Hibernate warnings * Cache authorized actions and group membership when Context is in READ-ONLY mode * Set default Context mode * Let ConfigurableBrowse use a READ-ONLY context * Add 2nd level cache support for Site and EPerson DSpaceObjects * Added 2nd level caching for Community and Collection * Fix tests and license checks * Cache collection and community queries * Small refactorings + backwards compatibility * Set Context to READ-ONLY for JSPUI submissions and 'select collection' step * OAI improvements part 1 * OAI indexing improvements part 1 * OAI indexing improvements part 2 * DS-3552: Only uncache resource policies in AuthorizeService when in read-only * DS-3552: Additional comment on caching handles * DS-3552: Fix cache leakage in SolrServiceResourceRestrictionPlugin * DS-3552: Clear the read-only cache when switching Context modes * DS-3552: Correct Group 2nd level cache size * DS-3552: Always clear the cache, except when going from READ_ONLY to READ_ONLY
266 lines
14 KiB
XML
266 lines
14 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
<!--
|
|
|
|
The contents of this file are subject to the license and copyright
|
|
detailed in the LICENSE and NOTICE files at the root of the source
|
|
tree and available online at
|
|
|
|
http://www.dspace.org/license/
|
|
|
|
-->
|
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1.7">
|
|
|
|
<xs:element name="ehcache">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element maxOccurs="1" minOccurs="0" ref="diskStore"/>
|
|
<xs:element maxOccurs="1" minOccurs="0" ref="transactionManagerLookup"/>
|
|
<xs:element maxOccurs="1" minOccurs="0" ref="cacheManagerEventListenerFactory"/>
|
|
<xs:element maxOccurs="unbounded" minOccurs="0" ref="cacheManagerPeerProviderFactory"/>
|
|
<xs:element maxOccurs="unbounded" minOccurs="0" ref="cacheManagerPeerListenerFactory"/>
|
|
<xs:element maxOccurs="1" minOccurs="0" ref="terracottaConfig"/>
|
|
<xs:element ref="defaultCache"/>
|
|
<xs:element maxOccurs="unbounded" minOccurs="0" ref="cache"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="name" use="optional"/>
|
|
<xs:attribute default="true" name="updateCheck" type="xs:boolean" use="optional"/>
|
|
<xs:attribute default="autodetect" name="monitoring" type="monitoringType" use="optional"/>
|
|
<xs:attribute default="true" name="dynamicConfig" type="xs:boolean" use="optional"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="diskStore">
|
|
<xs:complexType>
|
|
<xs:attribute name="path" use="optional"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="transactionManagerLookup">
|
|
<xs:complexType>
|
|
<xs:attribute name="class" use="required"/>
|
|
<xs:attribute name="properties" use="optional"/>
|
|
<xs:attribute name="propertySeparator" use="optional"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="cacheManagerEventListenerFactory">
|
|
<xs:complexType>
|
|
<xs:attribute name="class" use="required"/>
|
|
<xs:attribute name="properties" use="optional"/>
|
|
<xs:attribute name="propertySeparator" use="optional"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="cacheManagerPeerProviderFactory">
|
|
<xs:complexType>
|
|
<xs:attribute name="class" use="required"/>
|
|
<xs:attribute name="properties" use="optional"/>
|
|
<xs:attribute name="propertySeparator" use="optional"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="cacheManagerPeerListenerFactory">
|
|
<xs:complexType>
|
|
<xs:attribute name="class" use="required"/>
|
|
<xs:attribute name="properties" use="optional"/>
|
|
<xs:attribute name="propertySeparator" use="optional"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="terracottaConfig">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element maxOccurs="1" minOccurs="0" name="tc-config">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:any maxOccurs="unbounded" minOccurs="0" processContents="skip"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
<xs:attribute default="localhost:9510" name="url" use="optional"/>
|
|
<xs:attribute name="registerStatsMBean" type="xs:boolean" use="optional"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<!-- add clone support for addition of cacheExceptionHandler. Important! -->
|
|
<xs:element name="defaultCache">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element minOccurs="0" maxOccurs="unbounded" ref="cacheEventListenerFactory"/>
|
|
<xs:element minOccurs="0" maxOccurs="unbounded" ref="cacheExtensionFactory"/>
|
|
<xs:element minOccurs="0" maxOccurs="unbounded" ref="cacheLoaderFactory"/>
|
|
<xs:element minOccurs="0" maxOccurs="1" ref="bootstrapCacheLoaderFactory"/>
|
|
<xs:element minOccurs="0" maxOccurs="1" ref="cacheExceptionHandlerFactory"/>
|
|
<xs:element minOccurs="0" maxOccurs="1" ref="terracotta"/>
|
|
<xs:element minOccurs="0" maxOccurs="1" ref="cacheWriter"/>
|
|
<xs:element minOccurs="0" maxOccurs="1" ref="copyStrategy"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="diskExpiryThreadIntervalSeconds" type="xs:integer" use="optional"/>
|
|
<xs:attribute name="diskSpoolBufferSizeMB" type="xs:integer" use="optional"/>
|
|
<xs:attribute name="diskPersistent" type="xs:boolean" use="optional"/>
|
|
<xs:attribute name="diskAccessStripes" type="xs:integer" use="optional" default="1"/>
|
|
<xs:attribute name="eternal" type="xs:boolean" use="required"/>
|
|
<xs:attribute name="maxElementsInMemory" type="xs:integer" use="required"/>
|
|
<xs:attribute name="clearOnFlush" type="xs:boolean" use="optional"/>
|
|
<xs:attribute name="memoryStoreEvictionPolicy" type="xs:string" use="optional"/>
|
|
<xs:attribute name="overflowToDisk" type="xs:boolean" use="required"/>
|
|
<xs:attribute name="timeToIdleSeconds" type="xs:integer" use="optional"/>
|
|
<xs:attribute name="timeToLiveSeconds" type="xs:integer" use="optional"/>
|
|
<xs:attribute name="maxElementsOnDisk" type="xs:integer" use="optional"/>
|
|
<xs:attribute name="transactionalMode" type="transactionalMode" use="optional" default="off"/>
|
|
<xs:attribute name="statistics" type="xs:boolean" use="optional" default="false"/>
|
|
<xs:attribute name="copyOnRead" type="xs:boolean" use="optional" default="false"/>
|
|
<xs:attribute name="copyOnWrite" type="xs:boolean" use="optional" default="false"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="cache">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element minOccurs="0" maxOccurs="unbounded" ref="cacheEventListenerFactory"/>
|
|
<xs:element minOccurs="0" maxOccurs="unbounded" ref="cacheExtensionFactory"/>
|
|
<xs:element minOccurs="0" maxOccurs="unbounded" ref="cacheLoaderFactory"/>
|
|
<xs:element minOccurs="0" maxOccurs="unbounded" ref="cacheDecoratorFactory"/>
|
|
<xs:element minOccurs="0" maxOccurs="1" ref="bootstrapCacheLoaderFactory"/>
|
|
<xs:element minOccurs="0" maxOccurs="1" ref="cacheExceptionHandlerFactory"/>
|
|
<xs:element minOccurs="0" maxOccurs="1" ref="terracotta"/>
|
|
<xs:element minOccurs="0" maxOccurs="1" ref="cacheWriter"/>
|
|
<xs:element minOccurs="0" maxOccurs="1" ref="copyStrategy"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="diskExpiryThreadIntervalSeconds" type="xs:integer" use="optional"/>
|
|
<xs:attribute name="diskSpoolBufferSizeMB" type="xs:integer" use="optional"/>
|
|
<xs:attribute name="diskPersistent" type="xs:boolean" use="optional"/>
|
|
<xs:attribute name="diskAccessStripes" type="xs:integer" use="optional" default="1"/>
|
|
<xs:attribute name="eternal" type="xs:boolean" use="required"/>
|
|
<xs:attribute name="maxElementsInMemory" type="xs:integer" use="required"/>
|
|
<xs:attribute name="memoryStoreEvictionPolicy" type="xs:string" use="optional"/>
|
|
<xs:attribute name="clearOnFlush" type="xs:boolean" use="optional"/>
|
|
<xs:attribute name="name" type="xs:string" use="required"/>
|
|
<xs:attribute name="overflowToDisk" type="xs:boolean" use="required"/>
|
|
<xs:attribute name="timeToIdleSeconds" type="xs:integer" use="optional"/>
|
|
<xs:attribute name="timeToLiveSeconds" type="xs:integer" use="optional"/>
|
|
<xs:attribute name="maxElementsOnDisk" type="xs:integer" use="optional"/>
|
|
<xs:attribute name="transactionalMode" type="transactionalMode" use="optional" default="off" />
|
|
<xs:attribute name="statistics" type="xs:boolean" use="optional" default="false"/>
|
|
<xs:attribute name="copyOnRead" type="xs:boolean" use="optional" default="false"/>
|
|
<xs:attribute name="copyOnWrite" type="xs:boolean" use="optional" default="false"/>
|
|
<xs:attribute name="logging" type="xs:boolean" use="optional" default="false"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="cacheEventListenerFactory">
|
|
<xs:complexType>
|
|
<xs:attribute name="class" use="required"/>
|
|
<xs:attribute name="properties" use="optional"/>
|
|
<xs:attribute name="propertySeparator" use="optional"/>
|
|
<xs:attribute name="listenFor" use="optional" type="notificationScope" default="all"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="bootstrapCacheLoaderFactory">
|
|
<xs:complexType>
|
|
<xs:attribute name="class" use="required"/>
|
|
<xs:attribute name="properties" use="optional"/>
|
|
<xs:attribute name="propertySeparator" use="optional"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="cacheExtensionFactory">
|
|
<xs:complexType>
|
|
<xs:attribute name="class" use="required"/>
|
|
<xs:attribute name="properties" use="optional"/>
|
|
<xs:attribute name="propertySeparator" use="optional"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="cacheExceptionHandlerFactory">
|
|
<xs:complexType>
|
|
<xs:attribute name="class" use="required"/>
|
|
<xs:attribute name="properties" use="optional"/>
|
|
<xs:attribute name="propertySeparator" use="optional"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="cacheLoaderFactory">
|
|
<xs:complexType>
|
|
<xs:attribute name="class" use="required"/>
|
|
<xs:attribute name="properties" use="optional"/>
|
|
<xs:attribute name="propertySeparator" use="optional"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="cacheDecoratorFactory">
|
|
<xs:complexType>
|
|
<xs:attribute name="class" use="required"/>
|
|
<xs:attribute name="properties" use="optional"/>
|
|
<xs:attribute name="propertySeparator" use="optional"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="terracotta">
|
|
<xs:complexType>
|
|
<xs:attribute name="clustered" use="optional" type="xs:boolean" default="true"/>
|
|
<xs:attribute name="valueMode" use="optional" type="terracottaCacheValueType" default="serialization"/>
|
|
<xs:attribute name="coherentReads" use="optional" type="xs:boolean" default="true"/>
|
|
<xs:attribute name="localKeyCache" use="optional" type="xs:boolean" default="false"/>
|
|
<xs:attribute name="localKeyCacheSize" use="optional" type="xs:positiveInteger" default="300000"/>
|
|
<xs:attribute name="orphanEviction" use="optional" type="xs:boolean" default="true"/>
|
|
<xs:attribute name="orphanEvictionPeriod" use="optional" type="xs:positiveInteger" default="4"/>
|
|
<xs:attribute name="copyOnRead" use="optional" type="xs:boolean" default="false"/>
|
|
<xs:attribute name="coherent" use="optional" type="xs:boolean" default="true"/>
|
|
<xs:attribute name="synchronousWrites" use="optional" type="xs:boolean" default="false"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:simpleType name="monitoringType">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="autodetect"/>
|
|
<xs:enumeration value="on"/>
|
|
<xs:enumeration value="off"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
<xs:simpleType name="terracottaCacheValueType">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="serialization" />
|
|
<xs:enumeration value="identity" />
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:simpleType name="transactionalMode">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="off"/>
|
|
<xs:enumeration value="xa"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:element name="cacheWriter">
|
|
<xs:complexType>
|
|
<xs:sequence >
|
|
<xs:element minOccurs="0" maxOccurs="1" ref="cacheWriterFactory"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="writeMode" use="optional" type="writeModeType" default="write-through"/>
|
|
<xs:attribute name="notifyListenersOnException" use="optional" type="xs:boolean" default="false"/>
|
|
<xs:attribute name="minWriteDelay" use="optional" type="xs:nonNegativeInteger" default="1"/>
|
|
<xs:attribute name="maxWriteDelay" use="optional" type="xs:nonNegativeInteger" default="1"/>
|
|
<xs:attribute name="rateLimitPerSecond" use="optional" type="xs:nonNegativeInteger" default="0"/>
|
|
<xs:attribute name="writeCoalescing" use="optional" type="xs:boolean" default="false"/>
|
|
<xs:attribute name="writeBatching" use="optional" type="xs:boolean" default="false"/>
|
|
<xs:attribute name="writeBatchSize" use="optional" type="xs:positiveInteger" default="1"/>
|
|
<xs:attribute name="retryAttempts" use="optional" type="xs:nonNegativeInteger" default="0"/>
|
|
<xs:attribute name="retryAttemptDelaySeconds" use="optional" type="xs:nonNegativeInteger" default="1"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:simpleType name="writeModeType">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="write-through" />
|
|
<xs:enumeration value="write-behind" />
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
<xs:element name="cacheWriterFactory">
|
|
<xs:complexType>
|
|
<xs:attribute name="class" use="required"/>
|
|
<xs:attribute name="properties" use="optional"/>
|
|
<xs:attribute name="propertySeparator" use="optional"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<xs:element name="copyStrategy">
|
|
<xs:complexType>
|
|
<xs:attribute name="class" use="required" type="xs:string" />
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<xs:simpleType name="notificationScope">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="local"/>
|
|
<xs:enumeration value="remote"/>
|
|
<xs:enumeration value="all"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:schema>
|