Java tutorial
/* * Copyright Tek Counsel LLC 2013 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License. */ package com.tc.simple.apn.factories; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.util.logging.Level; import java.util.logging.Logger; import org.apache.commons.codec.binary.Hex; import com.tc.simple.apn.Payload; import com.tc.utils.CloseUtils; public class PushByteFactory implements IPushByteFactory { private static Logger logger = Logger.getLogger(PushByteFactory.class.getName()); /* (non-Javadoc) * @see com.tc.simple.apn.factories.IPushByteFactory#buildPushBytes(int, com.tc.simple.apn.Payload) */ @Override public byte[] buildPushBytes(int id, Payload payload) { byte[] byteMe = null; ByteArrayOutputStream baos = null; DataOutputStream dos = null; try { baos = new ByteArrayOutputStream(); dos = new DataOutputStream(baos); int expiry = 0; // (int) ((System.currentTimeMillis () / 1000L) + 7200); char[] cars = payload.getToken().trim().toCharArray(); byte[] tokenBytes = Hex.decodeHex(cars); //command dos.writeByte(1); //id dos.writeInt(id); //expiry dos.writeInt(expiry); //token length. dos.writeShort(tokenBytes.length); //token dos.write(tokenBytes); //payload length dos.writeShort(payload.getJson().length()); logger.log(Level.FINE, payload.getJson()); //payload. dos.write(payload.getJson().getBytes()); byteMe = baos.toByteArray(); } catch (Exception e) { logger.log(Level.SEVERE, null, e); } finally { CloseUtils.close(dos); CloseUtils.close(baos); } return byteMe; } }