/* * Copyright (C) 2014 Intel Corporation * All rights reserved. */ package com.intel.mtwilson.ms.converter; import javax.persistence.AttributeConverter; import javax.persistence.Converter; import org.apache.commons.codec.binary.Base64; //import org.eclipse.persistence.internal.oxm.conversion.Base64; /** * * @author jbuhacoff */ @Converter public class ByteArrayToBase64Converter implements AttributeConverter<byte[],String> { private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(ByteArrayToBase64Converter.class); @Override public String convertToDatabaseColumn(byte[] attribute) { if( attribute == null ) { return null; } try { log.debug("Converting {} bytes to base64: {}", attribute.length, attribute); return Base64.encodeBase64String(attribute); } catch(Exception e) { log.error("Failed to base64-encode {} bytes", attribute.length, e); return null; } } @Override public byte[] convertToEntityAttribute(String dbData) { if( dbData == null ) { return null; } try { log.debug("Converting {} base64 bytes to data: {}", dbData.length(), dbData); return Base64.decodeBase64(dbData); } catch(Exception e) { log.error("Failed to base64-decode {} bytes", dbData.length(), e); return null; } } }