App Suite Middleware
API - HTTP-API
SCR-1561
Summary: Introduced 'move' action for contacts/addressbooks
Introduced addressbooks?action=move
/ contacts?action=move
to move contacts
Gitlab issue https://gitlab.open-xchange.com/appsuite/platform/core/-/issues/234
API - Java
SCR-1560
Summary: Interface changes for contact move
com.openexchange.contact.provider.folder.FolderReadWriteContactsAccess
:
- new method
List<Contact> moveContacts(String targetFolderId, String sourceFolderId, List<String> contactIds, long clientTimestamp) throws OXException;
com.openexchange.contact.provider.composition.IDBasedContactsAccess
:
- changed method
List<ContactID> restoreContacts(List<ContactID> contactsIds, long clientTimestamp) throws OXException;
- new method
List<Contact> moveContacts(String targetFolderId, String sourceFolderId, List<String> contactIds, long clientTimestamp) throws OXException;
com.openexchange.contact.provider.composition.TrashFolderAwareContactsAccess
:
- changed method
List<ContactID> restoreContacts(List<ContactID> contactsIds, long clientTimestamp) throws OXException;
com.openexchange.contact.storage.ContactStorage
:
- new method
void move(Session session, String targetFolderId, String sourceFolderId, String id, Date lastRead, Date now) throws OXException;
- new method
void move(Session session, String targetFolderId, String sourceFolderId, String[] ids, Date lastRead, Date now) throws OXException;
com.openexchange.contact.ContactService
:
- new method
List<Contact> moveContacts(Session session, String targetFolderId, String sourceFolderId, String[] contactIds, Date lastRead) throws OXException;
- new method
Contact moveContact(Session session, String targetFolderId, String sourceFolder, String contactId, Date lastRead) throws OXException;
Gitlab issue https://gitlab.open-xchange.com/appsuite/platform/core/-/issues/234
Configuration
SCR-1559
Summary: Changed com.openexchange.contact.trashFolder.enabled default value
Changed com.openexchange.contact.trashFolder.enabled
default value to true
[8.37.72]
General
SCR-1556
Summary: Upgraded MySQL-Connector-J from v.8.3.0 to v9.2.0
Upgraded MySQL-Connector-J from v.8.3.0 to v9.2.0 in traget platform (com.openexchange.bundles
)
3rd Party Libraries/License Change
SCR-1553
Summary: Upgraded JSoup library from v1.17.2 to v1.19.1
Upgraded JSoup library from v1.17.2 to v1.19.1 in target platform (com.openexchange.bundles
)
SCR-1552
Summary: Upgraded GSON from v2.10.1 to v2.12.1
Upgraded the GSON library from v2.10.1 to v2.12.1 in target platform (com.openexchange.bundles
)
SCR-1551
Summary: Added new Failsafe library to target platform
Added new Failsafe v3.3.2 library to target platform (com.openexchange.bundles
). Failsafe is a lightweight, zero-dependency library for handling failures in Java,
failsafe-3.3.2.jar
API - HTTP-API
SCR-1558
Summary: New parameter 'dontResolveEntities' for 'chronos?action=new'
The new
action in module chronos
is extended by a new, optional parameter {}dontResolveEntities{
}.
Normally, all attendees in an event are resolved to internal entities by their calendar user address URI implicitly, and all resolved users will share the created organizer event copy automatically. Now if this new parameter is set to {}true{
}, all entities besides the current calendar user are not resolved treated as external entities, i.e. these appointments will effectively only be created for and visible to the targeted folder's calendar user in App Suite.
See the documentation and HTTP API documentation for further details.
Behavioral Changes
SCR-1565
Summary: Redis connector now uses a pool of shared connections
The Open-Xchange Redis Connector now supports two operation modes for the pool of connections to Redis end-point(s).
com.openexchange.redis.connection.pool.mode
Allows the valuesshared
anddedicated
.dedicated
lets Redis Connector use a common connection pool for the "connection per thread" operation mode. An individual connection is only used by one thread at the same time. shared lets Redis Connector use a connection pool that manages shared connections. Thus, a single connection is concurrently used by multiple threads at the same time. This fully leverages the NIO and asynchronous capabilities of the underlying Lettuce client library, saves I/O overhead and gives better performance. Therefore, the default value for this property is shared. Not reloadable and not config-cascade aware.com.openexchange.redis.connection.pool.numSharedConnections
Specifies the max. number of shared connections that are managed in the connection pool running with shared mode. The default value for this property is8
. Not reloadable and not config-cascade aware.
Configuration
SCR-1534
Summary: Introduced 'autodelete_contacts' & 'autodelete_contacts_editable' capability and config-path / jslob
Introduced autodelete_contacts
capability to indicate if contacts in contact trash folder are auto-deleted after a configurable retention period. The retention period is announced via configuration path modules/contacts/autodelete/retentiondays
and jslob io.ox/contacts//autodelete/retentiondays
.
Setting is editable by user if property com.openexchange.contact.autodelete.editable
is set to true
. This is announced by autodelete_contacts_editable
capability, configuration path modules/contacts/autodelete/editable
and jslob io.ox/contacts//autodelete/editable
.
Related issue: [https://gitlab.open-xchange.com/appsuite/platform/core/-/issues/182]
SCR-1533
Summary: Added properties for contact auto-delete feature
Added reloadable and config-cascade-aware lean properties:
{}com.openexchange.contact.autodelete.enabled{
}, default{}true{
}. Defines whether the contacts in contact trash folder are auto-deleted.{}com.openexchange.contact.autodelete.retentionDays{
}, default{}30{
}. Defines the retention days for the auto-delete feature.{}com.openexchange.contact.autodelete.editable{
}, default{}true{
}. Defines whether the auto-delete retention days interval is editable by the user.
Related issue: [https://gitlab.open-xchange.com/appsuite/platform/core/-/issues/182]
Database
SCR-1554
Summary: Rename contact trash folder to maintain consistency across the modules
Existing contact trash folder with preliminary name Deleted contacts
are renamed to Trash
to maintain consistency across the modules
com.openexchange.groupware.update.tasks.OXFolderTreeRenameContactTrashTask
Related issues:
- https://gitlab.open-xchange.com/appsuite/web-apps/ui/-/issues/949
- https://gitlab.open-xchange.com/appsuite/platform/core/-/issues/234