/**
*
*/
package jframe.pushy.impl;
import jframe.pushy.Fields;
import jframe.pushy.MultiPushyConf;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.relayrides.pushy.apns.ApnsEnvironment;
import com.relayrides.pushy.apns.PushManager;
import com.relayrides.pushy.apns.PushManagerConfiguration;
import com.relayrides.pushy.apns.util.SSLContextUtil;
import com.relayrides.pushy.apns.util.SimpleApnsPushNotification;
/**
* @author dzh
* @date Aug 29, 2015 2:11:43 PM
* @since 1.0
*/
public class PushManagerWrapper implements Fields {
static Logger LOG = LoggerFactory.getLogger(PushManagerWrapper.class);
PushManager<SimpleApnsPushNotification> pushManager;
private MultiPushyConf conf;
private String group;
public PushManagerWrapper init(String group, MultiPushyConf conf) {
this.conf = conf;
this.group = group;
return this;
}
public void start() {
try {
PushManagerConfiguration pushConf = new PushManagerConfiguration();
int connCount = Integer.parseInt(conf.getConf(group,
KEY_PUSH_CONN_COUNT, "100"));
pushConf.setConcurrentConnectionCount(connCount);
pushManager = new PushManager<SimpleApnsPushNotification>(
getEnvironment(conf.getConf(group, KEY_HOST),
conf.getConf(group, KEY_HOST_PORT),
conf.getConf(group, KEY_FEEDBACK),
conf.getConf(group, KEY_FEEDBACK_PORT)),
SSLContextUtil.createDefaultSSLContext(
conf.getConf(group, KEY_IOS_AUTH),
conf.getConf(group, KEY_IOS_PASSWORD)), null, null,
null, pushConf, "PushManager-" + group);
pushManager.start();
} catch (Exception e) {
LOG.error(e.getMessage());
}
}
public PushManager<SimpleApnsPushNotification> getPushManager() {
return pushManager;
}
public void stop() {
try {
if (pushManager != null) {
// TODO
pushManager.shutdown(30 * 1000);
}
} catch (Exception e) {
LOG.error(e.getMessage());
}
}
public static ApnsEnvironment getEnvironment(String host, String port,
String feedback, String fdPort) {
return new ApnsEnvironment(host, Integer.parseInt(port), feedback,
Integer.parseInt(fdPort));
}
}