RetryingApnsClient(String apnCertificate, String apnKey, int retryCount) throws IOException { MetricRegistry metricRegistry = SharedMetricRegistries.getOrCreate(Constants.METRICS_NAME); DropwizardApnsClientMetricsListener metricsListener = new DropwizardApnsClientMetricsListener(); for (Map.Entry<String, Metric> entry : metricsListener.getMetrics().entrySet()) { metricRegistry.register(name(getClass(), entry.getKey()), entry.getValue()); } this.apnsClient = new ApnsClientBuilder().setClientCredentials(initializeCertificate(apnCertificate), initializePrivateKey(apnKey), null) .setMetricsListener(metricsListener) .build(); this.retryExecutor = initializeExecutor(retryCount); }