1
0
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:
mguessan 2009-10-19 08:58:12 +00:00
parent af57352106
commit 0197b4eaa7

View File

@ -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;