package com.google.gwt.dist.impl; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.HashMap; import java.util.Map; import org.apache.log4j.Logger; import com.google.gwt.dist.DataChecker; /** * DataChecker is used to check consistency of existing data and the data that * is about to be received from the client. */ public class DataCheckerImpl implements DataChecker { private static final Logger logger = Logger .getLogger(DataCheckerImpl.class); @Override public Map<String, byte[]> getMD5Matrix(File directory) { Map<String, byte[]> map = new HashMap<String, byte[]>(); try { MessageDigest md = MessageDigest.getInstance("MD5"); for (File f : directory.listFiles()) { InputStream is = new FileInputStream(f); BufferedInputStream bis = new BufferedInputStream(is); byte[] buffer = new byte[8192]; int read = 0; while ((read = bis.read(buffer)) > 0) { md.update(buffer, 0, read); } map.put(f.getName(), md.digest()); } } catch (NoSuchAlgorithmException e) { logger.error("" + e.getMessage()); } catch (IOException e) { logger.error("" + e.getMessage()); } return map; } }