App Suite Middleware
API - HTTP-API
SCR-1571
Summary: Exposed parameter 'trackAttendeeUsage' for 'chronos?action=new' and 'chronos?action=update'
The new
and update
actions in module chronos
will now evaluate the optional parameter trackAttendeeUsage
.
It can be used to configure whether newly added attendees from creations and updates should be tracked automatically, which includes adding new entries in the collected contacts folder for new external calendar users (utilizing the contact collector service), as well as incrementing the use counts for already known internal and external entities (using the object use count service). Defaults to true
, hence needs to be disabled explicitly.
See the HTTP API documentation for further details.
[8.38.77]
3rd Party Libraries/License Change
SCR-1570
Summary: Updated Netty libraries from v4.1.119 to v4.1.121
Updated Netty libraries from v4.1.119 to v4.1.121 in bundle io.netty
- netty-buffer-4.1.121.Final.jar
- netty-codec-4.1.121.Final.jar
- netty-codec-dns-4.1.121.Final.jar
- netty-codec-http2-4.1.121.Final.jar
- netty-codec-http-4.1.121.Final.jar
- netty-codec-socks-4.1.121.Final.jar
- netty-common-4.1.121.Final.jar
- netty-handler-4.1.121.Final.jar
- netty-handler-proxy-4.1.121.Final.jar
- netty-resolver-4.1.121.Final.jar
- netty-resolver-dns-4.1.121.Final.jar
- netty-transport-4.1.121.Final.jar
- netty-transport-native-unix-common-4.1.121.Final.jar
- netty-transport-classes-epoll-4.1.121.Final.jar = netty
- netty-transport-native-epoll-4.1.121.Final.jar = netty
- netty-transport-classes-kqueue-4.1.121.Final.jar = netty
- netty-transport-native-kqueue-4.1.121.Final.jar
SCR-1569
Summary: Updated lettuce library from v6.5.5 to v6.6.0
Updated lettuce library from v6.5.5 to v6.6.0 in bundle io.lettuce
SCR-1562
Summary: Updated Jackson libraries from v2.18.1 to v2.19.0 in target platfom
Updated several libraries to update Jackson libraries from v2.18.1 to v2.19.0
Target platform bundles (com.open-xchange.bundles)
- jackson-annotations-2.18.1.jar replaced with jackson-annotations-2.19.0.jar
- jackson-core-2.18.1.jar replaced with jackson-core-2.19.0.jar
- jackson-databind-2.18.1.jar replaced with jackson-databind-2.19.0.jar
- jackson-dataformat-cbor-2.18.1.jar replaced with jackson-dataformat-cbor-2.19.0.jar
- jackson-dataformat-xml-2.18.1.jar replaced with jackson-dataformat-xml-2.19.0.jar
- jackson-datatype-jsr310-2.18.1.jar replaced with jackson-datatype-jsr310-2.19.0.jar
- jackson-datatype-jsr310-2.18.1.jar replaced with jackson-datatype-jsr310-2.19.0.jar
- jackson-datatype-jsr353-2.18.1.jar replaced with jackson-datatype-jsr353-2.19.0.jar
- jackson-jakarta-rs-base-2.18.1.jar replaced with jackson-jakarta-rs-base-2.19.0.jar
- jackson-jakarta-rs-json-provider-2.18.1.jar replaced with jackson-jakarta-rs-json-provider-2.19.0.jar
- jackson-jakarta-rs-xml-provider-2.18.1.jar replaced with jackson-jakarta-rs-xml-provider-2.19.0.jar
- jackson-module-jakarta-xmlbind-annotations-2.18.1.jar replaced with jackson-module-jakarta-xmlbind-annotations-2.19.0.jar
- jackson-module-jaxb-annotations-2.18.1.jar replaced with jackson-module-jaxb-annotations-2.19.0.jar
Bundle com.ctc.wstx
- woodstox-core-7.0.0.jar replaced with woodstox-core-7.1.0.jar
Bundle org.yaml.snakeyaml
- snakeyaml-2.3.jar replaced with snakeyaml-2.4.jar
API - HTTP-API
SCR-1567
Summary: Option "notification" when Granting Deputy Permissions
The new
action in module deputy
of the HTTP API is extended with an optional notification
object where the transport
and optional message
can be specified by the client, in the same way as when a folder is shared, e.g.:
{
[...]
"notification": {
"transport": "mail",
"message": "the message"
}
}
If set, a notification mail is generated and sent to the deputy user.
See the documentation for details.
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
SCR-1453
Summary: New parameter "sortByUseCount" for "search" action in module "resource"
The action search
in module resource
of the HTTP API is extended with an additional, optional parameter named {}sortByUseCount
. If {}true
, found resources are implicitly sorted based on the individual use count number of the requesting user, in descending order (most frequently resources first), e.g. when being used during auto-complete operations of resource participants while creating new appointments.
See also the API documentation for further details.
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
API - SOAP
SCR-1568
Summary: New "notification" Element when Granting Deputy Permissions
The grant
call of the SOAP API endpoint OXDeputyPermissionsService
for deputy permissions management is extended with an optional notification
element where the transport
and optional message
can be specified, e.g.:
<soap:grant>
<soap:notification>
<xsd:transport>mail</xsd:transport>
<xsd:message>the message</xsd:message>
</soap:notification>
[...]
</soap:grant>
If set, a notification mail is generated and sent to the deputy user.
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 isshared
. 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 withshared
mode. The default value for this property is8
. Not reloadable and not config-cascade aware.
Configuration
SCR-1564
Summary: New Configuration Property 'com.openexchange.calendar.externalConflictChecksTimeout'
The new lean configuration property com.openexchange.calendar.externalConflictChecksTimeout
is introduced.
It configures the maximum time (in milliseconds) to wait for conflict check results from external sources like iCalendar subscriptions. A value of 0
disables external conflict checks during appointment creation or update completely.
It is reloadable and config-cascade aware, and default to 10000 (10 seconds).
See the documentation for further details.
SCR-1559
Summary: Changed com.openexchange.contact.trashFolder.enabled default value
Changed com.openexchange.contact.trashFolder.enabled
default value to true
Database
SCR-1566
Summary: Update Task to Clear Empty Categories for Contacts
In order to remove categories values that accidentally got stored as []
in the database, the blocking update task
com.openexchange.groupware.update.tasks.ContactClearEmptyCategoriesTask
is introduced.
SCR-1563
Summary: Introduced update task to reset pflag for contacts
Introduced the update task com.openexchange.groupware.update.tasks.ResetContactPflagUpdateTask
to reset prior set pflags for folder with id 6 (system folder), 16 (guest folder) and for folder of type 2 (public).