You need to configure the Studio not only to use the in-memory persistence layer but also to be the only User Changes web application.
The following Maven dependencies have to be available in the studio-webapp module.
<dependency>
<groupId>com.coremedia.ui</groupId>
<artifactId>collaboration-memory-rest-component</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>controlroom-memory-plugin</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.coremedia.cms</groupId>
<artifactId>cap-client-list-memory</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.coremedia.cms</groupId>
<artifactId>notification-elastic</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.coremedia.cms</groupId>
<artifactId>project-elastic</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.coremedia.ui.collaboration</groupId>
<artifactId>user-changes-component</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.coremedia.ui.collaboration</groupId>
<artifactId>workflow-notifications-component</artifactId>
<scope>runtime</scope>
</dependency>
Add the following property to Studio's application.properties.
models.createIndexes=false
Add the following customizer to the beans section of the application.xml of the studio-webapp module.
<customize:append id="uapiMemoryCapListConnector" bean="connectionParameters">
<map>
<entry key="usecaplist" value="true"/>
<entry key="caplist" value="com.coremedia.cotopaxi.list.memory.MemoryCapListConnectorFactory"/>
</map>
</customize:append>Also, configure your Studio server with the following properties, so that the in-memory store is read / written from the given file upon application context startup / shutdown of Studio. To limit memory usage of the in-memory store, the size per collection map is configured. To be robust against data loss, the in-memory store can be persisted periodically in a given interval.
| Property | Default | Description |
|---|---|---|
|
memory.collection.serialization.file |
null |
In-memory store persistence file name. |
|
memory.collection.size |
5000 |
Number of in-memory map entries per collection. |
|
memory.collection.serialization.interval |
360000 |
Interval in ms in which the in-memory store is persisted periodically to the configured file. If 0, periodic persistence is disabled. |
|
memory.collection.selfclearing.names |
notifications |
A comma separated list of collection names, which will be periodically deleted and re-created, when memory.collection.size is reached. Fast growing collections, which do not contain critical data should be configured as self-clearing collections, e.g. notifications. |
Table 3.4. Studio Configuration Properties for In-Memory Store







