package com.softwaremill.common.sqs; import com.amazonaws.Protocol; import com.google.common.base.Objects; import com.softwaremill.common.sqs.util.Base64Coder; import java.io.*; import static com.google.common.base.Preconditions.checkNotNull; /** * @author Maciej Bilas * @since 11/10/12 17:49 */ class Util { /* Package-private visibility, do not escalate, refactor if you need to reuse it */ private Util() { /* this class should not be instantiated */ } static String serializeToBase64(Serializable object) throws IOException { checkNotNull(object); ByteArrayOutputStream byteArrayStream = new ByteArrayOutputStream(); ObjectOutputStream objectStream = null; try { objectStream = new ObjectOutputStream(byteArrayStream); objectStream.writeObject(object); return new String(Base64Coder.encode(byteArrayStream.toByteArray())); } finally { if (objectStream != null) objectStream.close(); } } static Object deserializeFromBase64(String data) throws IOException, ClassNotFoundException { checkNotNull(data); ByteArrayInputStream byteArrayStream = new ByteArrayInputStream(Base64Coder.decode(data)); ObjectInputStream objectStream = null; try { objectStream = new ObjectInputStream(byteArrayStream); return objectStream.readObject(); } finally { if (objectStream != null) objectStream.close(); } } static Protocol determineProtocol(String server) { checkNotNull(server); String[] splitServer = server.split(":"); Protocol protocol = Protocol.HTTPS; if (splitServer.length > 1) { String port = splitServer[1]; String protocolInTheUrl = splitServer[0].toLowerCase(); if (splitServer[1].startsWith("//")) { if (Objects.equal(protocolInTheUrl, "http")) return Protocol.HTTP; else if (Objects.equal(protocolInTheUrl, "https")) return Protocol.HTTPS; port = splitServer[2]; } if (!"443".equals(port)) { protocol = Protocol.HTTP; } } return protocol; } }