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();
|
||||
}
|
||||
|
||||
// trigger activeSync push event
|
||||
if (status == HttpStatus.SC_OK || status == HttpStatus.SC_CREATED) {
|
||||
// trigger activeSync push event, only if davmail.forceActiveSyncUpdate setting is true
|
||||
if ((status == HttpStatus.SC_OK || status == HttpStatus.SC_CREATED) &&
|
||||
(Settings.getBooleanProperty("davmail.forceActiveSyncUpdate"))) {
|
||||
ArrayList<DavProperty> propertyList = new ArrayList<DavProperty>();
|
||||
propertyList.add(new DefaultDavProperty(DavPropertyName.create("contentclass", Namespace.getNamespace("DAV:")), contentClass));
|
||||
PropPatchMethod propPatchMethod = new PropPatchMethod(messageUrl, propertyList);
|
||||
int patchStatus = DavGatewayHttpClientFacade.executeHttpMethod(httpClient, propPatchMethod);
|
||||
if (patchStatus != HttpStatus.SC_MULTI_STATUS) {
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user