mirror of
https://github.com/moparisthebest/davmail
synced 2024-12-14 11:42:23 -05:00
Caldav: Create a new setting davmail.forceActiveSyncUpdate to let users choose to force ActiveSync event. Note: custom iCal or Lightning ICS properties are lost if this option is enabled.
git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@785 3d1905a2-6b24-0410-a738-b14d5a86fcbd
This commit is contained in:
parent
af57352106
commit
0197b4eaa7
@ -2391,33 +2391,15 @@ public class ExchangeSession {
|
|||||||
eventResult.etag = putmethod.getResponseHeader("GetETag").getValue();
|
eventResult.etag = putmethod.getResponseHeader("GetETag").getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
// trigger activeSync push event
|
// trigger activeSync push event, only if davmail.forceActiveSyncUpdate setting is true
|
||||||
if (status == HttpStatus.SC_OK || status == HttpStatus.SC_CREATED) {
|
if ((status == HttpStatus.SC_OK || status == HttpStatus.SC_CREATED) &&
|
||||||
|
(Settings.getBooleanProperty("davmail.forceActiveSyncUpdate"))) {
|
||||||
ArrayList<DavProperty> propertyList = new ArrayList<DavProperty>();
|
ArrayList<DavProperty> propertyList = new ArrayList<DavProperty>();
|
||||||
propertyList.add(new DefaultDavProperty(DavPropertyName.create("contentclass", Namespace.getNamespace("DAV:")), contentClass));
|
propertyList.add(new DefaultDavProperty(DavPropertyName.create("contentclass", Namespace.getNamespace("DAV:")), contentClass));
|
||||||
PropPatchMethod propPatchMethod = new PropPatchMethod(messageUrl, propertyList);
|
PropPatchMethod propPatchMethod = new PropPatchMethod(messageUrl, propertyList);
|
||||||
int patchStatus = DavGatewayHttpClientFacade.executeHttpMethod(httpClient, propPatchMethod);
|
int patchStatus = DavGatewayHttpClientFacade.executeHttpMethod(httpClient, propPatchMethod);
|
||||||
if (patchStatus != HttpStatus.SC_MULTI_STATUS) {
|
if (patchStatus != HttpStatus.SC_MULTI_STATUS) {
|
||||||
LOGGER.warn("Unable to patch event to trigger activeSync push");
|
LOGGER.warn("Unable to patch event to trigger activeSync push");
|
||||||
} else {
|
|
||||||
// Yet another patch: restore message custom body, all custom lines are removed by PROPPATCH
|
|
||||||
PutMethod restorePutMethod = new PutMethod(messageUrl);
|
|
||||||
restorePutMethod.setRequestHeader("Translate", "f");
|
|
||||||
restorePutMethod.setRequestHeader("Overwrite", "f");
|
|
||||||
restorePutMethod.setRequestEntity(new ByteArrayRequestEntity(baos.toByteArray(), "message/rfc822"));
|
|
||||||
try {
|
|
||||||
status = httpClient.executeMethod(restorePutMethod);
|
|
||||||
if (status == HttpURLConnection.HTTP_OK) {
|
|
||||||
LOGGER.warn("Unable to create or update message " + status + ' ' + restorePutMethod.getStatusLine());
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
putmethod.releaseConnection();
|
|
||||||
}
|
|
||||||
// Need to get event again to get updated etag
|
|
||||||
Event event = getEvent(messageUrl);
|
|
||||||
if (event.getEtag() != null) {
|
|
||||||
eventResult.etag = event.getEtag();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return eventResult;
|
return eventResult;
|
||||||
|
Loading…
Reference in New Issue
Block a user