Added new configuration options to set-up mail push for Mobile App in new file 'mobilepushevent.properties'.

Google Cloud Messaging (GCM)
===================

Introduced property com.openxchange.mobilepush.events.gcm.enabled to enables or disable mobile push event notifications to clients using the Google Cloud Messaging (GCM) service. This requires a valid configuration for theGCM API key, see options below.
Defaults to false.

Added property com.openxchange.mobilepush.events.gcm.key to specify the API key of the server application. Required if com.openxchange.mobilenotifier.events.gcm.enabled is set to true.



Apple Push Notification (APNS)
===================

Possibility to enables or disable push event notifications to clients using the Apple Push Notification service (APNS) for iOS devices via property com.openxchange.mobilepush.events.apn.ios.enabled. This requires a valid configuration for the APNS certificate and keys, see either options below.
Defaults to false.

Property com.openxchange.mobilepush.events.apn.ios.keystore to specify the path to the local key-store file (PKCS #12) containing the APNS certificate and keys for the iOS application, e.g. /opt/open-xchange/etc/mobilepush-apns.p12. Required if com.openxchange.mobilepush.events.apn.ios.enabled is true.

Property com.openxchange.mobilepush.events.apn.ios.password to specify the password used when creating the referenced key-store containing the certificate of the iOS application. Note that blank or null passwords are in violation of the PKCS #12 specifications. Required if com.openxchange.mobilepush.events.apn.ios.enabled is true.

Property com.openxchange.mobilepush.events.apn.ios.producti on to indicate which APNS service is used when sending push notifications to iOS devices. A value of true will use the production service, a value of false the sandbox service. Defaults to true.



Other new configuration settings
=====================

Added property com.openxchange.mobilepush.events.apn.ios.feedback QueryInterval to configure the interval between queries to the APN feedback service for the subscribed iOS devices. The value can be defined using units of measurement: D (=days), W (=weeks) and H (=hours). Defaults to 1D (one day). Leaving this parameter empty disables the feedback queries on this node. Since each received feedback is processed cluster-wide, only one node in the cluster should be enabled here. Values less than 1m will be ignored.



Permanent Push
==========

Property com.openexchange.push.allowPermanentPush to enable/disable permanent push. Set to true if (and only if) such a push service is running, which supports spawning permanent push listeners as this setting is used to perform the balancing of permanent push listeners among available cluster members. Meaning, it marks a cluster member to be capable for permanent push. Push services that support permanent push listeners currently known: open-xchange-push-imapidle and open-xchange-push-mailnotify
Default is true

Property com.openexchange.push.credstorage.enabled to specify whether credential storage is enabled. The credential storage is used to store user credentials in setups that do not support a master authentication to the mail storage.
Default is false.

Property com.openexchange.push.credstorage.passcrypt to specify the key with which to encrypt/decrypt the password held in credential storage (provided that com.openexchange.push.credstorage.enabled is set to true)
Must not be changed once set/used and needs to be the same value on all nodes in a cluster.
No default value.


Property com.openexchange.push.credstorage.rdb to specify whether database-backed credential storage is enabled. (provided that com.openexchange.push.credstorage.enabled is set to true). If set to false the credentials are stored in memory utilizing Hazelcast.
Default is false.



Hazelcast-related
============

Added new configuration file /opt/open-xchange/etc/hazelcast/credentials.properties defining the configuration for the credentials Hazelcast map.