/*
* Copyright (c) 2008-2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.systemservices.impl.jobs.common;
import java.io.Serializable;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import org.apache.curator.framework.recipes.queue.QueueSerializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class JobSerializer implements QueueSerializer<Serializable> {
private static final Logger log = LoggerFactory.getLogger(JobSerializer.class);
@Override
public byte[] serialize(Serializable item) {
byte[] Objbytes = null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = null;
try {
out = new ObjectOutputStream(bos);
out.writeObject(item);
Objbytes = bos.toByteArray();
} catch (Exception e) {
log.error("Serializing Object to byte Array Exception :", e);
} finally {
try {
out.close();
bos.close();
} catch (IOException e) {
log.error("Error while closing Streams ", e);
}
}
return Objbytes;
}
@Override
public Serializable deserialize(byte[] bytes) {
Object job = null;
ByteArrayInputStream bis = null;
ObjectInput in = null;
try {
bis = new ByteArrayInputStream(bytes);
in = new ObjectInputStream(bis);
job = in.readObject();
} catch (Exception e) {
log.error("DeSerializing Object to byte Array Exception :", e);
} finally {
try {
in.close();
bis.close();
} catch (IOException e) {
log.error("Error while closing Streams ", e);
}
}
return (Serializable) job;
}
}