Package tigase.push.apns
Class APNsBinaryApiProvider
- java.lang.Object
-
- tigase.push.AbstractProvider
-
- tigase.push.apns.APNsBinaryApiProvider
-
- All Implemented Interfaces:
tigase.kernel.beans.config.ConfigurationChangedAware
,tigase.kernel.beans.Initializable
,tigase.kernel.beans.UnregisterAware
,IPushProvider
,SSLCertificateExpirationAware
,tigase.stats.ComponentStatisticsProvider
,tigase.stats.StatisticsProviderIfc
@Bean(name="apns-binary-api", parent=PushNotificationsComponent.class, active=false) public class APNsBinaryApiProvider extends AbstractProvider implements IPushProvider, tigase.kernel.beans.config.ConfigurationChangedAware, tigase.kernel.beans.Initializable, tigase.kernel.beans.UnregisterAware, tigase.stats.ComponentStatisticsProvider, SSLCertificateExpirationAware
Created by andrzej on 05.01.2017.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
APNsBinaryApiProvider.APNSCertificateChangedEvent
-
Nested classes/interfaces inherited from interface tigase.push.api.IPushProvider
IPushProvider.Feature
-
Nested classes/interfaces inherited from interface tigase.push.monitor.SSLCertificateExpirationAware
SSLCertificateExpirationAware.Result
-
-
Field Summary
Fields Modifier and Type Field Description protected tigase.eventbus.EventBus
eventBus
-
Constructor Summary
Constructors Constructor Description APNsBinaryApiProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
beanConfigurationChanged(java.util.Collection<java.lang.String> changedFields)
void
beforeUnregister()
void
certificateChange(APNsBinaryApiProvider.APNSCertificateChangedEvent event)
void
everyHour()
void
everyMinute()
void
everySecond()
java.lang.String
getDescription()
java.util.stream.Stream<SSLCertificateExpirationAware.Result>
getSSLCertificatesValidPeriod()
void
getStatistics(java.lang.String compName, tigase.stats.StatisticsList list)
void
initialize()
java.util.Optional<java.lang.Integer>
maxPayloadSize()
protected ApnsPayload.Builder
prepareEncryptedPayload(ApnsPayload.Builder builder, IEncryptedNotification notification)
protected ApnsPayload.Builder
preparePayload(ApnsPayload.Builder builder, INotification notification)
protected ApnsPayload.Builder
preparePlainPayload(ApnsPayload.Builder builder, IPlainNotification notification)
java.util.concurrent.CompletableFuture<java.lang.String>
pushNotification(IPushSettings.IDevice device, INotification notification)
protected java.util.concurrent.CompletableFuture<java.lang.String>
pushNotification(IPushSettings.IDevice device, ApnsNotification apnsNotification, ApnsService service, ApnsService fallbackService)
void
reloadAPNSCertificateFromRepository()
void
reloadAPNSSecretsFromRepository()
void
setAPNSCertificate(java.lang.String base64certificate, java.lang.String base64pushkitCertificate, java.lang.String certificatePassword)
void
setAPNSEncryptionKey(java.lang.String encryptionKeyId, java.lang.String encryptionKey, java.lang.String teamId)
void
setUserRepository(tigase.db.UserRepository userRepository)
java.util.Set<IPushProvider.Feature>
supportedFeatures()
protected void
unregisterDevice(java.lang.String deviceId)
-
Methods inherited from class tigase.push.AbstractProvider
getData, getDataMap, getName, removeData, setData
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface tigase.push.api.IPushProvider
getName
-
-
-
-
Method Detail
-
getDescription
public java.lang.String getDescription()
- Specified by:
getDescription
in interfaceIPushProvider
-
initialize
public void initialize()
- Specified by:
initialize
in interfacetigase.kernel.beans.Initializable
-
maxPayloadSize
public java.util.Optional<java.lang.Integer> maxPayloadSize()
- Specified by:
maxPayloadSize
in interfaceIPushProvider
-
supportedFeatures
public java.util.Set<IPushProvider.Feature> supportedFeatures()
- Specified by:
supportedFeatures
in interfaceIPushProvider
-
pushNotification
public java.util.concurrent.CompletableFuture<java.lang.String> pushNotification(IPushSettings.IDevice device, INotification notification)
- Specified by:
pushNotification
in interfaceIPushProvider
- Returns:
- notification ID as String
-
getSSLCertificatesValidPeriod
public java.util.stream.Stream<SSLCertificateExpirationAware.Result> getSSLCertificatesValidPeriod()
- Specified by:
getSSLCertificatesValidPeriod
in interfaceSSLCertificateExpirationAware
-
pushNotification
protected java.util.concurrent.CompletableFuture<java.lang.String> pushNotification(IPushSettings.IDevice device, ApnsNotification apnsNotification, ApnsService service, ApnsService fallbackService)
-
beforeUnregister
public void beforeUnregister()
- Specified by:
beforeUnregister
in interfacetigase.kernel.beans.UnregisterAware
-
certificateChange
@HandleEvent(filter=remote) public void certificateChange(APNsBinaryApiProvider.APNSCertificateChangedEvent event)
-
reloadAPNSCertificateFromRepository
public void reloadAPNSCertificateFromRepository() throws tigase.db.TigaseDBException
- Throws:
tigase.db.TigaseDBException
-
reloadAPNSSecretsFromRepository
public void reloadAPNSSecretsFromRepository() throws tigase.db.TigaseDBException
- Throws:
tigase.db.TigaseDBException
-
setAPNSCertificate
public void setAPNSCertificate(java.lang.String base64certificate, java.lang.String base64pushkitCertificate, java.lang.String certificatePassword) throws tigase.db.TigaseDBException
- Throws:
tigase.db.TigaseDBException
-
setAPNSEncryptionKey
public void setAPNSEncryptionKey(java.lang.String encryptionKeyId, java.lang.String encryptionKey, java.lang.String teamId) throws tigase.db.TigaseDBException
- Throws:
tigase.db.TigaseDBException
-
beanConfigurationChanged
public void beanConfigurationChanged(java.util.Collection<java.lang.String> changedFields)
- Specified by:
beanConfigurationChanged
in interfacetigase.kernel.beans.config.ConfigurationChangedAware
-
everyHour
public void everyHour()
- Specified by:
everyHour
in interfacetigase.stats.ComponentStatisticsProvider
-
everyMinute
public void everyMinute()
- Specified by:
everyMinute
in interfacetigase.stats.ComponentStatisticsProvider
-
everySecond
public void everySecond()
- Specified by:
everySecond
in interfacetigase.stats.ComponentStatisticsProvider
-
getStatistics
public void getStatistics(java.lang.String compName, tigase.stats.StatisticsList list)
- Specified by:
getStatistics
in interfacetigase.stats.StatisticsProviderIfc
-
preparePayload
protected ApnsPayload.Builder preparePayload(ApnsPayload.Builder builder, INotification notification)
-
preparePlainPayload
protected ApnsPayload.Builder preparePlainPayload(ApnsPayload.Builder builder, IPlainNotification notification)
-
prepareEncryptedPayload
protected ApnsPayload.Builder prepareEncryptedPayload(ApnsPayload.Builder builder, IEncryptedNotification notification)
-
unregisterDevice
protected void unregisterDevice(java.lang.String deviceId)
-
setUserRepository
public void setUserRepository(tigase.db.UserRepository userRepository)
- Overrides:
setUserRepository
in classAbstractProvider
-
-